PHP WebShell

Текущая директория: /opt/BitGoJS/modules/abstract-lightning/dist/src/lightning

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

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifyMessageSignature = verifyMessageSignature;
exports.createMessageSignature = createMessageSignature;
const utxolib = __importStar(require("@bitgo/utxo-lib"));
const sdkcore = __importStar(require("@bitgo/sdk-core"));
const signableJson_1 = require("./signableJson");
/**
 * Verifies a signature for a given message.
 *
 * @param {Signable} message - The message to verify.
 * @param {string} signature - The signature to verify, in hexadecimal format.
 * @param {string} pub - The public key in BIP32 format.
 * @param {utxolib.Network} network - The network to use for verification.
 * @returns {boolean} - Returns true if the signature is valid, false otherwise.
 */
function verifyMessageSignature(message, signature, pub, network = utxolib.networks.bitcoin) {
    const messageString = JSON.stringify((0, signableJson_1.canonicalizeObject)(message));
    const pubKey = utxolib.bip32.fromBase58(pub, network).publicKey;
    const signatureBuffer = Buffer.from(signature, 'hex');
    return sdkcore.verifyMessage(messageString, pubKey, signatureBuffer, network);
}
/**
 * Creates a signature for a given message.
 *
 * @param {Signable} message - The message to sign.
 * @param {string} prv - The private key in BIP32 format.
 * @param {utxolib.Network} network - The network to use for signing.
 * @returns {string} - Returns the signature in hexadecimal format.
 */
function createMessageSignature(message, xprv, network = utxolib.networks.bitcoin) {
    const requestString = JSON.stringify((0, signableJson_1.canonicalizeObject)(message));
    const prvKey = utxolib.bip32.fromBase58(xprv, network);
    return sdkcore.signMessage(requestString, prvKey, network).toString('hex');
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpZ2h0bmluZy9zaWduYXR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhQSx3REFVQztBQVVELHdEQVFDO0FBekNELHlEQUEyQztBQUMzQyx5REFBMkM7QUFDM0MsaURBQThEO0FBRTlEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQ3BDLE9BQWlCLEVBQ2pCLFNBQWlCLEVBQ2pCLEdBQVcsRUFDWCxVQUEyQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87SUFFbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFBLGlDQUFrQixFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoRSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixzQkFBc0IsQ0FDcEMsT0FBaUIsRUFDakIsSUFBWSxFQUNaLFVBQTJCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTztJQUVuRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUEsaUNBQWtCLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkQsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyBzZGtjb3JlIGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBjYW5vbmljYWxpemVPYmplY3QsIFNpZ25hYmxlIH0gZnJvbSAnLi9zaWduYWJsZUpzb24nO1xuXG4vKipcbiAqIFZlcmlmaWVzIGEgc2lnbmF0dXJlIGZvciBhIGdpdmVuIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIHtTaWduYWJsZX0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIHZlcmlmeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBzaWduYXR1cmUgLSBUaGUgc2lnbmF0dXJlIHRvIHZlcmlmeSwgaW4gaGV4YWRlY2ltYWwgZm9ybWF0LlxuICogQHBhcmFtIHtzdHJpbmd9IHB1YiAtIFRoZSBwdWJsaWMga2V5IGluIEJJUDMyIGZvcm1hdC5cbiAqIEBwYXJhbSB7dXR4b2xpYi5OZXR3b3JrfSBuZXR3b3JrIC0gVGhlIG5ldHdvcmsgdG8gdXNlIGZvciB2ZXJpZmljYXRpb24uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIHNpZ25hdHVyZSBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5TWVzc2FnZVNpZ25hdHVyZShcbiAgbWVzc2FnZTogU2lnbmFibGUsXG4gIHNpZ25hdHVyZTogc3RyaW5nLFxuICBwdWI6IHN0cmluZyxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrID0gdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luXG4pOiBib29sZWFuIHtcbiAgY29uc3QgbWVzc2FnZVN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGNhbm9uaWNhbGl6ZU9iamVjdChtZXNzYWdlKSk7XG4gIGNvbnN0IHB1YktleSA9IHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OChwdWIsIG5ldHdvcmspLnB1YmxpY0tleTtcbiAgY29uc3Qgc2lnbmF0dXJlQnVmZmVyID0gQnVmZmVyLmZyb20oc2lnbmF0dXJlLCAnaGV4Jyk7XG4gIHJldHVybiBzZGtjb3JlLnZlcmlmeU1lc3NhZ2UobWVzc2FnZVN0cmluZywgcHViS2V5LCBzaWduYXR1cmVCdWZmZXIsIG5ldHdvcmspO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzaWduYXR1cmUgZm9yIGEgZ2l2ZW4gbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0ge1NpZ25hYmxlfSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gc2lnbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgLSBUaGUgcHJpdmF0ZSBrZXkgaW4gQklQMzIgZm9ybWF0LlxuICogQHBhcmFtIHt1dHhvbGliLk5ldHdvcmt9IG5ldHdvcmsgLSBUaGUgbmV0d29yayB0byB1c2UgZm9yIHNpZ25pbmcuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFJldHVybnMgdGhlIHNpZ25hdHVyZSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZXNzYWdlU2lnbmF0dXJlKFxuICBtZXNzYWdlOiBTaWduYWJsZSxcbiAgeHBydjogc3RyaW5nLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmsgPSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5cbik6IHN0cmluZyB7XG4gIGNvbnN0IHJlcXVlc3RTdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjYW5vbmljYWxpemVPYmplY3QobWVzc2FnZSkpO1xuICBjb25zdCBwcnZLZXkgPSB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoeHBydiwgbmV0d29yayk7XG4gIHJldHVybiBzZGtjb3JlLnNpZ25NZXNzYWdlKHJlcXVlc3RTdHJpbmcsIHBydktleSwgbmV0d29yaykudG9TdHJpbmcoJ2hleCcpO1xufVxuIl19

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


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