bsrp
Version:
Secure Remote Password Protocol (SRP-6a) Implementation
24 lines (23 loc) • 916 B
JavaScript
;
exports.__esModule = true;
exports.bigEndianBytesToBigInteger = exports.bigIntegerToBigEndianBytes = void 0;
var jsbn_1 = require("jsbn");
exports.bigIntegerToBigEndianBytes = function (bi) {
var shifts = Math.floor((bi.bitLength() + 7) / 8);
var andBigInteger = new jsbn_1.BigInteger("FF", 16);
var byteArray = new Uint8Array(shifts);
for (var i = 0; i < shifts; i++) {
byteArray[i] = bi.and(andBigInteger).intValue();
bi = bi.shiftRight(8);
}
return byteArray.reverse();
};
exports.bigEndianBytesToBigInteger = function (byteArray) {
var multShift = new jsbn_1.BigInteger("256", 10);
var bi = new jsbn_1.BigInteger(byteArray[0].toString(16), 16);
for (var i = 1; i < byteArray.byteLength; i++) {
var nextByte = new jsbn_1.BigInteger(byteArray[i].toString(16), 16);
bi = bi.multiply(multShift).add(nextByte);
}
return bi;
};