开发者社区> 镜像站> NPM> secretbox-encoding
secretbox-encoding
XSalsa20 Poly1305 codec that implements the abstract-encoding interface.
Last updated a year ago by werle .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install secretbox-encoding 
SYNC missed versions from official npm registry.

secretbox-encoding

XSalsa20 Poly1305 codec that implements the abstract-encoding interface. Nonces are generated randomly and prepended to the ciphertext.

Installation

$ npm install secretbox-encoding

Usage

const codec = require('secretbox-encoding')(secretKey)

// encode a value
buffer = codec.encode(value)

// decode a value
value = codec.decode(buffer)

Example

const crypto = require('crypto')
const Codec = require('secretbox-encoding')

const key = crypto.randomBytes(32)

const codec = Codec(key)
const hello = codec.encode('hello')
const world = codec.encode('world')

console.log('%s %s', codec.decode(hello), codec.decode(world)) // 'hello world'

Custom Value Encodings

const pbs = require('protocol-buffers')
const { Message } = pbs(`
message {
  string data = 1;
}
`)

const codec = Codec(key, { valueEncoding: Message })
const encoded = codec.encode({ data: 'hello world' })
const message = codec.decode(encoded) // { data: 'hello world' }

API

codec = require('secretbox-encoding')(secretKey[, opts])

Create a codec object from 32 byte secretKey.

const key = crypto.randomBytes(32)
const codec = Codec(key)

buffer = codec.encode(value[, output[, offset]])

Encode a value using crypto_secretbox_easy into an optional output buffer at an optional offset defaulting to 0. If an output buffer is not given, one is allocated for you and returned.

const buffer = codec.encode('hello world')

value = codec.decode(buffer[, offset])

Decode a buffer using crypto_secretbox_open_easy at an optional offset defaulting to 0.

const value = codec.decode(buffer)

length = codec.encodingLength(value)

Returns the encoding length for a given value.

const length = codec.encodingLength('hello world') // 11

License

MIT

Current Tags

  • 1.0.0                                ...           latest (a year ago)

2 Versions

  • 1.0.0                                ...           a year ago
  • 0.2.0                                ...           a year ago
Maintainers (2)
Downloads
Today 1
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependencies (1)
Dev Dependencies (3)
Dependents (1)