webm-encrypt
TypeScript icon, indicating that this package has built-in type declarations

1.0.5 • Public • Published

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!

Package Sidebar

Install

npm i webm-encrypt

Weekly Downloads

2

Version

1.0.5

License

ISC

Unpacked Size

20.4 kB

Total Files

21

Last publish

Collaborators

  • austinleroy