Giter Club home page Giter Club logo

vdh-mask's Introduction

vdh-mask

What is it ?

Starting at version 5.6.0 for the Firefox version, the Video DownloadHelper extension supports the masked download operation, which allows a file to be downloaded without touching the local disk in clear form.

vdh-mask is a command-line utility to decrypt DownloadHelper-generated files to be viewed by any regular video player.

In addition, vdh-mask allows encrypting files with the same specifications as DownloadHelper.

How does it work ?

When encrypting a file, 2 new files are created:

  • xyz.bin is the original file, encrypted according to Video DownloadHelper standards
  • xyz.vdh is a JSON file containing the fields:
    • biniv: the base64 representation of the initial value when encrypting xyz.bin
    • metaiv: the base64 representation of the initial value when encrypting field meta
    • meta: the base64 representation of an encrypted JSON object containing the meta-data for the file. In particular, this object has a field originalFilename which represents the initial file name of file xyz.bin

Both the file xyz.bin and the value of field meta in file xyz.vdh are encrypted using the same key. This key is the SHA-256 hash code of the password that can be passed as an argument to vdh-mask but has a default value (the same in vdh-mask and Video DownloadHelper). The encryption is performed using the AES-CTR 256 algorithm.

Note that for the .vdh and .bin files to be associated, they must share the same basename, in the examples above xyz.

Keeping the default password (hence the default key) might be sufficient for the level of privacy you need, but if you want a high level of protection, you should use your own password when encrypting and decrypting a file.

How to use vdh-mask ?

The general usage syntax is:

node vdh-mask.js [options] <input file>

By default, if <input file> ends with .vdh, the operation will be a decryption, otherwise, the input file will be encrypted.

Available options are:

    -h, --help                    output usage information
    -V, --version                 output the version number
    -f, --force                   Overwrite output files
    -p, --password <password>     Password
    -o, --output <output file>    Output file base name
    -d, --decode                  Force decode
    -e, --encode                  Force encode
    -b, --blocksize <block-size>  Block size

vdh-mask's People

Contributors

mi-g avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.