PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-lib-mpc/dist/src/curves

Просмотр файла: ed25519.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Ed25519Curve = void 0;
const libsodium_wrappers_sumo_1 = __importDefault(require("libsodium-wrappers-sumo"));
const crypto_1 = require("crypto");
const util_1 = require("../util");
const privateKeySize = 32;
const publicKeySize = 32;
class Ed25519Curve {
    constructor() {
        this.scalarBytes = privateKeySize;
        this.pointBytes = publicKeySize;
    }
    static async initialize() {
        if (!Ed25519Curve.initialized) {
            await libsodium_wrappers_sumo_1.default.ready;
            Ed25519Curve.initialized = true;
        }
        return new Ed25519Curve();
    }
    scalarRandom() {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_reduce((0, util_1.bigIntFromBufferLE)((0, crypto_1.randomBytes)(64)))));
    }
    scalarReduce(s) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_reduce((0, util_1.bigIntToBufferLE)(s, 64))));
    }
    scalarNegate(s) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_negate((0, util_1.bigIntToBufferLE)(s, privateKeySize))));
    }
    scalarInvert(s) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_invert((0, util_1.bigIntToBufferLE)(s, privateKeySize))));
    }
    scalarAdd(x, y) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_add((0, util_1.bigIntToBufferLE)(x, privateKeySize), (0, util_1.bigIntToBufferLE)(y, privateKeySize))));
    }
    scalarSub(x, y) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_sub((0, util_1.bigIntToBufferLE)(x, privateKeySize), (0, util_1.bigIntToBufferLE)(y, privateKeySize))));
    }
    scalarMult(x, y) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_mul((0, util_1.bigIntToBufferLE)(x, privateKeySize), (0, util_1.bigIntToBufferLE)(y, privateKeySize))));
    }
    basePointMult(n) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp((0, util_1.bigIntToBufferLE)(n, privateKeySize))));
    }
    pointAdd(p, q) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_add((0, util_1.bigIntToBufferLE)(p, publicKeySize), (0, util_1.bigIntToBufferLE)(q, publicKeySize))));
    }
    pointMultiply(p, s) {
        return (0, util_1.bigIntFromBufferLE)(Buffer.from(libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_noclamp((0, util_1.bigIntToBufferLE)(s, publicKeySize), (0, util_1.bigIntToBufferLE)(p, publicKeySize))));
    }
    verify(message, signature, publicKey) {
        const signedMessage = Buffer.concat([signature, message]);
        try {
            // Returns the message which was signed if the signature is valid
            const result = Buffer.from(libsodium_wrappers_sumo_1.default.crypto_sign_open(signedMessage, (0, util_1.bigIntToBufferLE)(publicKey, publicKeySize)));
            return Buffer.compare(message, result) === 0;
        }
        catch (error) {
            // Invalid signature causes an exception
            return false;
        }
    }
    order() {
        return BigInt('0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed') * BigInt('0x08');
    }
}
exports.Ed25519Curve = Ed25519Curve;
Ed25519Curve.initialized = false;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWQyNTUxOS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jdXJ2ZXMvZWQyNTUxOS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxzRkFBNkM7QUFDN0MsbUNBQXFDO0FBQ3JDLGtDQUErRDtBQUcvRCxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBRXpCLE1BQWEsWUFBWTtJQUF6QjtRQWdHRSxnQkFBVyxHQUFHLGNBQWMsQ0FBQztRQUU3QixlQUFVLEdBQUcsYUFBYSxDQUFDO0lBQzdCLENBQUM7SUFoR0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUIsTUFBTSxpQ0FBTSxDQUFDLEtBQUssQ0FBQztZQUNuQixZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO1FBRUQsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFBLHlCQUFrQixFQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFNLENBQUMsaUNBQWlDLENBQUMsSUFBQSx5QkFBa0IsRUFBQyxJQUFBLG9CQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNGLENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVM7UUFDcEIsT0FBTyxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUNBQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFBLHVCQUFnQixFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBRUQsWUFBWSxDQUFDLENBQVM7UUFDcEIsT0FBTyxJQUFBLHlCQUFrQixFQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLGlDQUFNLENBQUMs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Qy9DLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2Ysd0NBQXdDO1lBQ3hDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxNQUFNLENBQUMsb0VBQW9FLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkcsQ0FBQzs7QUE5Rkgsb0NBbUdDO0FBbEdRLHdCQUFXLEdBQUcsS0FBSyxBQUFSLENBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc29kaXVtIGZyb20gJ2xpYnNvZGl1bS13cmFwcGVycy1zdW1vJztcbmltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJMRSwgYmlnSW50VG9CdWZmZXJMRSB9IGZyb20gJy4uL3V0aWwnO1xuaW1wb3J0IHsgQmFzZUN1cnZlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IHByaXZhdGVLZXlTaXplID0gMzI7XG5jb25zdCBwdWJsaWNLZXlTaXplID0gMzI7XG5cbmV4cG9ydCBjbGFzcyBFZDI1NTE5Q3VydmUgaW1wbGVtZW50cyBCYXNlQ3VydmUge1xuICBzdGF0aWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPEVkMjU1MTlDdXJ2ZT4ge1xuICAgIGlmICghRWQyNTUxOUN1cnZlLmluaXRpYWxpemVkKSB7XG4gICAgICBhd2FpdCBzb2RpdW0ucmVhZHk7XG4gICAgICBFZDI1NTE5Q3VydmUuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRWQyNTUxOUN1cnZlKCk7XG4gIH1cblxuICBzY2FsYXJSYW5kb20oKTogYmlnaW50IHtcbiAgICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckxFKFxuICAgICAgQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX3JlZHVjZShiaWdJbnRGcm9tQnVmZmVyTEUocmFuZG9tQnl0ZXMoNjQpKSkpXG4gICAgKTtcbiAgfVxuXG4gIHNjYWxhclJlZHVjZShzOiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX3JlZHVjZShiaWdJbnRUb0J1ZmZlckxFKHMsIDY0KSkpKTtcbiAgfVxuXG4gIHNjYWxhck5lZ2F0ZShzOiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoXG4gICAgICBCdWZmZXIuZnJvbShzb2RpdW0uY3J5cHRvX2NvcmVfZWQyNTUxOV9zY2FsYXJfbmVnYXRlKGJpZ0ludFRvQnVmZmVyTEUocywgcHJpdmF0ZUtleVNpemUpKSlcbiAgICApO1xuICB9XG5cbiAgc2NhbGFySW52ZXJ0KHM6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKHNvZGl1bS5jcnlwdG9fY29yZV9lZDI1NTE5X3NjYWxhcl9pbnZlcnQoYmlnSW50VG9CdWZmZXJMRShzLCBwcml2YXRlS2V5U2l6ZSkpKVxuICAgICk7XG4gIH1cblxuICBzY2FsYXJBZGQoeDogYmlnaW50LCB5OiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoXG4gICAgICBCdWZmZXIuZnJvbShcbiAgICAgICAgc29kaXVtLmNyeXB0b19jb3JlX2VkMjU1MTlfc2NhbGFyX2FkZChiaWdJbnRUb0J1ZmZlckxFKHgsIHByaXZhdGVLZXlTaXplKSwgYmlnSW50VG9CdWZmZXJMRSh5LCBwcml2YXRlS2V5U2l6ZSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHNjYWxhclN1Yih4OiBiaWdpbnQsIHk6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICBzb2RpdW0uY3J5cHRvX2NvcmVfZWQyNTUxOV9zY2FsYXJfc3ViKGJpZ0ludFRvQnVmZmVyTEUoeCwgcHJpdmF0ZUtleVNpemUpLCBiaWdJbnRUb0J1ZmZlckxFKHksIHByaXZhdGVLZXlTaXplKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc2NhbGFyTXVsdCh4OiBiaWdpbnQsIHk6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICBzb2RpdW0uY3J5cHRvX2NvcmVfZWQyNTUxOV9zY2FsYXJfbXVsKGJpZ0ludFRvQnVmZmVyTEUoeCwgcHJpdmF0ZUtleVNpemUpLCBiaWdJbnRUb0J1ZmZlckxFKHksIHByaXZhdGVLZXlTaXplKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYmFzZVBvaW50TXVsdChuOiBiaWdpbnQpOiBiaWdpbnQge1xuICAgIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyTEUoXG4gICAgICBCdWZmZXIuZnJvbShzb2RpdW0uY3J5cHRvX3NjYWxhcm11bHRfZWQyNTUxOV9iYXNlX25vY2xhbXAoYmlnSW50VG9CdWZmZXJMRShuLCBwcml2YXRlS2V5U2l6ZSkpKVxuICAgICk7XG4gIH1cblxuICBwb2ludEFkZChwOiBiaWdpbnQsIHE6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICBzb2RpdW0uY3J5cHRvX2NvcmVfZWQyNTUxOV9hZGQoYmlnSW50VG9CdWZmZXJMRShwLCBwdWJsaWNLZXlTaXplKSwgYmlnSW50VG9CdWZmZXJMRShxLCBwdWJsaWNLZXlTaXplKSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcG9pbnRNdWx0aXBseShwOiBiaWdpbnQsIHM6IGJpZ2ludCk6IGJpZ2ludCB7XG4gICAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJMRShcbiAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICBzb2RpdW0uY3J5cHRvX3NjYWxhcm11bHRfZWQyNTUxOV9ub2NsYW1wKGJpZ0ludFRvQnVmZmVyTEUocywgcHVibGljS2V5U2l6ZSksIGJpZ0ludFRvQnVmZmVyTEUocCwgcHVibGljS2V5U2l6ZSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHZlcmlmeShtZXNzYWdlOiBCdWZmZXIsIHNpZ25hdHVyZTogQnVmZmVyLCBwdWJsaWNLZXk6IGJpZ2ludCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNpZ25lZE1lc3NhZ2UgPSBCdWZmZXIuY29uY2F0KFtzaWduYXR1cmUsIG1lc3NhZ2VdKTtcbiAgICB0cnkge1xuICAgICAgLy8gUmV0dXJucyB0aGUgbWVzc2FnZSB3aGljaCB3YXMgc2lnbmVkIGlmIHRoZSBzaWduYXR1cmUgaXMgdmFsaWRcbiAgICAgIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5mcm9tKHNvZGl1bS5jcnlwdG9fc2lnbl9vcGVuKHNpZ25lZE1lc3NhZ2UsIGJpZ0ludFRvQnVmZmVyTEUocHVibGljS2V5LCBwdWJsaWNLZXlTaXplKSkpO1xuICAgICAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKG1lc3NhZ2UsIHJlc3VsdCkgPT09IDA7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIEludmFsaWQgc2lnbmF0dXJlIGNhdXNlcyBhbiBleGNlcHRpb25cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBvcmRlcigpOiBiaWdpbnQge1xuICAgIHJldHVybiBCaWdJbnQoJzB4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNGRlZjlkZWEyZjc5Y2Q2NTgxMjYzMWE1Y2Y1ZDNlZCcpICogQmlnSW50KCcweDA4Jyk7XG4gIH1cblxuICBzY2FsYXJCeXRlcyA9IHByaXZhdGVLZXlTaXplO1xuXG4gIHBvaW50Qnl0ZXMgPSBwdWJsaWNLZXlTaXplO1xufVxuIl19

Выполнить команду


Для локальной разработки. Не используйте в интернете!