diff options
Diffstat (limited to 'src/lib/libcrypto/rsa/rsa_gen.c')
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_gen.c | 5 |
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; |