npm install signal-stream
encrypt and decrypt streams using the signal-protocol
var signalstream = require('signal-stream')
var signal = require('signal-protocol')
var h = require('signal-stream/test/helpers')(signal)
h.bobAliceSessionCiphers()
.then(([aliceCipher, bobCipher]) => {
let alice = signalstream(aliceCipher)
let bob = signalstream(bobCipher)
require('http')
.get({
hostname:'info.cern.ch',
path: '/hypertext/WWW/TheProject.html',
}, res => {
res
.pipe(alice.encrypt)
.pipe(bob.decrypt)
.pipe(bob.encrypt)
.pipe(alice.decrypt)
.on('data', d =>
console.log(d.toString()))
})
})
// <HEADER>
// <TITLE>The World Wide Web project</TITLE>
// ...
see examples/
for more.
returns an object { encrypt, decrypt }
.
encrypt
is a transform stream that consumes (plaintext) buffers and produces (encrypted) ciphertext objects (refer to signal-protocol for details).
decrypt
is a transform stream that consumes signal-protocol's ciphertext objects and produces plaintext buffers.
the default opts
are
{
jsonIn: false,
jsonOut: false,
}
setting these to true
can be helpful if you need to (de-)serialize the objects produced by signal-protocol's encrypt
, e.g. to send over a websocket or a network. (see examples/net.js
).
BSD