Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    test-justencryptpublic

    JustEncrypt

    Latest Stable Version Build Status Sauce Test Status

    Sauce Test Status

    This package is being tested against;

    • NodeJS:
      • 0.11
      • 0.12
      • 5.11
      • 6.3.0
      • 7.1.0
    • Browser:
      • Google Chrome 48 / latest
      • Firefox 49 / latest
      • Safari 10.0 / latest
      • Edge 14.14393
      • IE 11.103
      • Android 4.4
      • Android 5.0
      • iPhone OS X 10.10

    Usage

    All functions return promises to make it easy to automatically use webworkers or WebCrypto API in browsers that support it!

    KeyDerivation

    // iterations is optional and defaults to 35k iterations
    justencrypt.KeyDerivation.computeSync(new Buffer(rawPassword, 'utf8'), saltBuffer, iterations)
        .then(function(keyBuffer) {
            console.log(keyBuffer.toString('base64'));
        });

    Encryption

    The result of encrypt is encoded as iter || saltLen8 || salt || iv || tag || ct,
    when this is fed into decrypt it will be able decode the salt and iterations used.

    // iterations is optional and defaults to 35k iterations
    justencrypt.Encryption.encryptSync(new Buffer(rawPassword, 'utf8'), dataBuffer, iterations)
        .then(function(encryptedBuffer) {
            console.log(encryptedBuffer.toString('base64'));
        });
     
    justencrypt.Encryption.decryptSync(encryptedBuffer, new Buffer(rawPassword, 'utf8'))
        .then(function(decryptedDataBuffer) {
            console.log(decryptedDataBuffer.toString('base64'));
        });

    EncryptionMnemonic

    To make the result of encrypt human readable (so it is easier to write down) it's possible to encode it as an mnemonic.
    We're using the Bitcoin BIP39 way of encoding entropy to mnemonic, but ignoring the (weak) password protection BIP39 originally had.
    We also ensure the data is padded correctly.

    IMPORTANT: This is only meant to be used to encode results of encrypt, don't use this for anything else!

    var mnemonicString = justencrypt.EncryptionMnemonic.encode(encryptedBuffer);
    var encryptedBuffer = justencrypt.EncryptionMnemonic.decode(mnemonicString);

    Development / Contributing

    You should have mocha, istanbul and grunt-cli installed globally, if not run npm install -g mocha instanbul grunt-cli.
    Also recommended to have phantomjs >= 1.9.8 on $PATH to speed up the asmcrypto.js build; https//github.com/Medium/phantomjs/releases/download/v1.9.19/phantomjs-1.9.8-linux-x86_64.tar.bz2

    Unit Tests are created with Mocha and can be ran with npm test (or mocha)

    We also run jshint and jscs, these are automatically ran by travis-ci for every commit and pull request.

    jshint main.js lib/ test/ && jscs main.js lib/ test/

    or simply npm run-script lint

    Uglify

    If you're planning to uglify/minify the javascript yourself, make sure to exclude the following variable names from being mangled:
    ['Buffer', 'sha512_asm', 'asm']

    License

    JustEncrypt is released under the terms of the MIT license. See LICENCE.md for more information or see http://opensource.org/licenses/MIT.

    Keywords

    none

    install

    npm i test-justencrypt

    Downloadslast 7 days

    1

    version

    0.0.5

    license

    MIT

    last publish

    collaborators

    • avatar