ec-pem
Version:
Enables `crypto.sign` and `crypto.verify` using `crypto.createECDH` generated keys
44 lines (33 loc) • 1.05 kB
JavaScript
describe('documentation', () => {
it('primary readme example should work', () => {
const crypto = require('crypto');
const ec_pem = require('../ec_pem');
let alice_pem_private, alice_pem_public;
{
let curve = 'secp521r1'
let alice = crypto.createECDH(curve);
alice.generateKeys();
alice = ec_pem(alice, curve);
alice_pem_private = alice.encodePrivateKey();
// console.log(alice_pem_private);
alice_pem_public = alice.encodePublicKey();
// console.log(alice_pem_public);
}
const data = Buffer.from('a message to sign');
let signature;
{
const sign = crypto.createSign('sha256');
sign.update(data);
signature = sign.sign(alice_pem_private);
// console.log({signature})
}
{
const verify = crypto.createVerify('sha256');
verify.update(data);
const matched = verify.verify(alice_pem_public, signature);
// console.log({matched})
if (!matched)
throw new Error("Verification failed");
}
})
})