rfc6920-toolbox

0.1.1 • Public • Published

rfc6920-toolbox Build Status

Encode/decode RFC6920 "named information" URI's.

Install

npm install rfc6920-toolbox

API

  • digest(algorithm, data) = rfc6920DigestString
    Create a base64uri encoded digest of data, using algorithm

  • serialize(niData) = niUriString
    Create a ni-URI string from a niData object

  • deserialize(uri) = niDataObject
    Create a niData object from a ni-URI string

Usage

var rfc6920 = require("rfc6920-toolbox");
 
var sourceCode = get_file_contents("https://code.jquery.com/jquery-1.10.2.min.js");
 
var digest = rfc6920.digest("sha-256", sourceCode); 
//=> "C6CB9UYIS9UJeqinPHWTHVqh_E1uhG5Twh-Y5qFQmYg"
 
var niData = {
    algorithm: "sha-256",
    digest: digest,
    parameters: {
        "ct": "text/javascript"
    }
}
 
var niUri = rfc6920.encode(niData); 
//=> "ni:///sha-256;C6CB9UYIS9UJeqinPHWTHVqh_E1uhG5Twh-Y5qFQmYg?ct=text/javascript"
 
rfc6920.deserialize(niUri); 
//=> niData

Note: this module supports currying.

var sha256Digest = rfc6920.digest("sha-256");
 
sha256Digest(sourceCode); 
//=> "C6CB9UYIS9UJeqinPHWTHVqh_E1uhG5Twh-Y5qFQmYg"

"ni" data

defaults = {
    algorithm: "sha-256",
    authority: "",
    digest: undefined, // Required
    parameters: {}
}

Key: type name = default

  • string algorithm = "sha-256" RFC6920 Digest Algorithm

    Digest Algorithm: The name of the digest algorithm, as specified in the IANA registry defined in Section 9.4.

  • string authority = ""
    RFC6920 Authority value

    Authority: The optional authority component may assist applications in accessing the object named by an ni-URI. There is no default value for the authority field. (See Section 3.2.2 of [RFC3986] for details.) While ni names with and without an authority differ syntactically from ni names with different authorities, all three refer to the same object if and only if the digest algorithm, length, and value are the same.

  • string digest = undefined
    RFC6920 Digest Value

    Digest Value: The digest value MUST be encoded using the base64url [RFC4648] encoding, with no "=" padding characters.

  • object parameters = {}
    Deserialized RFC6920 Query Parameters, in key: value format.

Package Sidebar

Install

npm i rfc6920-toolbox

Weekly Downloads

1

Version

0.1.1

License

MIT

Last publish

Collaborators

  • neftaly