Have ideas to improve npm?Join in the discussion! »

    secretbox-encoding

    1.0.0 • Public • Published

    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

    Install

    npm i secretbox-encoding

    DownloadsWeekly Downloads

    5

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    12.3 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar