This repository not in active maintain state. Please use cryptian library instead of this library.
MCrypt bindings for Node.js
Install
npm install mcrypt
var mcrypt = ;
There are 3 exposed common functions in the package. These functions are getAlgorithmNames()
, getModeNames()
and MCrypt()
constructor function. Also there are some functions under the prototype of MCrypt()
constructor function.
getAlgorithmNames() : Array
getAlgorithmNames()
returns an array that contains available algorithm names.
var mcrypt = ; var algos = mcrypt;console;
Expected result like that
[ 'cast-128', 'gost', 'rijndael-128', 'twofish', 'arcfour', 'cast-256', 'loki97', 'rijndael-192', 'saferplus', 'wake', 'blowfish-compat', 'des', 'rijndael-256', 'serpent', 'xtea', 'blowfish', 'enigma', 'rc2', 'tripledes' ]
getModeNames() : Array
getModeNames()
returns an array that contains available mode names.
var mcrypt = ; var algos = mcrypt;console;
Expected result like that
[ 'cbc', 'cfb', 'ctr', 'ecb', 'ncfb', 'nofb', 'ofb', 'stream' ]
MCrypt(algorithm, mode) : Object
MCrypt(algorithm, mode)
is a constructor function to create object for cipher and decipher operations.
algorithm
is a required parameter and one of the values of array returned by getAlgorithmNames()
.
mode
is required parameter and one of the values of array returned by getModeNames()
.
var MCrypt = MCrypt; var desEcb = 'des' 'ecb';
There are some prototype functions to make cipher decipher operations and to identify algorithm properties.
open(key [, iv])
We are need to open()
with a key for decrypt()
and encrypt()
operations also we should set an iv if required by algorithm in other case iv
is optional parameter.
key
and iv
should be string or Buffer
var MCrypt = MCrypt; var desEcb = 'des' 'ecb';desEcb; // we are set the key
encrypt(plaintext) : Buffer
encrypt()
returns a Buffer object that contains ciphertext of plaintext
parameter. plaintext
parameter should be string
or Buffer
var MCrypt = MCrypt; var desEcb = 'des' 'ecb';desEcb; // we are set the key var ciphertext = desEcb;console;
Expected result like that
fkJnIgtiH8nsGDryyuIsmyf5vABMGStlpACfKCTifvA=
decrypt(ciphertext) : Buffer
decrypt()
returns a Buffer object that contains plaintext of ciphertext
parameter. ciphertext
parameter should be Buffer
var MCrypt = MCrypt; var desEcb = 'des' 'ecb';desEcb; // we are set the key var plaintext = desEcb;console;
Expected result like that
this is top secret message!
generateIv() : Buffer
generateIv()
function generates IV randomly.
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';var iv = blowfishCfb; blowfishCfb; var ciphertext = blowfishCfb; console;
validateKeySize(Boolean)
validateKeySize()
is a function to disable or enable key size validation on open()
var mc = 'blowfish' 'ecb';mc; // disable key size checkingmc;
validateIvSize(Boolean)
validateIvSize()
is a function to disable or enable iv size validation on open()
var mc = 'rijndael-256' 'cbc';mc; // disable iv size checkingmc;
selfTest() : Boolean
selfTest()
is an utility function to make test algorithm internally and returns boolean value of status
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
isBlockAlgorithmMode() : Boolean
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
isBlockAlgorithm() : Boolean
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
isBlockMode() : Boolean
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
getBlockSize() : Number
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
getKeySize() : Number
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
getSupportedKeySizes() : Array
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
getIvSize() : Number
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
hasIv() : Boolean
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
getAlgorithmName() : String
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;
getModeName() : String
var MCrypt = MCrypt; var blowfishCfb = 'blowfish' 'cfb';console;