stream-cipher

0.0.3 • Public • Published

Stream Cipher

Cipher and decipher streams 'on the fly' while keeping each byte position.

Specially designed for Amazon S3 ranged GETs.

API

var sc = StreamCipher(initialization_vector, password, speed, encript, start_at_byte)

Create a new engine instance. Options can contain the following

  • initialization_vector: 'string' // (required)
  • password: 'string' // (required)
  • speed: 'number' // default: 20 | Increases the speed by generating HMACs less frequently
  • encript: Boolean // default: true | true: cipher, false: decipher
  • start_at_byte: Tells de position of the first byte received by the stream, relative to the complete file.

Cipher Stream Example:

var StreamCipher = require('stream-cipher')
var initialization_vector = "private_init_vector_string"
var password = "123dontusethispassword"
 
var sc = new StreamCipher(initialization_vector, password, 20, true)
var origin = fs.createReadStream('./lipsum.txt');
var destination = fs.createWriteStream('./lipsum-encripted.txt');
origin.pipe(sc.digest).pipe(destination)

Decipher Stream Example:

var StreamCipher = require('stream-cipher')
var initialization_vector = "private_init_vector_string"
var password = "123dontusethispassword"
 
var sc = new StreamCipher(initialization_vector, password, 20, false)
var origin = fs.createReadStream('./lipsum-encripted.txt');
var destination = fs.createWriteStream('./lipsum-decripted.txt');
origin.pipe(sc.digest).pipe(destination)

Decipher Stream without first 10 bytes:

var StreamCipher = require('stream-cipher')
var initialization_vector = "private_init_vector_string"
var password = "123dontusethispassword"
 
var sc = new StreamCipher(initialization_vector, password, 20, false, 10)
var origin = fs.createReadStream('./lipsum-encripted-without-first-10-bytes.txt');
var destination = fs.createWriteStream('./lipsum-decripted-without-first-10-bytes.txt');
origin.pipe(sc.digest).pipe(destination)

For more information, check the see the /test folder.

Readme

Keywords

Package Sidebar

Install

npm i stream-cipher

Weekly Downloads

1

Version

0.0.3

License

MIT

Last publish

Collaborators

  • guerrerocarlos