json-web-algorithms

JSON Web Algorithms (JWA) for JSON Object Signing and Encryption (JOSE)


Keywords
jwa, jose, acme, json, sign, verify, encrypt, crypto, jwt, ecdsa-signature, json-web-algorithms, json-web-key, jwk, rsa-signature
License
MIT
Install
npm install json-web-algorithms@0.2.0

Documentation

JSON Web Algorithms (JWA)

npm npm license npm downloads build status

JSON Web Algorithms (JWA) for JSON Object Signing and Encryption (JOSE)

Install via npm

$ npm install --save json-web-algorithms

Signature Algorithms

HMAC (Hash-based Message Authentication Code)

Type Signature / MAC & Hash algorithm
HS256 HMAC using SHA-256 hash algorithm
HS384 HMAC using SHA-384 hash algorithm
HS512 HMAC using SHA-512 hash algorithm

RSASSA (RSA Signature Scheme with Appendix)

Type Signature / MAC & Hash algorithm
RS256 RSASSA using SHA-256 hash algorithm
RS384 RSASSA using SHA-384 hash algorithm
RS512 RSASSA using SHA-512 hash algorithm

ECDSA (Elliptic Curve Digital Signature Algorithm)

Type Signature / MAC & Hash algorithm
ES256 ECDSA using P-256 curve and SHA-256 hash algorithm
ES384 ECDSA using P-384 curve and SHA-384 hash algorithm
ES512 ECDSA using P-521 curve and SHA-512 hash algorithm

PLAIN

Type Signature / MAC & Hash algorithm
PLAIN No digital signature or MAC value included

Usage

var JOSE = require( 'jose' )
// Sign something
var signature = JOSE.sign( 'HS256' input, key )
// Verify a signature
var isValid = JOSE.verify( 'HS256', signature, input, key )

API Reference

JWA : Object

JSON Web Algorithms

Kind: global variable

JWA.SignatureAlgorithm : function

Kind: static class of JWA

new JWA.SignatureAlgorithm()

JWA SignatureAlgorithm

JWA.sign(algorithm, input, key) ⇒ Buffer

Sign an input with a given algorithm

Kind: static method of JWA Returns: Buffer - signature

Param Type
algorithm String
input Buffer
key Buffer

JWA.verify(algorithm, signature, input, key) ⇒ Boolean

Verify a signature with a given algorithm

Kind: static method of JWA

Param Type
algorithm String
signature Buffer
input Buffer
key Buffer

SignatureAlgorithm

Kind: global class

new SignatureAlgorithm(type, bits)

SignatureAlgorithm

Param Type
type String
bits Number

signatureAlgorithm._signECDSA(digest) ⇒ Buffer

Create a ECDSA signature for a given digest

Kind: instance method of SignatureAlgorithm Internal: used by .sign()

Param Type
digest Buffer

signatureAlgorithm.sign(input, key) ⇒ Buffer

Sign an input with a given key

Kind: instance method of SignatureAlgorithm

Param Type
input Buffer
key Buffer

signatureAlgorithm._verifyHMAC(signature, input, key) ⇒ Boolean

Verify an HMAC signature

Kind: instance method of SignatureAlgorithm Internal: used by .verify()

Param Type
signature Buffer
input Buffer
key Buffer

signatureAlgorithm._verifyRSA(signature, input, key) ⇒ Boolean

Verify an RSA signature

Kind: instance method of SignatureAlgorithm Internal: used by .verify()

Param Type
signature Buffer
input Buffer
key Buffer

signatureAlgorithm._verifyECDSA(signature, input, key) ⇒ Boolean

Verify an ECDSA signature

Kind: instance method of SignatureAlgorithm Internal: used by .verify()

Param Type
signature Buffer
input Buffer
key Buffer

signatureAlgorithm.verify(signature, input, key) ⇒ Boolean

Verify a signature against an input & key

Kind: instance method of SignatureAlgorithm

Param Type
signature Buffer
input Buffer
key Buffer

SignatureAlgorithm.type : Object

SignatureAlgorithm type algorithms NOTE: OpenSSL only signs EC with SHA2 when specifying RSA and using an EC key

Kind: static property of SignatureAlgorithm