chiark
/
gitweb
/
~ianmdlvl
/
secnet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
site: transport peers: Delete or demote unsuitable peers addresses
[secnet.git]
/
rsa.c
diff --git
a/rsa.c
b/rsa.c
index 2db03c9bbdf45453cc37e2e7b3cb910c1cde4448..f7dd69db6f69115e03c94779a2529468b642619f 100644
(file)
--- a/
rsa.c
+++ b/
rsa.c
@@
-199,6
+199,9
@@
static list_t *rsapub_apply(closure_t *self, struct cloc loc, dict_t *context,
} else {
cfgfatal(loc,"rsa-public","you must provide an encryption key\n");
}
} else {
cfgfatal(loc,"rsa-public","you must provide an encryption key\n");
}
+ if (mpz_sizeinbase(&st->e, 256) > RSA_MAX_MODBYTES) {
+ cfgfatal(loc, "rsa-public", "implausibly large public exponent\n");
+ }
i=list_elem(args,1);
if (i) {
i=list_elem(args,1);
if (i) {
@@
-213,6
+216,9
@@
static list_t *rsapub_apply(closure_t *self, struct cloc loc, dict_t *context,
} else {
cfgfatal(loc,"rsa-public","you must provide a modulus\n");
}
} else {
cfgfatal(loc,"rsa-public","you must provide a modulus\n");
}
+ if (mpz_sizeinbase(&st->n, 256) > RSA_MAX_MODBYTES) {
+ cfgfatal(loc, "rsa-public", "implausibly large modulus\n");
+ }
return new_closure(&st->cl);
}
return new_closure(&st->cl);
}