PHP WebShell

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

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

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const sdk_core_1 = require("@bitgo/sdk-core");
const should_1 = __importDefault(require("should"));
describe('Crypto utils', function () {
    describe('should succeed', function () {
        it('to get a valid uncompressed public key from an xpub', () => {
            const pub = (0, sdk_core_1.xpubToUncompressedPub)('xpub661MyMwAqRbcEYS8w7XLSVeEsBXy79zSzH1J8vCdxAZningWLdN3zgtU6S598UeKT2DjCgZD5oxriwVyS4t5pz7Ga5xJVNyBPcvJVxaRq5q');
            should_1.default.exist(pub);
            pub.should.equal('040706358b2bf2917d7be11a692681d9e7266e431b2dc124cb15ba6d98501ecab091e6e25ce84278c56e1e264b69df67b3f37e2a7ffe41f3f56a07fb393095d5b1');
        });
        it('to get a valid raw private key from an xprv', () => {
            const prv = (0, sdk_core_1.xprvToRawPrv)('xprv9s21ZrQH143K24Mfq5zL5MhWK9hUhhGbd45hLXo2Pq2oqzMMo63oStZzF9HJ1Z6954LhpFkdHzUXfqoE7GH6eyJvQSfYuAdK2gXGjM6mvd2');
            should_1.default.exist(prv);
            prv.should.equal('1f3cd7a858a11eef3e3f591cb5532241ce12c26b588197c88ebb42c6b6cbb5ba');
        });
        it('to get a valid extended keys from a raw private key', () => {
            const pub = (0, sdk_core_1.rawPrvToExtendedKeys)('1F3CD7A858A11EEF3E3F591CB5532241CE12C26B588197C88EBB42C6B6CBB5BA');
            should_1.default.exist(pub.xprv);
            should_1.default.exist(pub.xpub);
            pub.xprv.should.equal('xprv9s21ZrQH143K24Mfq5zL5MhWK9hUhhGbd45hLXo2Pq2oqzMMo63oStZzF9HJ1Z6954LhpFkdHzUXfqoE7GH6eyJvQSfYuAdK2gXGjM6mvd2');
            pub.xpub.should.equal('xpub661MyMwAqRbcEYS8w7XLSVeEsBXy79zSzH1J8vCdxAZningWLdN3zgtU6S598UeKT2DjCgZD5oxriwVyS4t5pz7Ga5xJVNyBPcvJVxaRq5q');
        });
    });
    describe('should fail', function () {
        it('to get a valid uncompressed public key from an invalid xpub', () => {
            assert_1.default.throws(() => (0, sdk_core_1.xpubToUncompressedPub)('xpub'));
        });
        it('to get a valid raw private key from an invalid xprv', () => {
            assert_1.default.throws(() => (0, sdk_core_1.xprvToRawPrv)('xprv'));
        });
        it('to get a valid extended keys from an invalid raw private key', () => {
            assert_1.default.throws(() => (0, sdk_core_1.rawPrvToExtendedKeys)('ABCD'));
        });
    });
    describe('hexToBigInt utility', () => {
        const hex = '36119d';
        const number = 3543453;
        it('should convert hex to BigInt', function () {
            (0, sdk_core_1.hexToBigInt)(hex).should.equal(BigInt(number));
            (0, sdk_core_1.hexToBigInt)('0x' + hex).should.equal(BigInt(number));
        });
        it('should throw error converting hex to BigInt', function () {
            assert_1.default.throws(() => (0, sdk_core_1.hexToBigInt)('op'));
        });
    });
    describe('convertHexToBigIntArr and convertBigIntArrToHexArr', function () {
        it('able to serialize/deserialize between the two methods', function () {
            const fakeHexArr = ['8abc528e671324135d709395a4cf2552e842f648b8245df65f144311d4482082117355440ae565faf21d7587'];
            const fakeBigIntArr = (0, sdk_core_1.convertHexArrToBigIntArr)(fakeHexArr);
            const hexArrAgain = (0, sdk_core_1.convertBigIntArrToHexArr)(fakeBigIntArr);
            hexArrAgain.should.deepEqual(fakeHexArr);
        });
    });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3V0aWxzL2NyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9EQUE0QjtBQUM1Qiw4Q0FPeUI7QUFDekIsb0RBQTRCO0FBRTVCLFFBQVEsQ0FBQyxjQUFjLEVBQUU7SUFDdkIsUUFBUSxDQUFDLGdCQUFnQixFQUFFO1FBQ3pCLEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBQSxnQ0FBcUIsRUFDL0IsaUhBQWlILENBQ2xILENBQUM7WUFFRixnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQixHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDZCxvSUFBb0ksQ0FDckksQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtZQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFBLHVCQUFZLEVBQ3RCLGlIQUFpSCxDQUNsSCxDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztRQUN2RixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFDN0QsTUFBTSxHQUFHLEdBQUcsSUFBQSwrQkFBb0IsRUFBQyxrRUFBa0UsQ0FBQyxDQUFDO1lBRXJHLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsR0FBRyxDQUFDLElBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNwQixpSEFBaUgsQ0FDbEgsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDbkIsaUhBQWlILENBQ2xILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUN0QixFQUFFLENBQUMsNkRBQTZELEVBQUUsR0FBRyxFQUFFO1lBQ3JFLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsZ0NBQXFCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFDN0QsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1lBQ3RFLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsK0JBQW9CLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUM7UUFDckIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRTtZQUNqQyxJQUFBLHNCQUFXLEVBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM5QyxJQUFBLHNCQUFXLEVBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkQsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFLENBQUMsNkNBQTZDLEVBQUU7WUFDaEQsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxzQkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxvREFBb0QsRUFBRTtRQUM3RCxFQUFFLENBQUMsdURBQXVELEVBQUU7WUFDMUQsTUFBTSxVQUFVLEdBQUcsQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO1lBQ2hILE1BQU0sYUFBYSxHQUFHLElBQUEsbUNBQXdCLEVBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBQSxtQ0FBd0IsRUFBQyxhQUFhLENBQUMsQ0FBQztZQUM1RCxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQge1xuICB4cHViVG9VbmNvbXByZXNzZWRQdWIsXG4gIHhwcnZUb1Jhd1BydixcbiAgcmF3UHJ2VG9FeHRlbmRlZEtleXMsXG4gIGhleFRvQmlnSW50LFxuICBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIsXG4gIGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycixcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuZGVzY3JpYmUoJ0NyeXB0byB1dGlscycsIGZ1bmN0aW9uICgpIHtcbiAgZGVzY3JpYmUoJ3Nob3VsZCBzdWNjZWVkJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCd0byBnZXQgYSB2YWxpZCB1bmNvbXByZXNzZWQgcHVibGljIGtleSBmcm9tIGFuIHhwdWInLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWIgPSB4cHViVG9VbmNvbXByZXNzZWRQdWIoXG4gICAgICAgICd4cHViNjYxTXlNd0FxUmJjRVlTOHc3WExTVmVFc0JYeTc5elN6SDFKOHZDZHhBWm5pbmdXTGROM3pndFU2UzU5OFVlS1QyRGpDZ1pENW94cml3VnlTNHQ1cHo3R2E1eEpWTnlCUGN2SlZ4YVJxNXEnLFxuICAgICAgKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHB1Yik7XG4gICAgICBwdWIuc2hvdWxkLmVxdWFsKFxuICAgICAgICAnMDQwNzA2MzU4YjJiZjI5MTdkN2JlMTFhNjkyNjgxZDllNzI2NmU0MzFiMmRjMTI0Y2IxNWJhNmQ5ODUwMWVjYWIwOTFlNmUyNWNlODQyNzhjNTZlMWUyNjRiNjlkZjY3YjNmMzdlMmE3ZmZlNDFmM2Y1NmEwN2ZiMzkzMDk1ZDViMScsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3RvIGdldCBhIHZhbGlkIHJhdyBwcml2YXRlIGtleSBmcm9tIGFuIHhwcnYnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcnYgPSB4cHJ2VG9SYXdQcnYoXG4gICAgICAgICd4cHJ2OXMyMVpyUUgxNDNLMjRNZnE1ekw1TWhXSzloVWhoR2JkNDVoTFhvMlBxMm9xek1NbzYzb1N0WnpGOUhKMVo2OTU0TGhwRmtkSHpVWGZxb0U3R0g2ZXlKdlFTZll1QWRLMmdYR2pNNm12ZDInLFxuICAgICAgKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHBydik7XG4gICAgICBwcnYuc2hvdWxkLmVxdWFsKCcxZjNjZDdhODU4YTExZWVmM2UzZjU5MWNiNTUzMjI0MWNlMTJjMjZiNTg4MTk3Yzg4ZWJiNDJjNmI2Y2JiNWJhJyk7XG4gICAgfSk7XG5cbiAgICBpdCgndG8gZ2V0IGEgdmFsaWQgZXh0ZW5kZWQga2V5cyBmcm9tIGEgcmF3IHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgcHViID0gcmF3UHJ2VG9FeHRlbmRlZEtleXMoJzFGM0NEN0E4NThBMTFFRUYzRTNGNTkxQ0I1NTMyMjQxQ0UxMkMyNkI1ODgxOTdDODhFQkI0MkM2QjZDQkI1QkEnKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHB1Yi54cHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdChwdWIueHB1Yik7XG4gICAgICBwdWIueHBydiEuc2hvdWxkLmVxdWFsKFxuICAgICAgICAneHBydjlzMjFaclFIMTQzSzI0TWZxNXpMNU1oV0s5aFVoaEdiZDQ1aExYbzJQcTJvcXpNTW82M29TdFp6RjlISjFaNjk1NExocEZrZEh6VVhmcW9FN0dINmV5SnZRU2ZZdUFkSzJnWEdqTTZtdmQyJyxcbiAgICAgICk7XG4gICAgICBwdWIueHB1Yi5zaG91bGQuZXF1YWwoXG4gICAgICAgICd4cHViNjYxTXlNd0FxUmJjRVlTOHc3WExTVmVFc0JYeTc5elN6SDFKOHZDZHhBWm5pbmdXTGROM3pndFU2UzU5OFVlS1QyRGpDZ1pENW94cml3VnlTNHQ1cHo3R2E1eEpWTnlCUGN2SlZ4YVJxNXEnLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCd0byBnZXQgYSB2YWxpZCB1bmNvbXByZXNzZWQgcHVibGljIGtleSBmcm9tIGFuIGludmFsaWQgeHB1YicsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geHB1YlRvVW5jb21wcmVzc2VkUHViKCd4cHViJykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3RvIGdldCBhIHZhbGlkIHJhdyBwcml2YXRlIGtleSBmcm9tIGFuIGludmFsaWQgeHBydicsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4geHBydlRvUmF3UHJ2KCd4cHJ2JykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3RvIGdldCBhIHZhbGlkIGV4dGVuZGVkIGtleXMgZnJvbSBhbiBpbnZhbGlkIHJhdyBwcml2YXRlIGtleScsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gcmF3UHJ2VG9FeHRlbmRlZEtleXMoJ0FCQ0QnKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdoZXhUb0JpZ0ludCB1dGlsaXR5JywgKCkgPT4ge1xuICAgIGNvbnN0IGhleCA9ICczNjExOWQnO1xuICAgIGNvbnN0IG51bWJlciA9IDM1NDM0NTM7XG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IGhleCB0byBCaWdJbnQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBoZXhUb0JpZ0ludChoZXgpLnNob3VsZC5lcXVhbChCaWdJbnQobnVtYmVyKSk7XG4gICAgICBoZXhUb0JpZ0ludCgnMHgnICsgaGV4KS5zaG91bGQuZXF1YWwoQmlnSW50KG51bWJlcikpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgY29udmVydGluZyBoZXggdG8gQmlnSW50JywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBoZXhUb0JpZ0ludCgnb3AnKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb252ZXJ0SGV4VG9CaWdJbnRBcnIgYW5kIGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnYWJsZSB0byBzZXJpYWxpemUvZGVzZXJpYWxpemUgYmV0d2VlbiB0aGUgdHdvIG1ldGhvZHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBmYWtlSGV4QXJyID0gWyc4YWJjNTI4ZTY3MTMyNDEzNWQ3MDkzOTVhNGNmMjU1MmU4NDJmNjQ4YjgyNDVkZjY1ZjE0NDMxMWQ0NDgyMDgyMTE3MzU1NDQwYWU1NjVmYWYyMWQ3NTg3J107XG4gICAgICBjb25zdCBmYWtlQmlnSW50QXJyID0gY29udmVydEhleEFyclRvQmlnSW50QXJyKGZha2VIZXhBcnIpO1xuICAgICAgY29uc3QgaGV4QXJyQWdhaW4gPSBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoZmFrZUJpZ0ludEFycik7XG4gICAgICBoZXhBcnJBZ2Fpbi5zaG91bGQuZGVlcEVxdWFsKGZha2VIZXhBcnIpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19

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


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