Authenticated encryption on arbitrary large files
npm install aead-streamAuthenticated encryption on arbitrary large files
aead-stream is a simple API to perform authenticated symmetric encrytion on data of arbitrary size.
```
npm install aead-stream
- key \plaintext
- \options
- \ Default: default optionsalgorithm
- \crypto.createCipherivnonceLength
- \authTagLength
- \chunkSize
- \associatedData
- \
- Returns: \
Click to view example
`javascript
const { encrypt } = require("aead-stream");
const { createReadStream } = require("fs");
/**
* @param {Uint8Array} key 256 bit key material
* @param {string} filepath a file path
*/
async function encyptFile(key, filepath) {
const readStream = createReadStream(filepath);
for await (const encryptedChunk of encrypt(key, readStream)) {
// store encryptedChunk - it is a Uint8Array with at most 64K size
}
}
`
- key \ciphertext
- \options
- \ Default: default optionsalgorithm
- \crypto.createCipherivnonceLength
- \authTagLength
- \chunkSize
- \associatedData
- \
- Returns: \
Click to view example
`javascript
const { decrypt } = require("aead-stream");
const { createReadStream } = require("fs");
/**
* @param {Uint8Array} key 256 bit key material
* @param {string} filepath a file path to an encrypted file
*/
async function decyptFile(key, filepath) {
const readStream = createReadStream(filepath);
for await (const plain of decrypt(key, readStream)) {
// process plain - a Uint8Array
}
}
`
- algorithm "chacha20-poly1305",nonceLength
- 12,authTagLength
- 16,chunkSize` 64 \* 1024 _(64K)_
-