summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/rsa/rsa_gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/rsa/rsa_gen.c')
-rw-r--r--src/lib/libcrypto/rsa/rsa_gen.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_gen.c b/src/lib/libcrypto/rsa/rsa_gen.c
index 596eb8eb78..1c37d8ef21 100644
--- a/src/lib/libcrypto/rsa/rsa_gen.c
+++ b/src/lib/libcrypto/rsa/rsa_gen.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_gen.c,v 1.22 2017/01/29 17:49:23 beck Exp $ */ 1/* $OpenBSD: rsa_gen.c,v 1.23 2021/12/26 15:16:50 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -194,12 +194,14 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
194 if (!BN_mul(r0, r1, r2, ctx)) /* (p-1)(q-1) */ 194 if (!BN_mul(r0, r1, r2, ctx)) /* (p-1)(q-1) */
195 goto err; 195 goto err;
196 196
197 BN_init(&pr0);
197 BN_with_flags(&pr0, r0, BN_FLG_CONSTTIME); 198 BN_with_flags(&pr0, r0, BN_FLG_CONSTTIME);
198 199
199 if (!BN_mod_inverse_ct(rsa->d, rsa->e, &pr0, ctx)) /* d */ 200 if (!BN_mod_inverse_ct(rsa->d, rsa->e, &pr0, ctx)) /* d */
200 goto err; 201 goto err;
201 202
202 /* set up d for correct BN_FLG_CONSTTIME flag */ 203 /* set up d for correct BN_FLG_CONSTTIME flag */
204 BN_init(&d);
203 BN_with_flags(&d, rsa->d, BN_FLG_CONSTTIME); 205 BN_with_flags(&d, rsa->d, BN_FLG_CONSTTIME);
204 206
205 /* calculate d mod (p-1) */ 207 /* calculate d mod (p-1) */
@@ -211,6 +213,7 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
211 goto err; 213 goto err;
212 214
213 /* calculate inverse of q mod p */ 215 /* calculate inverse of q mod p */
216 BN_init(&p);
214 BN_with_flags(&p, rsa->p, BN_FLG_CONSTTIME); 217 BN_with_flags(&p, rsa->p, BN_FLG_CONSTTIME);
215 if (!BN_mod_inverse_ct(rsa->iqmp, rsa->q, &p, ctx)) 218 if (!BN_mod_inverse_ct(rsa->iqmp, rsa->q, &p, ctx))
216 goto err; 219 goto err;