@otplib/plugin-crypto-async-ronomon
Version:
crypto-async plugin for otplib
35 lines (29 loc) • 1.01 kB
JavaScript
/**
* @otplib/plugin-crypto-async-ronomon
*
* @author Gerald Yeo <contact@fusedthought.com>
* @version: 12.0.1
* @license: MIT
**/
;
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var crypto = _interopDefault(require('crypto'));
var cryptoAsync = _interopDefault(require('@ronomon/crypto-async'));
const createDigest = async (algorithm, hmacKey, counter) => {
const digest = await new Promise((resolve, reject) => {
cryptoAsync.hmac(algorithm, Buffer.from(hmacKey, 'hex'), Buffer.from(counter, 'hex'), (error, hmac) => {
if (error) {
reject(error);
return;
}
resolve(hmac);
});
});
return digest.toString('hex');
};
const createRandomBytes = async (size, encoding) => {
return crypto.randomBytes(size).toString(encoding);
};
exports.createDigest = createDigest;
exports.createRandomBytes = createRandomBytes;