UNPKG

@otplib/plugin-crypto-async-ronomon

Version:

crypto-async plugin for otplib

35 lines (29 loc) 1.01 kB
/** * @otplib/plugin-crypto-async-ronomon * * @author Gerald Yeo <contact@fusedthought.com> * @version: 12.0.1 * @license: MIT **/ 'use strict'; 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;