Fixed computing of intermediate buffer size for maximum-size RSA keys.
authorThomas Pornin <pornin@bolet.org>
Mon, 21 Jan 2019 23:04:08 +0000 (00:04 +0100)
committerThomas Pornin <pornin@bolet.org>
Mon, 21 Jan 2019 23:04:08 +0000 (00:04 +0100)
src/rsa/rsa_i15_modulus.c
src/rsa/rsa_i31_modulus.c

index d61c794..16458c3 100644 (file)
@@ -28,7 +28,7 @@
 size_t
 br_rsa_i15_compute_modulus(void *n, const br_rsa_private_key *sk)
 {
-       uint16_t tmp[2 * ((BR_MAX_RSA_SIZE + 14) / 15) + 5];
+       uint16_t tmp[4 * (((BR_MAX_RSA_SIZE / 2) + 14) / 15) + 5];
        uint16_t *t, *p, *q;
        const unsigned char *pbuf, *qbuf;
        size_t nlen, plen, qlen, tlen;
index c469cf3..f5f997f 100644 (file)
@@ -28,7 +28,7 @@
 size_t
 br_rsa_i31_compute_modulus(void *n, const br_rsa_private_key *sk)
 {
-       uint32_t tmp[2 * ((BR_MAX_RSA_SIZE + 30) / 31) + 5];
+       uint32_t tmp[4 * (((BR_MAX_RSA_SIZE / 2) + 30) / 31) + 5];
        uint32_t *t, *p, *q;
        const unsigned char *pbuf, *qbuf;
        size_t nlen, plen, qlen, tlen;