Comparing version 1.0.0 to 1.1.0
16
index.js
@@ -20,2 +20,16 @@ var nacl = require("tweetnacl"); | ||
var verifySignedMessage = function(signedMessage, verifyKey) { | ||
var decodedKey = bs58.decode(verifyKey); | ||
var signed = nacl.sign.open(signedMessage, decodedKey); | ||
return signed !== null; | ||
}; | ||
var signMessage = function(message, signKey, verifyKey) { | ||
verifyKey = bs58.decode(verifyKey); | ||
signKey = bs58.decode(signKey); | ||
var fullSignKey = Buffer.concat([signKey, verifyKey]); | ||
var arrayMessage = Uint8Array.from(message); | ||
return nacl.sign(arrayMessage, fullSignKey); | ||
}; | ||
module.exports = { | ||
@@ -27,2 +41,4 @@ gen: function(){ | ||
fromSeed: fromSeed, | ||
signMessage: signMessage, | ||
verifySignedMessage: verifySignedMessage, | ||
}; |
{ | ||
"name": "sovrin-did", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "node.js module to generate DID and Ed25519 keys to use with Sovrin", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -63,3 +63,52 @@ # node-sovrin-did | ||
### sovrinDID.signMessage(message, signKey, verifyKey) | ||
Signs a message with the given signKey and verifyKey. | ||
* The message should be a string. | ||
* Both the signKey and verifyKey should be the signKey and verifyKey given from the `gen()` or `fromSeed(seed)` methods | ||
Returns a signed message as a Uint8Array (i.e. Buffer). | ||
Example: | ||
```js | ||
var sovrin = sovrinDID.gen(); | ||
var signKey = sovrin.secret.signKey; | ||
var verifyKey = sovrin.verifyKey; | ||
var message = "Hello World!!"; | ||
var signedMessage = sovrinDID.signMessage(message, signKey, verifyKey);; | ||
``` | ||
### sovrinDID.verifySignedMessage(signedMessage, verifyKey) | ||
Verifies that the given message has been signed by the possessor of the given verifyKey. | ||
* The signedMessage should be what is returned from the `signMessage(message, signKey, verifyKey)` method | ||
* The verifyKey should be the verifyKey given from the `gen()` or `fromSeed(seed)` methods | ||
Returns `true` if the message was signed by the owner of the verifyKey `false` otherwise. | ||
Example: | ||
```js | ||
var sovrin = sovrinDID.gen(); | ||
var sovrin2 = sovrinDID.gen(); | ||
var signKey = sovrin.secret.signKey; | ||
var verifyKey = sovrin.verifyKey; | ||
var verifyKey2 = sovrin2.verifyKey; | ||
var message = "Hello World!!"; | ||
var signedMessage = sovrinDID.signMessage(message, signKey, verifyKey); | ||
console.log(sovrinDID.verifySignedMessage(signedMessage, verifyKey)); | ||
console.log(sovrinDID.verifySignedMessage(signedMessage, verifyKey2)) | ||
``` | ||
Output: | ||
``` | ||
true | ||
false | ||
``` | ||
## License | ||
MIT |
32
tests.js
@@ -72,1 +72,33 @@ var test = require("tape"); | ||
}); | ||
test("sovrinDID.signMessage(message, signKey, verifyKey)", function (t) { | ||
var signKey = "4bMnc36WuLYJqsWTZtiazJJrtkvPwgyWnirn7gKk7ium"; | ||
var verifyKey = "BzH5a2wLEyKxySUALpfBiBjHZtZudCG68J17QwWkRsdN"; | ||
var message = "Hello World!!"; | ||
var signedMessage = sovrinDID.signMessage(message, signKey, verifyKey); | ||
t.notEqual(message, signedMessage); | ||
t.end(); | ||
}); | ||
test("sovrinDID.verifySignedMessage(signedMessage, verifyKey)", function (t) { | ||
var signKey = "4bMnc36WuLYJqsWTZtiazJJrtkvPwgyWnirn7gKk7ium"; | ||
var verifyKey = "BzH5a2wLEyKxySUALpfBiBjHZtZudCG68J17QwWkRsdN"; | ||
var verifyKey2 = "QDQ7Y69yg6eeJNstq62rXw8mK8HmnnsocPwvo9DU2tS"; | ||
var signKey2 = "516mChDX1BRjwHJc2w838W8cXxy8a6Eb35HKXjPR2fD8"; | ||
var message = "Hello World!!"; | ||
var message2 = "I want to take over the world!!"; | ||
var signedMessage = sovrinDID.signMessage(message, signKey, verifyKey); | ||
var signedMessage2 = sovrinDID.signMessage(message2, signKey2, verifyKey2); | ||
t.equal(sovrinDID.verifySignedMessage(signedMessage, verifyKey), true); | ||
t.equal(sovrinDID.verifySignedMessage(signedMessage, verifyKey2), false); | ||
t.equal(sovrinDID.verifySignedMessage(signedMessage2, verifyKey2), true); | ||
t.equal(sovrinDID.verifySignedMessage(signedMessage2, verifyKey), false); | ||
t.end(); | ||
}); |
9457
108
114