Newborn Programming Monsters

    This package has been deprecated

    Author message:

    WARNING: This package has been deprecated. Please do <npm i gallactickeys> instead

    tenderkeys.js

    0.0.6 • Public • Published

    tenderkeys.js

    A module for creating and importing Galactic keys. This provides a simple way to generate galactic key. Tenderkeys uses the key derivation functions (PBKDF2-SHA256), symmetric ciphers (AES-128-CTR), and message authentication code. You can export the generated key to file, copy it to you data directory's keystore and start using it.

    Installation

    npm install tenderkeys.js

    Usage:

    To use tenderkeys in Node.js, just require it:

    var tenderkeys = require('tenderkeys.js');

    A minified, browserified file dist/bundle.js is included for use in the browser. Including this file simply attaches TenderKeys object to window:

    <sciprt src="dist/bundle.js" type="text/javascript"></script>

    Key Creation

    Generate a random private key, as well as the salt used by the key derivation function and the initialization vector used to AES-128-CTR encrypt the key. create is synchronous.

    var tenderkeys = require('./index');
    var options = {
      seed: 'shadow outside hint dish fortune boss oak album gym all mask there' // optional
    };
     
    var dk = tenderkeys.create(option);
    /**
    dk = {
      seed: 'shadow outside hint dish fortune boss oak album gym all mask there',
      seedHashed: '0A0766C934FAFE80E73A088B25406291AA6959B34446D82D2DD698C88100EDD9',
      salt: 'F87D36EFA63A3157D32BDAE855F0D6C97D80102B8567209BCFE6F5C45BB85E8B',
      iv: 'D71125645283D034855A2F44605E510C',
      keyPair: {
        publicKey: 'BD9E00FA32C8D1826EA4436F3817F800D201E0756A14735C4D2F72F30D11B1BE',
        privateKey: '0A0766C934FAFE80E73A088B25406291AA6959B34446D82D2DD698C88100EDD9BD9E00FA32C8D1826EA4436F3817F800D201E0756A14735C4D2F72F30D11B1BE'
      }
    }
    */

    Key Export

    You will need to specify a password and (optionally) a key derivation function. if unspecified, PBKDF2-SHA256 will be used to derive the AES secret key. NOTE: right now it only support PBKDF2-SHA256.

    let opt = {
      password: 'gallaaaaaactic',
      privateKey: '0A0766C934FAFE80E73A088B25406291AA6959B34446D82D2DD698C88100EDD9BD9E00FA32C8D1826EA4436F3817F800D201E0756A14735C4D2F72F30D11B1BE',
      salt: 'ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd',
      iv: 'd32116e6157fde33fa0c7e0e4001e145',
      option: {
        kdf: 'pbkdf2',
        cipher: 'aes-128-ctr',
        kdfparams: {
          c: 262144,
          dklen: 32,
          prf: 'hmac-sha256'
        }
      }
    }
     
    let keystore = tenderkeys.export(option.password, option.privateKey, option.salt, option.iv, option.option);
     
    /**
    keystore = {
      address: '008aeeda4d805471df9b2a5b0f38a0c3bcba786b',
      crypto: {
        cipher: 'aes-128-ctr',
        cipherparams: {
          iv: 'd32116e6157fde33fa0c7e0e4001e145'
        },
        mac: 'ed9d66f2c1ade5fdaa4516cc5839c6533e3395afcad028941e87dd7a3bbd6851',
        kdf: 'pbkdf2',
        kdfparams: {
          c: 262144,
          dklen: 32,
          prf: 'hmac-sha256',
          salt: 'ae3cd4e7013836a3df6bd7241b12db061dbe2c6785853cce422d148a624ce0bd'
        }
      }
    }
    */

    Hashing rounds

    Tests

    Unit tests are in the test directory and can be run with mocha:

    npm test
    

    The command will help run webpack generate new minified file under dist folder. inside the test folder, there's test.html that will trigger to run mocha if opened using a browser for browser testing. Otherwise, you can run mocha to start the test

    mocha
    

    Keywords

    none

    Install

    npm i tenderkeys.js

    DownloadsWeekly Downloads

    3

    Version

    0.0.6

    License

    MIT

    Unpacked Size

    27.6 kB

    Total Files

    12

    Last publish

    Collaborators

    • jodylan