diff --git a/src/ssn/streams/decryptStream.ts b/src/ssn/streams/decryptStream.ts index 3470719..12cafcb 100644 --- a/src/ssn/streams/decryptStream.ts +++ b/src/ssn/streams/decryptStream.ts @@ -8,16 +8,20 @@ export default function decryptStream(inputStream: stream.Readable, decryptionKe read(size) { //There are 12 random bytes at the beginning, we need to use them to initialize the decryption keys, but we can ignore the decrypted bytes. if (!skippedRandomHeader) { - const encryptedHeader = inputStream.read(12); + const encryptedHeader: Buffer = inputStream.read(12); decryptChunk(encryptedHeader, decryptionKeys); skippedRandomHeader = true; } //Decrypt chunk - const encryptedChunk = inputStream.read(size); - const decryptedChunk = decryptChunk(encryptedChunk, decryptionKeys); - - this.push(decryptedChunk); + const encryptedChunk: Buffer = inputStream.read(size); + if (encryptedChunk === null) { + //If end has been reached, stop + this.push(null); + } else { + const decryptedChunk = decryptChunk(encryptedChunk, decryptionKeys); + this.push(decryptedChunk); + } }, });