diff options
| author | beck <> | 2017-01-21 10:38:29 +0000 |
|---|---|---|
| committer | beck <> | 2017-01-21 10:38:29 +0000 |
| commit | 55a172a1ed5b0cd8f7de3628fcc2e56df6716d59 (patch) | |
| tree | ec1232403b181357067d4ac6dc7124fb566c88d8 /src/lib/libcrypto/rsa | |
| parent | a0a595cda97de2b217b0582cfa601ee4c746bfce (diff) | |
| download | openbsd-55a172a1ed5b0cd8f7de3628fcc2e56df6716d59.tar.gz openbsd-55a172a1ed5b0cd8f7de3628fcc2e56df6716d59.tar.bz2 openbsd-55a172a1ed5b0cd8f7de3628fcc2e56df6716d59.zip | |
Split out BN_div and BN_mod into ct and nonct versions for Internal use.
ok jsing@
Diffstat (limited to 'src/lib/libcrypto/rsa')
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_chk.c | 10 | ||||
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_eay.c | 10 | ||||
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_gen.c | 8 |
3 files changed, 16 insertions, 12 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_chk.c b/src/lib/libcrypto/rsa/rsa_chk.c index c247a8d80e..efe9431f2d 100644 --- a/src/lib/libcrypto/rsa/rsa_chk.c +++ b/src/lib/libcrypto/rsa/rsa_chk.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_chk.c,v 1.9 2014/07/10 07:43:11 jsing Exp $ */ | 1 | /* $OpenBSD: rsa_chk.c,v 1.10 2017/01/21 10:38:29 beck Exp $ */ |
| 2 | /* ==================================================================== | 2 | /* ==================================================================== |
| 3 | * Copyright (c) 1999 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 1999 The OpenSSL Project. All rights reserved. |
| 4 | * | 4 | * |
| @@ -52,6 +52,8 @@ | |||
| 52 | #include <openssl/err.h> | 52 | #include <openssl/err.h> |
| 53 | #include <openssl/rsa.h> | 53 | #include <openssl/rsa.h> |
| 54 | 54 | ||
| 55 | #include "bn_lcl.h" | ||
| 56 | |||
| 55 | int | 57 | int |
| 56 | RSA_check_key(const RSA *key) | 58 | RSA_check_key(const RSA *key) |
| 57 | { | 59 | { |
| @@ -132,7 +134,7 @@ RSA_check_key(const RSA *key) | |||
| 132 | ret = -1; | 134 | ret = -1; |
| 133 | goto err; | 135 | goto err; |
| 134 | } | 136 | } |
| 135 | r = BN_div(k, NULL, l, m, ctx); /* remainder is 0 */ | 137 | r = BN_div_ct(k, NULL, l, m, ctx); /* remainder is 0 */ |
| 136 | if (!r) { | 138 | if (!r) { |
| 137 | ret = -1; | 139 | ret = -1; |
| 138 | goto err; | 140 | goto err; |
| @@ -157,7 +159,7 @@ RSA_check_key(const RSA *key) | |||
| 157 | goto err; | 159 | goto err; |
| 158 | } | 160 | } |
| 159 | 161 | ||
| 160 | r = BN_mod(j, key->d, i, ctx); | 162 | r = BN_mod_ct(j, key->d, i, ctx); |
| 161 | if (!r) { | 163 | if (!r) { |
| 162 | ret = -1; | 164 | ret = -1; |
| 163 | goto err; | 165 | goto err; |
| @@ -176,7 +178,7 @@ RSA_check_key(const RSA *key) | |||
| 176 | goto err; | 178 | goto err; |
| 177 | } | 179 | } |
| 178 | 180 | ||
| 179 | r = BN_mod(j, key->d, i, ctx); | 181 | r = BN_mod_ct(j, key->d, i, ctx); |
| 180 | if (!r) { | 182 | if (!r) { |
| 181 | ret = -1; | 183 | ret = -1; |
| 182 | goto err; | 184 | goto err; |
diff --git a/src/lib/libcrypto/rsa/rsa_eay.c b/src/lib/libcrypto/rsa/rsa_eay.c index 640ed9a0d6..c4da147ddf 100644 --- a/src/lib/libcrypto/rsa/rsa_eay.c +++ b/src/lib/libcrypto/rsa/rsa_eay.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_eay.c,v 1.44 2017/01/21 09:38:59 beck Exp $ */ | 1 | /* $OpenBSD: rsa_eay.c,v 1.45 2017/01/21 10:38:29 beck 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 | * |
| @@ -770,7 +770,7 @@ RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
| 770 | BN_init(&c); | 770 | BN_init(&c); |
| 771 | BN_with_flags(&c, I, BN_FLG_CONSTTIME); | 771 | BN_with_flags(&c, I, BN_FLG_CONSTTIME); |
| 772 | 772 | ||
| 773 | if (!BN_mod(r1, &c, rsa->q, ctx)) | 773 | if (!BN_mod_ct(r1, &c, rsa->q, ctx)) |
| 774 | goto err; | 774 | goto err; |
| 775 | 775 | ||
| 776 | /* compute r1^dmq1 mod q */ | 776 | /* compute r1^dmq1 mod q */ |
| @@ -784,7 +784,7 @@ RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
| 784 | /* compute I mod p */ | 784 | /* compute I mod p */ |
| 785 | BN_with_flags(&c, I, BN_FLG_CONSTTIME); | 785 | BN_with_flags(&c, I, BN_FLG_CONSTTIME); |
| 786 | 786 | ||
| 787 | if (!BN_mod(r1, &c, rsa->p, ctx)) | 787 | if (!BN_mod_ct(r1, &c, rsa->p, ctx)) |
| 788 | goto err; | 788 | goto err; |
| 789 | 789 | ||
| 790 | /* compute r1^dmp1 mod p */ | 790 | /* compute r1^dmp1 mod p */ |
| @@ -813,7 +813,7 @@ RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
| 813 | BN_init(&pr1); | 813 | BN_init(&pr1); |
| 814 | BN_with_flags(&pr1, r1, BN_FLG_CONSTTIME); | 814 | BN_with_flags(&pr1, r1, BN_FLG_CONSTTIME); |
| 815 | 815 | ||
| 816 | if (!BN_mod(r0, &pr1, rsa->p, ctx)) | 816 | if (!BN_mod_ct(r0, &pr1, rsa->p, ctx)) |
| 817 | goto err; | 817 | goto err; |
| 818 | 818 | ||
| 819 | /* | 819 | /* |
| @@ -844,7 +844,7 @@ RSA_eay_mod_exp(BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx) | |||
| 844 | */ | 844 | */ |
| 845 | if (!BN_sub(vrfy, vrfy, I)) | 845 | if (!BN_sub(vrfy, vrfy, I)) |
| 846 | goto err; | 846 | goto err; |
| 847 | if (!BN_mod(vrfy, vrfy, rsa->n, ctx)) | 847 | if (!BN_mod_ct(vrfy, vrfy, rsa->n, ctx)) |
| 848 | goto err; | 848 | goto err; |
| 849 | if (BN_is_negative(vrfy)) | 849 | if (BN_is_negative(vrfy)) |
| 850 | if (!BN_add(vrfy, vrfy, rsa->n)) | 850 | if (!BN_add(vrfy, vrfy, rsa->n)) |
diff --git a/src/lib/libcrypto/rsa/rsa_gen.c b/src/lib/libcrypto/rsa/rsa_gen.c index d46f4f2478..817f177e96 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.18 2016/06/30 02:02:06 bcook Exp $ */ | 1 | /* $OpenBSD: rsa_gen.c,v 1.19 2017/01/21 10:38:29 beck 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 | * |
| @@ -69,6 +69,8 @@ | |||
| 69 | #include <openssl/err.h> | 69 | #include <openssl/err.h> |
| 70 | #include <openssl/rsa.h> | 70 | #include <openssl/rsa.h> |
| 71 | 71 | ||
| 72 | #include "bn_lcl.h" | ||
| 73 | |||
| 72 | static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb); | 74 | static int rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb); |
| 73 | 75 | ||
| 74 | /* | 76 | /* |
| @@ -202,11 +204,11 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb) | |||
| 202 | BN_with_flags(&d, rsa->d, BN_FLG_CONSTTIME); | 204 | BN_with_flags(&d, rsa->d, BN_FLG_CONSTTIME); |
| 203 | 205 | ||
| 204 | /* calculate d mod (p-1) */ | 206 | /* calculate d mod (p-1) */ |
| 205 | if (!BN_mod(rsa->dmp1, &d, r1, ctx)) | 207 | if (!BN_mod_ct(rsa->dmp1, &d, r1, ctx)) |
| 206 | goto err; | 208 | goto err; |
| 207 | 209 | ||
| 208 | /* calculate d mod (q-1) */ | 210 | /* calculate d mod (q-1) */ |
| 209 | if (!BN_mod(rsa->dmq1, &d, r2, ctx)) | 211 | if (!BN_mod_ct(rsa->dmq1, &d, r2, ctx)) |
| 210 | goto err; | 212 | goto err; |
| 211 | 213 | ||
| 212 | /* calculate inverse of q mod p */ | 214 | /* calculate inverse of q mod p */ |
