@vs-org/authenticator
Version:
VS authenticator package can generate TOTP (RFC6238) for 2FA, and also provide secret and recovery codes for 2FA setup
58 lines (57 loc) • 2.07 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var crypto_1 = __importDefault(require("crypto"));
var logger_1 = require("@vs-org/logger");
var Helper = /** @class */ (function () {
function Helper() {
}
var _a;
_a = Helper;
Helper.getLogLevel = function () {
return process.env.VS_AUTHENTICATOR_LOG_LEVEL === "info"
? "info"
: process.env.VS_AUTHENTICATOR_LOG_LEVEL === "debug"
? "debug"
: "info";
};
Helper.convertDecimalToHex = function (num) {
var logger = logger_1.Logger.getInstance(_a.getLogLevel()).getLogger(_a.convertDecimalToHex.name);
try {
var number = Number(num);
return number.toString(16).padStart(16, "0");
}
catch (error) {
logger.error("Something went wrong while converting number to hexadecimal with error: ".concat(error));
return num;
}
};
Helper.hex2Binary = function (hex) {
return parseInt(hex, 16).toString(2).padStart(8, "0");
};
/**
*
* @param msg - string to generate hamc from
* @param secret - secrete for generating hmac
* @param {"sha1"} - hmac algo
* @returns {string | never}
*
* @throws {error}
*/
Helper.getHMACHash = function (msg, secret, algo) {
var logger = logger_1.Logger.getInstance(_a.getLogLevel()).getLogger(_a.getHMACHash.name);
try {
var hmac = crypto_1.default.createHmac(algo, secret);
hmac.update(msg);
return hmac.digest();
}
catch (error) {
logger.error("Something went wrong while generating HMAC hash for ".concat(algo, " with error: ").concat(error));
throw new Error("Something went wrong while generating HMAC hash for ".concat(algo));
}
};
return Helper;
}());
exports.default = Helper;