From eab5c2896ea862ce2023e317b65d483d592d1792 Mon Sep 17 00:00:00 2001 From: Rich Morgan Date: Wed, 28 May 2014 11:34:18 -0400 Subject: [PATCH] Fix to check for zero s value in sign function If r OR s are zero then recalculate both r and s until they are both non-zero values. --- lib/browser/Key.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/browser/Key.js b/lib/browser/Key.js index 43eb4fd..0f3e91e 100644 --- a/lib/browser/Key.js +++ b/lib/browser/Key.js @@ -120,9 +120,8 @@ Key.prototype.signSync = function(hash) { var G = ecparams.getG(); var Q = G.multiply(k); var r = Q.getX().toBigInteger().mod(n); - } while (r.compareTo(BigInteger.ZERO) <= 0); - - var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n); + var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n); + } while (r.compareTo(BigInteger.ZERO) <= 0 || s.compareTo(BigInteger.ZERO) <= 0); return serializeSig(r, s); };