devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
42 lines (40 loc) • 1.34 kB
JavaScript
/**
* DevExtreme (cjs/__internal/core/license/rsa_bigint.js)
* Version: 25.2.7
* Build date: Tue May 05 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.compareSignatures = compareSignatures;
var _byte_utils = require("./byte_utils");
function compareSignatures(args) {
try {
const one = BigInt(1);
const modExp = (base, exponent, modulus) => {
let result = one;
let b = base;
let e = exponent;
while (e) {
if (e & one) {
result = result * b % modulus
}
b = b * b % modulus;
e >>= one
}
return result
};
const actual = (0, _byte_utils.bigIntFromBytes)(args.actual);
const signature = (0, _byte_utils.bigIntFromBytes)(args.signature);
const exponent = BigInt(args.key.e);
const modulus = (0, _byte_utils.bigIntFromBytes)(args.key.n);
const expected = modExp(signature, exponent, modulus);
return expected === actual
} catch {
return true
}
}