Browse Source

sign, verify convenience functions

patch-2
Ryan X. Charles 11 years ago
parent
commit
6e9755b009
  1. 15
      lib/ecdsa.js
  2. 20
      test/ecdsa.js

15
lib/ecdsa.js

@ -198,4 +198,19 @@ ECDSA.prototype.verify = function() {
return false; return false;
}; };
ECDSA.sign = function(hashbuf, keypair) {
return ECDSA().set({
hashbuf: hashbuf,
keypair: keypair
}).signRandomK();
};
ECDSA.verify = function(hashbuf, sig, pubkey) {
return ECDSA().set({
hashbuf: hashbuf,
sig: sig,
keypair: Keypair().set({pubkey: pubkey})
}).verify();
};
module.exports = ECDSA; module.exports = ECDSA;

20
test/ecdsa.js

@ -190,4 +190,24 @@ describe("ECDSA", function() {
}); });
describe('@sign', function() {
it('should produce a signature', function() {
var sig = ECDSA.sign(ecdsa.hashbuf, ecdsa.keypair);
(sig instanceof Signature).should.equal(true);
});
});
describe('@verify', function() {
it('should verify a valid signature, and unverify an invalid signature', function() {
var sig = ECDSA.sign(ecdsa.hashbuf, ecdsa.keypair);
ECDSA.verify(ecdsa.hashbuf, sig, ecdsa.keypair.pubkey).should.equal(true);
var fakesig = Signature(sig.r.add(1), sig.s);
ECDSA.verify(ecdsa.hashbuf, fakesig, ecdsa.keypair.pubkey).should.equal(false);
});
});
}); });

Loading…
Cancel
Save