rabbit-cipher
rabbit 128bit cipher with poly1305
demo: https://angeal185.github.io/rabbit-cipher/
Installation
npm
$ npm install rabbit-cipher --save
bower
$ bower install rabbit-cipher
git
$ git clone git@github.com:angeal185/rabbit-cipher.git
nodejs
const rabbit = ;
browser
API
/* encrypt */ /** * sync ~ encrypt data * @param {string/byteArray/uint8Array} plain ~ data to be encrypted * @param {string/byteArray/uint8Array} secret ~ encryption key * @param **/ rabbit /** * callback ~ encrypt data * @param {string/byteArray/uint8Array} plain ~ data to be encrypted * @param {string/byteArray/uint8Array} secret ~ encryption key * @param * @param **/ rabbit /** * promise ~ encrypt data * @param {string/byteArray/uint8Array} plain ~ data to be encrypted * @param {string/byteArray/uint8Array} secret ~ encryption key * @param **/rabbit /* decrypt */ /** * sync ~ decrypt data * @param {string/byteArray/uint8Array} ctext ~ data to be decrypted * @param {string/byteArray/uint8Array} key ~ encryption key * @param **/ rabbit /** * callback ~ decrypt data * @param {string/byteArray/uint8Array} ctext ~ data to be decrypted * @param {string/byteArray/uint8Array} key ~ encryption key * @param * @param **/ rabbit /** * promise ~ decrypt data * @param {string/byteArray/uint8Array} ctext ~ data to be encrypted * @param {string/byteArray/uint8Array} key ~ encryption key * @param **/ rabbit /* encrypt and sign with poly1305 */ /** * callback ~ encrypt and sign * @param {string/byteArray/uint8Array} plain ~ data to encrypt * @param {string/byteArray/uint8Array} key ~ encryption key * @param {string/byteArray/uint8Array} skey ~ poly1305 key * @param * @param **/ rabbit /** * promise ~ encrypt and sign * @param {string/byteArray/uint8Array} plain ~ data to encrypt * @param {string/byteArray/uint8Array} key ~ encryption key * @param {string/byteArray/uint8Array} skey ~ poly1305 key * @param **/ rabbit /* verify poly1305 and decrypt */ /** * callback ~ verify and decrypt * @param {string/byteArray/uint8Array} ctext ~ data to decrypt * @param {string/byteArray/uint8Array} key ~ decrypt key * @param {string/byteArray/uint8Array} sig1 ~ poly signature * @param {string/byteArray/uint8Array} sig2 ~ ctext signature * @param * @param **/ rabbit /** * promise ~ verify and decrypt * @param {string/byteArray/uint8Array} ctext ~ data to decrypt * @param {string/byteArray/uint8Array} key ~ decrypt key * @param {string/byteArray/uint8Array} sig1 ~ poly signature * @param {string/byteArray/uint8Array} sig2 ~ ctext signature * @param **/ rabbit /* poly1305 */ /** * callback ~ verify encrypted data * @param {string/byteArray/uint8Array} ctext ~ cipher text * @param * @param {string/byteArray/uint8Array} key ~ poly1305 key * @param * @param **/ rabbitpoly1305 /** * callback ~ verify encrypted data * @param {string/byteArray/uint8Array} sig ~ first signature * @param {string/byteArray/uint8Array} sig ~ second signature * @param * @param **/ rabbitpoly1305 /** * callback ~ verify encrypted data * @param {string/byteArray/uint8Array} ctext ~ cipher text * @param * @param {string/byteArray/uint8Array} key ~ poly1305 key * @param **/ rabbitpoly1305 /** * sync ~ verify encrypted data * @param {string/byteArray/uint8Array} sig ~ first signature * @param {string/byteArray/uint8Array} sig ~ second signature * @param **/ rabbitpoly1305 /* utils */ rabbitutils // Uint8Array to stringrabbitutils // string to Uint8Arrayrabbitutils // byteArray to stringrabbitutils // string to byteArrayrabbitutils // byteArray to binaryrabbitutils // binary to byteArrayrabbitutils // uint8Array to byteArrayrabbitutils // hex to Uint8Arrayrabbitutils // uint8Array to hexrabbitutils // hex to stringrabbitutils // string to hexrabbitutils // Uint8Array to Uint16Arrayrabbitutils // Uint16Array to Uint8Array rabbitutils // prng singlerabbitutils // prng byteArray rabbitutils // check Uint8Arrayrabbitutils // check arrayrabbitutils // check string // demo const utils = rabbitutilscl = consolelogce = consoleerrorsecret = 'secret'skey = utilstext = 'test'digest = 'hex'; // enc/dec ~ synclet sync = rabbit;sync = rabbit // enc/dec ~ callbackrabbit; // enc/dec ~ promiserabbit // encrypt/decrypt with poly1305 ~ callbackrabbit; // encrypt/decrypt with poly1305 ~ promiserabbit // poly1305rabbit;