https://github.com/angeal185/node-anubis-cipher
nodejs module for the anubis 256 bit cipher in cbc mode with optional hmac authentication
https://github.com/angeal185/node-anubis-cipher
256-bit anubis anubis-cipher cbc-mode cipher decryption encryption encryption-decryption hmac hmac-authentication nodejs
Last synced: 3 months ago
JSON representation
nodejs module for the anubis 256 bit cipher in cbc mode with optional hmac authentication
- Host: GitHub
- URL: https://github.com/angeal185/node-anubis-cipher
- Owner: angeal185
- License: mit
- Created: 2018-10-05T04:13:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-05-02T11:54:54.000Z (about 6 years ago)
- Last Synced: 2025-02-06T18:29:18.857Z (4 months ago)
- Topics: 256-bit, anubis, anubis-cipher, cbc-mode, cipher, decryption, encryption, encryption-decryption, hmac, hmac-authentication, nodejs
- Language: JavaScript
- Homepage:
- Size: 31.3 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# node-anubis-cipher
nodejs module for the anubis 256 bit cipher in cbc mode with optional hmac authentication.### Installation
npm
```sh
$ npm install node-anubis-cipher --save
```git
```sh
$ git clone [email protected]:angeal185/node-anubis-cipher.git
``````js
//default options
{
iv: random, // {string} 16 byte string encryption iv
iterations: 10000, //~ {integer} pbkdf2 iterations
pbkdf2: false, //~ {boolean} run password through pbkdf2
salt: undefined,//~ {string} pbkdf2 salt - must be set if using pbkdf2
mac: false, //~ {boolean/string} add hmac authentication
// false to disable or string to be used for secret
hash: 'sha512', //~ {boolean/array} hash used for hmac and pbkdf2
buffer: false, // {boolean/array} add/strip padding to both ends
// false to disable or an array for true.
// [1,2] would prepend/slice 1 byte and
// append/slice 2 bytes
}/**
* sync
* @param {string} password ~ password
* @param {string} data ~ plaintext/ciphertext
* @param {object} config ~ optional options
**///encrypt
anubis.encSync(password, data, config)//decrypt
anubis.decSync(password, data, config)/**
* callback
* @param {string} password ~ password
* @param {string} data ~ plaintext
* @param {object} config ~ optional options
* @param {function} cb ~ callback function(err,data)
**///encrypt
anubis.enc(password, data, config, cb)//decrypt
anubis.dec(password, data, config, cb)/**
* promise
* @param {string} password ~ password
* @param {string} data ~ plaintext/ciphertext
* @param {object} config ~ optional options
**///encrypt
anubis.encP(password, data, config)//decrypt
anubis.decP(password, data, config)//demo
const anubis = require('node-anubis-cipher');
(function(){
let key = 'test';
let options = {
pbkdf2: true,
salt: 'salt',
iterations: 10000,
mac: 'secret',
buffer: [1,2]
}// callback
console.log('anubis callback test starting...')anubis.enc(key, 'test', options, function(err, data){
if(err){return console.log('enc callback error')}
console.log(data)
anubis.dec(key, data, options, function(err, data){
if(err){return console.log('dec callback error')}
console.log(data)
console.log('anubis callback test done')
})
})//sync
console.log('anubis sync test starting...')let syncEnc = anubis.encSync(key, 'test', options);
console.log(syncEnc)
let syncDec = anubis.decSync(key, syncEnc, options)
console.log(syncDec)
if(syncEnc.err){
console.log('anubis sync enc test failure.')
} else if(syncDec.err){
console.log('anubis sync dec test failure.')
} else {
console.log('anubis sync test done.')
}// promise
console.log('anubis promise test starting...')anubis.encP(key, 'test', options).then(function(res){
console.log(res)
anubis.decP(key, res, options).then(function(res){
console.log(res)
console.log('promise test done.')
}).catch(function(err){
console.log('promise dec test failure.')
})
}).catch(function(err){
console.log('promise enc test failure.')
})})()
```