Skip to content

guerrerocarlos/stream-cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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, see /test folder.

About

Stream Cipher/Decipher, (Amazon S3 ranged GET compatible)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published