@hyperswarm/secret-stream
Advanced tools
Comparing version
@@ -12,2 +12,3 @@ const { Pull, Push, HEADERBYTES, KEYBYTES, ABYTES } = require('sodium-secretstream') | ||
const [NS_INITIATOR, NS_RESPONDER] = crypto.namespace('hyperswarm/secret-stream', 2) | ||
const MAX_ATOMIC_WRITE = 256 * 256 * 256 - 1 | ||
@@ -429,2 +430,6 @@ module.exports = class NoiseSecretStream extends Duplex { | ||
if (wrapped.byteLength - 3 > MAX_ATOMIC_WRITE) { | ||
return cb(new Error('Message is too large for an atomic write. Max size is ' + MAX_ATOMIC_WRITE + ' bytes.')) | ||
} | ||
writeUint24le(wrapped.byteLength - 3, wrapped) | ||
@@ -431,0 +436,0 @@ // offset 4 so we can do it in-place |
{ | ||
"name": "@hyperswarm/secret-stream", | ||
"version": "6.2.0", | ||
"version": "6.2.1", | ||
"description": "Secret stream backed by Noise and libsodium's secretstream", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
14
test.js
@@ -485,2 +485,16 @@ const test = require('brittle') | ||
test('message is too large', function (t) { | ||
t.plan(2) | ||
const a = new NoiseStream(true) | ||
const b = new NoiseStream(false) | ||
a.rawStream.pipe(b.rawStream).pipe(a.rawStream) | ||
a.on('error', () => t.pass('should error')) | ||
b.on('error', () => t.pass('should error')) | ||
a.write(Buffer.alloc(32 * 1024 * 1024)) | ||
}) | ||
function createHandshake () { | ||
@@ -487,0 +501,0 @@ return new Promise((resolve, reject) => { |
43675
1.25%925
1.43%