Skip to content

Commit

Permalink
Merge pull request #87 from pfumagalli/master
Browse files Browse the repository at this point in the history
Have the `update(...)` method of Signer and Verifier to return `this`.
  • Loading branch information
quartzjer committed Apr 20, 2015
2 parents 8faf91c + 5fc1e97 commit ce7f8f9
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
18 changes: 10 additions & 8 deletions lib/ursa.js
Expand Up @@ -670,32 +670,35 @@ function equalKeys(key1, key2) {
*/
function createSigner(algorithm) {
var hash = crypto.createHash(algorithm);
var self = {};

function update(buf, bufEncoding) {
buf = decodeString(buf, bufEncoding);
hash.update(buf);
return self;
}

function sign(privateKey, outEncoding) {
var hashBuf = new Buffer(hash.digest(BINARY), BINARY);
return privateKey.sign(algorithm, hashBuf, undefined, outEncoding);
}

return {
sign: sign,
update: update
};
self.sign = sign;
self.update = update;
return self;
}

/**
* Create a verifier object.
*/
function createVerifier(algorithm) {
var hash = crypto.createHash(algorithm);
var self = {};

function update(buf, bufEncoding) {
buf = decodeString(buf, bufEncoding);
hash.update(buf);
return self;
}

function verify(publicKey, sig, sigEncoding) {
Expand All @@ -704,10 +707,9 @@ function createVerifier(algorithm) {
return publicKey.verify(algorithm, hashBuf, sig);
}

return {
update: update,
verify: verify
};
self.update = update;
self.verify = verify;
return self;
}


Expand Down
13 changes: 9 additions & 4 deletions test/test.js
Expand Up @@ -278,7 +278,7 @@ function testTypes() {
var pub = ursa.createPublicKey(fixture.PUBLIC_KEY);
var priv = ursa.createPrivateKey(fixture.PRIVATE_KEY);
var msg;

msg = "Problem with isKey()";
assert.equal(ursa.isKey(pub), true, msg);
assert.equal(ursa.isKey(priv), true, msg);
Expand Down Expand Up @@ -514,7 +514,7 @@ function test_sshFingerprint() {
assert.equal(finger, fixture.SSH_PUBLIC_KEY_FINGERPRINT_HEX);

finger = ursa.sshFingerprint(
fixture.SSH_PUBLIC_KEY.toString(fixture.BASE64),
fixture.SSH_PUBLIC_KEY.toString(fixture.BASE64),
fixture.BASE64, fixture.HEX);
assert.equal(finger, fixture.SSH_PUBLIC_KEY_FINGERPRINT_HEX);
}
Expand Down Expand Up @@ -577,7 +577,8 @@ function testSigner() {
var key = ursa.createPrivateKey(fixture.PRIVATE_KEY);
var signer = ursa.createSigner(fixture.SHA256);

signer.update(fixture.PLAINTEXT, fixture.UTF8);
var ret = signer.update(fixture.PLAINTEXT, fixture.UTF8);
assert.equal(ret === signer, true);

var sig = signer.sign(key, fixture.HEX);

Expand All @@ -587,7 +588,11 @@ function testSigner() {
function testVerifier() {
var key = ursa.createPublicKey(fixture.PUBLIC_KEY);
var verifier = ursa.createVerifier(fixture.SHA256);
verifier.update(fixture.PLAINTEXT, fixture.UTF8);

var ret = verifier.update(fixture.PLAINTEXT, fixture.UTF8);
assert.equal(ret === verifier, true);


assert.equal(verifier.verify(key, fixture.PLAINTEXT_SHA256_SIGNATURE,
fixture.HEX),
true);
Expand Down

0 comments on commit ce7f8f9

Please sign in to comment.