summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnna Weine <anna.weine@mozilla.com>2022-11-04 16:56:31 +0000
committerAnna Weine <anna.weine@mozilla.com>2022-11-04 16:56:31 +0000
commit7ea2ab1252f5aeaa3a84b70a8f6364973c2d0a35 (patch)
tree50a34233629953cfe175caa94b5e4ca3c0bc5624 /lib
parent2df93bd28a17def85e92d5c9953d2939535c838b (diff)
downloadnss-hg-7ea2ab1252f5aeaa3a84b70a8f6364973c2d0a35.tar.gz
Bug 1783231 - Initialising variables in the rsa blinding code r=jschanck
The PR introduces the modifications asked in the previous RSA blinding patch: https://phabricator.services.mozilla.com/D153763. Differential Revision: https://phabricator.services.mozilla.com/D161270
Diffstat (limited to 'lib')
-rw-r--r--lib/freebl/rsa.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/freebl/rsa.c b/lib/freebl/rsa.c
index 514a1f2f5..2b8a3bfb5 100644
--- a/lib/freebl/rsa.c
+++ b/lib/freebl/rsa.c
@@ -1030,6 +1030,8 @@ rsa_PrivateKeyOpCRTNoCheck(RSAPrivateKey *key, mp_int *m, mp_int *c)
MP_DIGITS(&ctmp) = 0;
MP_DIGITS(&blinding_dp) = 0;
MP_DIGITS(&blinding_dq) = 0;
+ MP_DIGITS(&r1) = 0;
+ MP_DIGITS(&r2) = 0;
CHECK_MPI_OK(mp_init(&p));
CHECK_MPI_OK(mp_init(&q));
@@ -1058,8 +1060,8 @@ rsa_PrivateKeyOpCRTNoCheck(RSAPrivateKey *key, mp_int *m, mp_int *c)
CHECK_MPI_OK(mp_sub(&p, &blinding_dp, &blinding_dp));
// generating a random value
RNG_GenerateGlobalRandomBytes(random_block, EXP_BLINDING_RANDOMNESS_LEN_BYTES);
- r1.used = EXP_BLINDING_RANDOMNESS_LEN;
- memcpy(r1.dp, random_block, sizeof(random_block));
+ MP_USED(&r1) = EXP_BLINDING_RANDOMNESS_LEN;
+ memcpy(MP_DIGITS(&r1), random_block, sizeof(random_block));
// blinding_dp = random * (p - 1)
CHECK_MPI_OK(mp_mul(&blinding_dp, &r1, &blinding_dp));
//d_p = d_p + random * (p - 1)
@@ -1071,8 +1073,8 @@ rsa_PrivateKeyOpCRTNoCheck(RSAPrivateKey *key, mp_int *m, mp_int *c)
CHECK_MPI_OK(mp_sub(&q, &blinding_dq, &blinding_dq));
// generating a random value
RNG_GenerateGlobalRandomBytes(random_block, EXP_BLINDING_RANDOMNESS_LEN_BYTES);
- memcpy(r2.dp, random_block, sizeof(random_block));
- r2.used = EXP_BLINDING_RANDOMNESS_LEN;
+ memcpy(MP_DIGITS(&r2), random_block, sizeof(random_block));
+ MP_USED(&r2) = EXP_BLINDING_RANDOMNESS_LEN;
// blinding_dq = random * (q - 1)
CHECK_MPI_OK(mp_mul(&blinding_dq, &r2, &blinding_dq));
//d_q = d_q + random * (q-1)