1.0.5 • Published 4 years ago

webm-encrypt v1.0.5

Weekly downloads
3
License
ISC
Repository
github
Last release
4 years ago

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!

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

5 years ago

1.0.0

6 years ago