UNPKG

bsrp

Version:

Secure Remote Password Protocol (SRP-6a) Implementation

24 lines (23 loc) 916 B
"use strict"; 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; };