sign, verify convenience functions

This commit is contained in:
Ryan X. Charles 2014-09-16 11:34:28 -07:00
parent ed335f35f7
commit 6e9755b009
2 changed files with 35 additions and 0 deletions

View File

@ -198,4 +198,19 @@ ECDSA.prototype.verify = function() {
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;

View File

@ -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);
});
});
});