webm-encrypt
v1.0.5
Published
Package used for encrypting and decrypting webm files
Downloads
36
Maintainers
Readme
Tool for encrypting and decrypting WebM files. Provides a CLI and a Transform implementation.
Install
# Install via NPM locally:
npm install --save webm-encrypt
# Install globally (for CLI use):
npm install --global webm-encrypt
Usage
CLI
# Encrypt a webm file
webme -i input.webm -o output.webm
# Encrypt a webm file with a specific key
webme -i input.webm -o output.webm -k keyfile.key
# Decrypt a webm file
webme -d -i encrypted.webm -o decrypted.webm -k keyfile.key
Note on keys: The WebM Encryption Specification states that the key size for encryption must be 128 bit*. Consequently, the key file used must be 16 bytes (128 bits) of binary data.
Code
webm-encrypt
was written to quickly and easily encrypt or decrypt WebM binary data. Encrypting and decrypting a file using nodejs is as easy as:
const { WebmStreamEncryptor } = require('webm-encrypt');
const fs = require('fs');
const crypto = require('crypto');
const { pipeline } = require('stream');
// Generate a random encryption key
let key = new Uint8Array(16);
crypto.randomFillSync(key);
pipeline(
// Create the read stream for the original file
fs.createReadStream('input.webm'),
// Use the Transform from webm-encrypt to encrypt the file data
new WebmStreamEncryptor('encrypt', key),
// Write the encrypted file stream to disk
fs.createWriteStream('encrypted.webm')
).on('close', () => {
// After the file is written, decrypt the file to a new location
pipeline(
fs.createReadStream('encrypted.webm'),
new WebmStreamEncryptor('decrypt', key),
fs.createWriteStream('decrypted.webm')
)
});
For reference, be sure to check out Node Transform Streams!