ecdsa

Elliptical Curve Cryptography Digital Signing

npm install ecdsa
6 downloads in the last day
20 downloads in the last week
49 downloads in the last month

ecdsa

JavaScript component for Elliptical Curve Cryptography signing and verify.

See this article for more details: bitcoin address.

Install

npm install --save ecdsa

Example

var ecparams = require('ecurve-names')('secp256k1')
var ECDSA = require('ecdsa')
var sha256 = require('sha256')
var secureRandom = require('secure-random')
var BigInteger = require('bigi')

var randArr = secureRandom(32, {array: true})
var privKey = BigInteger.fromByteArrayUnsigned(randArr)

//must set curve
var ecdsa = new ECDSA(ecparams);

//or
//ECDSA.ecparams = ecparams;

var pubPoint = ecparams.getG().multiply(privKey)
var pubKey = pubPoint.getEncoded(false) //true => compressed
var msg = "hello world!"
var shaMsg = sha256(msg)
var signature = ecdsa.sign(shaMsg, privKey)
var isValid = ecdsa.verify(shaMsg, signature, pubKey)
console.log(isValid) //true

Credits

It's not clear to me if this is based upon Tom Wu's work or Stefen Thomas.

npm loves you