lib/core/cipher.js
function decryptJson(password, data) {
    var salt = new Buffer(data.salt, 'base64');
    return pbkdf2(password, salt, pbkdf2Iterations, pbkdf2KeyLen, pbkdf2Digest).then(function (key) {
        var iv = new Buffer(data.iv, 'base64');
        var decipher = crypto.createDecipheriv(cipherAlgorithm, key, iv);
        var tag = data.tag;
        if (tag) {
            decipher.setAuthTag(new Buffer(tag, 'base64'));
        }
        var value = decipher.update(data.value, 'base64', 'utf8');
        value += decipher.final('utf8');
        return value;
    }).then(JSON.parse);
}
function decryptJson(password, data) {
    var salt = new Buffer(data.salt, 'base64');
    return pbkdf2(password, salt, pbkdf2Iterations, pbkdf2KeyLen, pbkdf2Digest).then(function (key) {
        var iv = new Buffer(data.iv, 'base64');
        var decipher = crypto.createDecipheriv(cipherAlgorithm, key, iv);
        var tag = data.tag;
        if (tag) {
            decipher.setAuthTag(new Buffer(tag, 'base64'));
        }
        var value = decipher.update(data.value, 'base64', 'utf8');
        value += decipher.final('utf8');
        return value;
    }).then(JSON.parse);
}
function decryptJson ( password , data ) { var salt = new Buffer ( data . salt , 'base64' ) ; return pbkdf2 ( password , salt , pbkdf2Iterations , pbkdf2KeyLen , pbkdf2Digest ) . then ( function ( key ) { var iv = new Buffer ( data . iv , 'base64' ) ; var decipher = crypto . createDecipheriv ( cipherAlgorithm , key , iv ) ; var tag = data . tag ; if ( tag ) { decipher . setAuthTag ( new Buffer ( tag , 'base64' ) ) ; } var value = decipher . update ( data . value , 'base64' , 'utf8' ) ; value += decipher . final ( 'utf8' ) ; return value ; } ) . then ( JSON . parse ) ; }
decrypts some encoded json data.

@param password of a human.
@param data encoded json data.
@return json to decoded.

@internal Not part of public API, exported for library use only.
decrypts some encoded json data .