From bdb0fe8020c6a817a158adb772f4d7d3515db2d1 Mon Sep 17 00:00:00 2001 From: Daniel Cousens Date: Thu, 26 Jun 2014 02:42:51 +1000 Subject: [PATCH] ecdsa: adds test for detGenK loop --- test/ecdsa.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/ecdsa.js b/test/ecdsa.js index 3c2f2e5..84c0b44 100644 --- a/test/ecdsa.js +++ b/test/ecdsa.js @@ -3,6 +3,7 @@ var crypto = require('../src/crypto') var ecdsa = require('../src/ecdsa') var message = require('../src/message') var networks = require('../src/networks') +var sinon = require('sinon') var BigInteger = require('bigi') var ECSignature = require('../src/ecsignature') @@ -23,6 +24,21 @@ describe('ecdsa', function() { assert.equal(k.toHex(), f.k) }) }) + + it('loops until an appropriate k value is found', sinon.test(function() { + this.mock(BigInteger).expects('fromBuffer') + .exactly(3) + .onCall(0).returns(new BigInteger('0')) + .onCall(1).returns(curve.n) + .onCall(2).returns(new BigInteger('42')) + + var d = new BigInteger('1') + var h1 = new Buffer(32) + + var k = ecdsa.deterministicGenerateK(curve, h1, d) + + assert.equal(k.toString(), '42') + })) }) describe('recoverPubKey', function() {