XSalsa20 Poly1305 codec that implements the abstract-encoding interface.
npm install secretbox-encodingsecretbox-encoding
==================
> [XSalsa20 Poly1305][secretbox] codec that implements the [abstract-encoding][abstract-encoding] interface.
> Nonces are generated randomly and prepended to the ciphertext.
``sh`
$ npm install secretbox-encoding
`js
const codec = require('secretbox-encoding')(secretKey)
// encode a value
buffer = codec.encode(value)
// decode a value
value = codec.decode(buffer)
`
`js
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'
`
`js
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' }
`
Create a codec object from 32 byte secretKey.
`js`
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 offset0
defaulting to . If an output buffer is not given, one is allocated
for you and returned.
`js`
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.
`js`
const value = codec.decode(buffer)
#### length = codec.encodingLength(value)
Returns the encoding length for a given value.
`js``
const length = codec.encodingLength('hello world') // 11
MIT
[abstract-encoding]: https://github.com/mafintosh/abstract-encoding
[secretbox]: https://download.libsodium.org/doc/secret-key_cryptography/secretbox