UNPKG

iana-hashes

Version:

Use the IANA registered hash names with node crypto

50 lines (41 loc) 1.14 kB
var createHash = require('create-hash'); var createHmac = require('create-hmac'); var randomBytes = require('randombytes'); var getHashes = require('./lib/get-hashes'); var mapping = { md2: 'md2', md5: 'md5', 'sha-1': 'sha1', 'sha-224': 'sha224', 'sha-256': 'sha256', 'sha-384': 'sha384', 'sha-512': 'sha512' }; var names = Object.keys(mapping); exports.getHashes = function () { var result = []; var available = getHashes(); for (var i = 0, len = names.length; i < len; i++) { if (available.indexOf(mapping[names[i]]) >= 0) { result.push(names[i]); } } return result; }; exports.createHash = function (algorithm) { algorithm = algorithm.toLowerCase(); if (mapping[algorithm]) { algorithm = mapping[algorithm]; } return createHash(algorithm); }; exports.createHmac = function (algorithm, key) { algorithm = algorithm.toLowerCase(); if (mapping[algorithm]) { algorithm = mapping[algorithm]; } return createHmac(algorithm, key); }; exports.randomBytes = function (length) { return randomBytes(length); };