trackthis-ecdsa
v5.1.3
Published
cross-compiled javascript implementation of ed25519 based on supercop-ref10
Downloads
3
Readme
trackthis-ecdsa
ed25519 signature generation and verification
Install
npm install --save trackthis-ecdsa
Examples
Signing and verifying data
const lib = require('trackthis-ecdsa');
const seed = lib.createSeed();
const keypair = await lib.createKeyPair(seed);
const msg = Buffer.from('hello there');
const sig = await keypair.sign(msg);
console.log(await keypair.verify(sig, msg)); // true
Storing keypairs
const lib = require('trackthis-ecdsa');
const fs = require('fs');
const seed = lib.createSeed();
const keypair = await lib.createKeyPair();
fs.writeFileSync('keys.json', JSON.stringify({
publicKey: keypair.publicKey.toString('base64'),
secretKey: keypair.secretKey.toString('base64'),
});
Loading keypairs
const lib = require('trackthis-ecdsa');
const fs = require('fs');
const base64keys = require('./keys.json');
const keypair = lib.keyPairFrom({
publicKey: Buffer.from(base64keys.publicKey, 'base64'),
secretKey: Buffer.from(base64keys.secretKey, 'base64'),
});
API
lib.createSeed()
Generates 32-byte seed using Math.random
. Using a different random-generator
which is cryptographically secure is strongly advised.
lib.keyPairFrom( data )
Generates a keypair containing the .sign
and .verify
functions
lib.createKeyPair( seed )
Generates a keypair from the provided 32-byte seed with the following properties:
- arguments:
seed
- a 32-byte byffer
- returns:
keypair.publicKey
- A 32-byte public key as a bufferkeypair.secretKey
- A 64-byte secret key as a bufferkeypair.sign
- Function to sign a message using the keypairkeypair.verify
- Function to verify a signature using the keypair
lib.sign( msg, publicKey, secretKey )
Sign a message using the given keypair.
- arguments:
msg
- A buffer representing the messagepublicKey
- A 32-byte public key as a buffersecretKey
- A 64-byte secret key as a buffer
- returns:
signature
- A 64-byte buffer
lib.verify( sig, msg, publicKey )
TODO
keypair.sign( msg )
TODO
keypair.verify( sig, msg )
TODO