ECDSA secp256r1
Getting Started
$ yarn add ecdsa-secp256r1
How to use
Node.js
Create key
const ECDSA = const privateKey = ECDSA privateKey/*{ kty: 'EC', crv: 'P-256', x: '4YdUIhIDncVu5tScgjxthiXOO_el11FWb56gR3qnhVQ', y: 'UyEvWOJbMZa9PtggGeRC9iQcAzOZZsyXpFE1qaF6jFk', d: 'TYVI2fW-nHSPGCx0MhWasg2Ggiyl1E_Kq4D1A5LmkxU' }*/ privateKey/*{ kty: 'EC', crv: 'P-256', x: '4YdUIhIDncVu5tScgjxthiXOO_el11FWb56gR3qnhVQ', y: 'UyEvWOJbMZa9PtggGeRC9iQcAzOZZsyXpFE1qaF6jFk' }*/ privateKey/*-----BEGIN PRIVATE KEY-----MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgTYVI2fW+nHSPGCx0MhWasg2Ggiyl1E/Kq4D1A5LmkxWhRANCAAThh1QiEgOdxW7m1JyCPG2GJc4796XXUVZvnqBHeqeFVFMhL1jiWzGWvT7YIBnkQvYkHAMzmWbMl6RRNamheoxZ-----END PRIVATE KEY-----*/ privateKey/*-----BEGIN PUBLIC KEY-----MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE4YdUIhIDncVu5tScgjxthiXOO/el11FWb56gR3qnhVRTIS9Y4lsxlr0+2CAZ5EL2JBwDM5lmzJekUTWpoXqMWQ==-----END PUBLIC KEY-----*/ privateKey/*A+GHVCISA53FbubUnII8bYYlzjv3pddRVm+eoEd6p4VU*/
Sign
const message = text: 'hello' privateKey/*lY3Lf9xDtcsqom5IKu+ZyikxeYHlEuxnPfme4lMxp76NMkIm5BiLxVjbqBSo4itfT/LEuBCzMXl11cB0w/X8dA==*/
Verify
const key = 'A+GHVCISA53FbubUnII8bYYlzjv3pddRVm+eoEd6p4VU'const publicKey = ECDSA // or ECDSA.fromJWKconst message = text: 'hello' const signature = 'lY3Lf9xDtcsqom5IKu+ZyikxeYHlEuxnPfme4lMxp76NMkIm5BiLxVjbqBSo4itfT/LEuBCzMXl11cB0w/X8dA==' publicKey/*true*/
Browsers
Support: https://caniuse.com/#feat=cryptography
const ECDSA = const privateKey = await ECDSA // API is the same as Node.js, except everything returns Promises
or
Thanks
Inspired from https://github.com/relocately/ec-key