Sha256: fc998ce2e2601f49e7ed96ce2d7a7a58c0a280dd03fcf6d5a9f5bc57098fb4c7

Contents?: true

Size: 1.74 KB

Versions: 36

Compression:

Stored size: 1.74 KB

Contents

# @tufjs/canonical-json

JSON canonicalization compliant with the [OLPC Canonical JSON specification][1].

## Why

If you're looking for [RFC 8785][2] compliant JSON canonicalization there are
[any][3] [number][4] [of][5] [libraries][6] [to][7] [choose][8] [from][9].
You should only select this library if you know that you specifically need
support for the [OLPC][1]-style of canonicalization.

One reason you might chose OLPC compliance is for interoperability with
[The Update Framework][10] which specifically calls out OLPC as the
canonicalization standard for computing signatures over TUF metadata.

The canonicalized strings generated by this library are compatible with those
generated by the Python-based [securesystemslib][11] library and the Go-based
[go-securesystemslib][12] library.

## Installation

```console
npm install @tufjs/canonical-json
```

## Usage

```javascript
const json = require('@tufjs/canonical-json')

const obj = {
  bool: true,
  num: 42,
  ary: [1, 2, 3],
  str: "foo\\bar"
}

console.log(json.canonicalize(obj))
// output: {"ary":[1,2,3],"bool":true,"num":42,"str":"foo\\bar"}
```

[1]: https://wiki.laptop.org/go/Canonical_JSON
[2]: https://www.rfc-editor.org/rfc/rfc8785
[3]: https://www.npmjs.com/package/@stratumn/canonicaljson
[4]: https://www.npmjs.com/package/@truestamp/canonify
[5]: https://www.npmjs.com/package/canonical-json
[6]: https://www.npmjs.com/package/canonicalize
[7]: https://www.npmjs.com/package/canonicalize-json
[8]: https://www.npmjs.com/package/json-canonicalize
[9]: https://www.npmjs.com/package/another-json
[10]: https://theupdateframework.github.io/specification/latest/#metaformat
[11]: https://github.com/secure-systems-lab/securesystemslib
[12]: https://github.com/secure-systems-lab/go-securesystemslib

Version data entries

36 entries across 36 versions & 2 rubygems

Version Path
rapid_stack-0.2.0 templates/frontend/node_modules/@tufjs/canonical-json/README.md
rapid_stack-0.1.1 templates/FrontEnd/node_modules/@tufjs/canonical-json/README.md
rapid_stack-0.1.0 templates/FrontEnd/node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.60 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.59 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.58 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.57 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.56 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.55 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.54 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.53 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.52 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.51 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.50 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.49 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.48 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.47 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.46 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.45 node_modules/@tufjs/canonical-json/README.md
immosquare-cleaner-0.1.44 node_modules/@tufjs/canonical-json/README.md