summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilly Brumley <bbrumley@gmail.com>2020-07-20 22:18:45 +0000
committerBilly Brumley <bbrumley@gmail.com>2020-07-20 22:18:45 +0000
commitfb42251139b1de83dc38e62137cd045dbb73a3cc (patch)
tree7158918bab60ea14a6662742732eb8b5f66bb9d3
parent836d24ff353e4b6ef4703223484397c516df21aa (diff)
downloadnss-hg-fb42251139b1de83dc38e62137cd045dbb73a3cc.tar.gz
Bug 1631573: Remove unnecessary scalar padding in ec.c r=kjacobs,bbeurdouche
Subsequent calls to ECPoints_mul and ECPoint_mul remove this padding. Timing attack countermeasures are now applied more generally deeper in the call stack. Differential Revision: https://phabricator.services.mozilla.com/D82011
-rw-r--r--lib/freebl/ec.c21
1 files changed, 0 insertions, 21 deletions
diff --git a/lib/freebl/ec.c b/lib/freebl/ec.c
index d108bc118..7f4e903a0 100644
--- a/lib/freebl/ec.c
+++ b/lib/freebl/ec.c
@@ -724,27 +724,6 @@ ECDSA_SignDigestWithSeed(ECPrivateKey *key, SECItem *signature,
}
/*
- ** We do not want timing information to leak the length of k,
- ** so we compute k*G using an equivalent scalar of fixed
- ** bit-length.
- ** Fix based on patch for ECDSA timing attack in the paper
- ** by Billy Bob Brumley and Nicola Tuveri at
- ** http://eprint.iacr.org/2011/232
- **
- ** How do we convert k to a value of a fixed bit-length?
- ** k starts off as an integer satisfying 0 <= k < n. Hence,
- ** n <= k+n < 2n, which means k+n has either the same number
- ** of bits as n or one more bit than n. If k+n has the same
- ** number of bits as n, the second addition ensures that the
- ** final value has exactly one more bit than n. Thus, we
- ** always end up with a value that exactly one more bit than n.
- */
- CHECK_MPI_OK(mp_add(&k, &n, &k));
- if (mpl_significant_bits(&k) <= mpl_significant_bits(&n)) {
- CHECK_MPI_OK(mp_add(&k, &n, &k));
- }
-
- /*
** ANSI X9.62, Section 5.3.2, Step 2
**
** Compute kG