PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-cspr/dist/test/unit/lib

Просмотр файла: signMessage.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;
    };
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const crypto_1 = require("crypto");
const assert_1 = __importDefault(require("assert"));
const keyPair_1 = require("../../../src/lib/keyPair");
const utils_1 = require("../../../src/lib/utils");
const testData = __importStar(require("../../fixtures/resources"));
describe('Sign Message', () => {
    it('should be performed', async () => {
        const keyPair = new keyPair_1.KeyPair();
        const messageToSign = Buffer.from((0, crypto_1.randomBytes)(32)).toString('hex');
        const { signature } = (0, utils_1.signMessage)(keyPair, messageToSign);
        (0, utils_1.isValidMessageSignature)(Buffer.from(signature).toString('hex'), messageToSign, keyPair.getKeys().pub).should.equals(true);
    });
    it('should be performed using extended key', async () => {
        const keyPair = new keyPair_1.KeyPair({ prv: testData.ACCOUNT_1.xPrivateKey });
        const messageToSign = Buffer.from((0, crypto_1.randomBytes)(32)).toString('hex');
        const { signature } = (0, utils_1.signMessage)(keyPair, messageToSign);
        (0, utils_1.isValidMessageSignature)(Buffer.from(signature).toString('hex'), messageToSign, keyPair.getKeys().pub).should.equals(true);
    });
    it('should fail with missing private key', async () => {
        const keyPair = new keyPair_1.KeyPair({ pub: testData.ACCOUNT_1.publicKey });
        const messageToSign = Buffer.from((0, crypto_1.randomBytes)(32)).toString('hex');
        assert_1.default.throws(() => (0, utils_1.signMessage)(keyPair, messageToSign), (e) => e.message === testData.ERROR_MISSING_PRIVATE_KEY);
    });
    it('should fail with missing private key using extended key', async () => {
        const keyPair = new keyPair_1.KeyPair({ pub: testData.ACCOUNT_1.xPublicKey });
        const messageToSign = Buffer.from((0, crypto_1.randomBytes)(32)).toString('hex');
        assert_1.default.throws(() => (0, utils_1.signMessage)(keyPair, messageToSign), (e) => e.message === testData.ERROR_MISSING_PRIVATE_KEY);
    });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvbGliL3NpZ25NZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQXFDO0FBQ3JDLG9EQUE0QjtBQUM1QixzREFBbUQ7QUFDbkQsa0RBQThFO0FBQzlFLG1FQUFxRDtBQUVyRCxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtJQUM1QixFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxFQUFFLENBQUM7UUFDOUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsbUJBQVcsRUFBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUQsSUFBQSwrQkFBdUIsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ2pILElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0NBQXdDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUEsb0JBQVcsRUFBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBQSxtQkFBVyxFQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMxRCxJQUFBLCtCQUF1QixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDakgsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxzQ0FBc0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBQSxvQkFBVyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLGdCQUFNLENBQUMsTUFBTSxDQUNYLEdBQUcsRUFBRSxDQUFDLElBQUEsbUJBQVcsRUFBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEVBQ3pDLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyx5QkFBeUIsQ0FDL0QsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHlEQUF5RCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3ZFLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFBLG9CQUFXLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsSUFBQSxtQkFBVyxFQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsRUFDekMsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLHlCQUF5QixDQUMvRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbUJ5dGVzIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL2tleVBhaXInO1xuaW1wb3J0IHsgaXNWYWxpZE1lc3NhZ2VTaWduYXR1cmUsIHNpZ25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9maXh0dXJlcy9yZXNvdXJjZXMnO1xuXG5kZXNjcmliZSgnU2lnbiBNZXNzYWdlJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGJlIHBlcmZvcm1lZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICBjb25zdCBtZXNzYWdlVG9TaWduID0gQnVmZmVyLmZyb20ocmFuZG9tQnl0ZXMoMzIpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgeyBzaWduYXR1cmUgfSA9IHNpZ25NZXNzYWdlKGtleVBhaXIsIG1lc3NhZ2VUb1NpZ24pO1xuICAgIGlzVmFsaWRNZXNzYWdlU2lnbmF0dXJlKEJ1ZmZlci5mcm9tKHNpZ25hdHVyZSkudG9TdHJpbmcoJ2hleCcpLCBtZXNzYWdlVG9TaWduLCBrZXlQYWlyLmdldEtleXMoKS5wdWIpLnNob3VsZC5lcXVhbHMoXG4gICAgICB0cnVlXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBiZSBwZXJmb3JtZWQgdXNpbmcgZXh0ZW5kZWQga2V5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuQUNDT1VOVF8xLnhQcml2YXRlS2V5IH0pO1xuICAgIGNvbnN0IG1lc3NhZ2VUb1NpZ24gPSBCdWZmZXIuZnJvbShyYW5kb21CeXRlcygzMikpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCB7IHNpZ25hdHVyZSB9ID0gc2lnbk1lc3NhZ2Uoa2V5UGFpciwgbWVzc2FnZVRvU2lnbik7XG4gICAgaXNWYWxpZE1lc3NhZ2VTaWduYXR1cmUoQnVmZmVyLmZyb20oc2lnbmF0dXJlKS50b1N0cmluZygnaGV4JyksIG1lc3NhZ2VUb1NpZ24sIGtleVBhaXIuZ2V0S2V5cygpLnB1Yikuc2hvdWxkLmVxdWFscyhcbiAgICAgIHRydWVcbiAgICApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgd2l0aCBtaXNzaW5nIHByaXZhdGUga2V5JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogdGVzdERhdGEuQUNDT1VOVF8xLnB1YmxpY0tleSB9KTtcbiAgICBjb25zdCBtZXNzYWdlVG9TaWduID0gQnVmZmVyLmZyb20ocmFuZG9tQnl0ZXMoMzIpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IHNpZ25NZXNzYWdlKGtleVBhaXIsIG1lc3NhZ2VUb1NpZ24pLFxuICAgICAgKGU6IEVycm9yKSA9PiBlLm1lc3NhZ2UgPT09IHRlc3REYXRhLkVSUk9SX01JU1NJTkdfUFJJVkFURV9LRVlcbiAgICApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgd2l0aCBtaXNzaW5nIHByaXZhdGUga2V5IHVzaW5nIGV4dGVuZGVkIGtleScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHRlc3REYXRhLkFDQ09VTlRfMS54UHVibGljS2V5IH0pO1xuICAgIGNvbnN0IG1lc3NhZ2VUb1NpZ24gPSBCdWZmZXIuZnJvbShyYW5kb21CeXRlcygzMikpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgKCkgPT4gc2lnbk1lc3NhZ2Uoa2V5UGFpciwgbWVzc2FnZVRvU2lnbiksXG4gICAgICAoZTogRXJyb3IpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuRVJST1JfTUlTU0lOR19QUklWQVRFX0tFWVxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=

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


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