Skip to content

Latest commit

 

History

History
105 lines (77 loc) · 1.74 KB

README.md

File metadata and controls

105 lines (77 loc) · 1.74 KB

js-senc - js implementation of senc

Library

WARNING: Library uses pull-streams.

Works in node.js and the browser. Uses libp2p-crypto.

Install

npm install --save senc

Encrypt

var senc = require('senc')
var stdio = require('pull-stdio')
var key = senc.RandomKey()

pull(
  stdio.stdin({encoding: binary}),
  senc.EncryptStream(key),
  stdio.stdout(() => {})
)

Decrypt

var senc = require('senc')
var stdio = require('pull-stdio')
var key = <key-from-above>

pull(
  stdio.stdin({encoding: binary}),
  senc.DecryptStream(key),
  stdio.stdout(() => {})
)

Random Key

var senc = require('senc')
console.log(senc.RandomKey())

Command Line

Install

npm install --global senc

Usage

usage:  senc  -e -k <key> - encrypt stdin with aes
        senc  -d -k <key> - decrypt stdin with aes

OPTIONS
  -h, --help    this help text
  -d            set decrypt mode
  -e            set encrypt mode
  -k <string>   key to use (in multibase)
  -b <base>     the multibase encoding to write key to
  --key-gen     generate a key

Key-gen

> senc --key-gen
zEkHKdVKVUazjMndot4puCyA57Ji7vH6VhemsNk8vvkhi

> key=$(senc --key-gen)

Encrypt

senc -k zEkHKdVKVUazjMndot4puCyA57Ji7vH6VhemsNk8vvkhi -e <plaintext >ciphertext

Decrypt

senc -k zEkHKdVKVUazjMndot4puCyA57Ji7vH6VhemsNk8vvkhi -d <ciphertext >plaintext2

Full Example

# keygen
senckey=$(senc --key-gen)

# encrypt
senc -k $senckey -e <plaintext >ciphertext

# decrypt
senc -k $senckey -d <ciphertext >plaintext2

# check the diff
diff plaintext plaintext2