json-web-algorithms

    0.2.0 • Public • Published

    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

    Install

    npm i json-web-algorithms

    DownloadsWeekly Downloads

    3

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    15.8 kB

    Total Files

    5

    Last publish

    Collaborators

    • jhermsmeier