PHP WebShell

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

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

"use strict";
//
// Test for Keychains
//
Object.defineProperty(exports, "__esModule", { value: true });
const _ = require("lodash");
const nock = require("nock");
require("should");
const sdk_core_1 = require("@bitgo/sdk-core");
const sdk_test_1 = require("@bitgo/sdk-test");
const bitgo_1 = require("../../src/bitgo");
describe('Keychains', function v2keychains() {
    describe('Update Password', function updatePassword() {
        let bitgo;
        let keychains;
        let bgUrl;
        before(function beforeDescribe() {
            nock.pendingMocks().should.be.empty();
            bitgo = sdk_test_1.TestBitGo.decorate(bitgo_1.BitGo, { env: 'mock' });
            bitgo.initializeTestVars();
            bitgo.setValidate(false);
            keychains = bitgo.keychains();
            bgUrl = sdk_core_1.common.Environments[bitgo.getEnv()].uri;
        });
        it('should fail to update the password', async function () {
            await keychains.updatePassword({ newPassword: '5678' }).should.be.rejectedWith('Missing parameter: oldPassword');
            await keychains
                .updatePassword({ oldPassword: 1234, newPassword: '5678' })
                .should.be.rejectedWith('Expecting parameter string: oldPassword but found number');
            await keychains.updatePassword({ oldPassword: '1234' }).should.be.rejectedWith('Missing parameter: newPassword');
            await keychains
                .updatePassword({ oldPassword: '1234', newPassword: 5678 })
                .should.be.rejectedWith('Expecting parameter string: newPassword but found number');
        });
        it('successful password update', async function () {
            const oldPassword = 'oldPassword';
            const newPassword = 'newPassword';
            const otherPassword = 'otherPassword';
            nock(bgUrl)
                .post('/api/v1/user/encrypted')
                .reply(200, {
                keychains: {
                    xpub1: bitgo.encrypt({ input: 'xprv1', password: oldPassword }),
                    xpub2: bitgo.encrypt({ input: 'xprv2', password: otherPassword }),
                },
                version: 1,
            });
            const result = await keychains.updatePassword({ oldPassword: oldPassword, newPassword: newPassword });
            _.forOwn(result.keychains, function (encryptedXprv, xpub) {
                xpub.should.startWith('xpub');
                try {
                    const decryptedPrv = bitgo.decrypt({ input: encryptedXprv, password: newPassword });
                    decryptedPrv.should.startWith('xprv');
                }
                catch (e) {
                    // the decryption didn't work because of the wrong password, this is one of the keychains that didn't match
                    // the old password
                    e.message.should.startWith('password error');
                }
            });
            result.should.hasOwnProperty('version');
        });
    });
    after(function afterKeychains() {
        nock.pendingMocks().should.be.empty();
    });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2tleWNoYWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsRUFBRTtBQUNGLHFCQUFxQjtBQUNyQixFQUFFOztBQUVGLDRCQUE0QjtBQUM1Qiw2QkFBNkI7QUFDN0Isa0JBQWdCO0FBRWhCLDhDQUF5QztBQUV6Qyw4Q0FBNEM7QUFDNUMsMkNBQXdDO0FBRXhDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxXQUFXO0lBQ3hDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLGNBQWM7UUFDakQsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLFNBQVMsQ0FBQztRQUNkLElBQUksS0FBSyxDQUFDO1FBRVYsTUFBTSxDQUFDLFNBQVMsY0FBYztZQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV0QyxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsYUFBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDbkQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRTlCLEtBQUssR0FBRyxpQkFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsb0NBQW9DLEVBQUUsS0FBSztZQUM1QyxNQUFNLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBRWpILE1BQU0sU0FBUztpQkFDWixjQUFjLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztpQkFDMUQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsMERBQTBELENBQUMsQ0FBQztZQUV0RixNQUFNLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBRWpILE1BQU0sU0FBUztpQkFDWixjQUFjLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDMUQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSxLQUFLO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUNsQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7WUFDbEMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDO1lBRXRDLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQ1IsSUFBSSxDQUFDLHdCQUF3QixDQUFDO2lCQUM5QixLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNWLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO29CQUMvRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDO2lCQUNsRTtnQkFDRCxPQUFPLEVBQUUsQ0FBQzthQUNYLENBQUMsQ0FBQztZQUVMLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsYUFBYSxFQUFFLElBQUk7Z0JBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7b0JBQ3BGLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1gsMkdBQTJHO29CQUMzRyxtQkFBbUI7b0JBQ25CLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLFNBQVMsY0FBYztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy9cbi8vIFRlc3QgZm9yIEtleWNoYWluc1xuLy9cblxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgbm9jayBmcm9tICdub2NrJztcbmltcG9ydCAnc2hvdWxkJztcblxuaW1wb3J0IHsgY29tbW9uIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHsgVGVzdEJpdEdvIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IEJpdEdvIH0gZnJvbSAnLi4vLi4vc3JjL2JpdGdvJztcblxuZGVzY3JpYmUoJ0tleWNoYWlucycsIGZ1bmN0aW9uIHYya2V5Y2hhaW5zKCkge1xuICBkZXNjcmliZSgnVXBkYXRlIFBhc3N3b3JkJywgZnVuY3Rpb24gdXBkYXRlUGFzc3dvcmQoKSB7XG4gICAgbGV0IGJpdGdvO1xuICAgIGxldCBrZXljaGFpbnM7XG4gICAgbGV0IGJnVXJsO1xuXG4gICAgYmVmb3JlKGZ1bmN0aW9uIGJlZm9yZURlc2NyaWJlKCkge1xuICAgICAgbm9jay5wZW5kaW5nTW9ja3MoKS5zaG91bGQuYmUuZW1wdHkoKTtcblxuICAgICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R28sIHsgZW52OiAnbW9jaycgfSk7XG4gICAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICAgIGJpdGdvLnNldFZhbGlkYXRlKGZhbHNlKTtcbiAgICAgIGtleWNoYWlucyA9IGJpdGdvLmtleWNoYWlucygpO1xuXG4gICAgICBiZ1VybCA9IGNvbW1vbi5FbnZpcm9ubWVudHNbYml0Z28uZ2V0RW52KCldLnVyaTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB1cGRhdGUgdGhlIHBhc3N3b3JkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQga2V5Y2hhaW5zLnVwZGF0ZVBhc3N3b3JkKHsgbmV3UGFzc3dvcmQ6ICc1Njc4JyB9KS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdNaXNzaW5nIHBhcmFtZXRlcjogb2xkUGFzc3dvcmQnKTtcblxuICAgICAgYXdhaXQga2V5Y2hhaW5zXG4gICAgICAgIC51cGRhdGVQYXNzd29yZCh7IG9sZFBhc3N3b3JkOiAxMjM0LCBuZXdQYXNzd29yZDogJzU2NzgnIH0pXG4gICAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdFeHBlY3RpbmcgcGFyYW1ldGVyIHN0cmluZzogb2xkUGFzc3dvcmQgYnV0IGZvdW5kIG51bWJlcicpO1xuXG4gICAgICBhd2FpdCBrZXljaGFpbnMudXBkYXRlUGFzc3dvcmQoeyBvbGRQYXNzd29yZDogJzEyMzQnIH0pLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ01pc3NpbmcgcGFyYW1ldGVyOiBuZXdQYXNzd29yZCcpO1xuXG4gICAgICBhd2FpdCBrZXljaGFpbnNcbiAgICAgICAgLnVwZGF0ZVBhc3N3b3JkKHsgb2xkUGFzc3dvcmQ6ICcxMjM0JywgbmV3UGFzc3dvcmQ6IDU2NzggfSlcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0V4cGVjdGluZyBwYXJhbWV0ZXIgc3RyaW5nOiBuZXdQYXNzd29yZCBidXQgZm91bmQgbnVtYmVyJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc3VjY2Vzc2Z1bCBwYXNzd29yZCB1cGRhdGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBvbGRQYXNzd29yZCA9ICdvbGRQYXNzd29yZCc7XG4gICAgICBjb25zdCBuZXdQYXNzd29yZCA9ICduZXdQYXNzd29yZCc7XG4gICAgICBjb25zdCBvdGhlclBhc3N3b3JkID0gJ290aGVyUGFzc3dvcmQnO1xuXG4gICAgICBub2NrKGJnVXJsKVxuICAgICAgICAucG9zdCgnL2FwaS92MS91c2VyL2VuY3J5cHRlZCcpXG4gICAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgICBrZXljaGFpbnM6IHtcbiAgICAgICAgICAgIHhwdWIxOiBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6ICd4cHJ2MScsIHBhc3N3b3JkOiBvbGRQYXNzd29yZCB9KSxcbiAgICAgICAgICAgIHhwdWIyOiBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6ICd4cHJ2MicsIHBhc3N3b3JkOiBvdGhlclBhc3N3b3JkIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGtleWNoYWlucy51cGRhdGVQYXNzd29yZCh7IG9sZFBhc3N3b3JkOiBvbGRQYXNzd29yZCwgbmV3UGFzc3dvcmQ6IG5ld1Bhc3N3b3JkIH0pO1xuICAgICAgXy5mb3JPd24ocmVzdWx0LmtleWNoYWlucywgZnVuY3Rpb24gKGVuY3J5cHRlZFhwcnYsIHhwdWIpIHtcbiAgICAgICAgeHB1Yi5zaG91bGQuc3RhcnRXaXRoKCd4cHViJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGVjcnlwdGVkUHJ2ID0gYml0Z28uZGVjcnlwdCh7IGlucHV0OiBlbmNyeXB0ZWRYcHJ2LCBwYXNzd29yZDogbmV3UGFzc3dvcmQgfSk7XG4gICAgICAgICAgZGVjcnlwdGVkUHJ2LnNob3VsZC5zdGFydFdpdGgoJ3hwcnYnKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIHRoZSBkZWNyeXB0aW9uIGRpZG4ndCB3b3JrIGJlY2F1c2Ugb2YgdGhlIHdyb25nIHBhc3N3b3JkLCB0aGlzIGlzIG9uZSBvZiB0aGUga2V5Y2hhaW5zIHRoYXQgZGlkbid0IG1hdGNoXG4gICAgICAgICAgLy8gdGhlIG9sZCBwYXNzd29yZFxuICAgICAgICAgIGUubWVzc2FnZS5zaG91bGQuc3RhcnRXaXRoKCdwYXNzd29yZCBlcnJvcicpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJlc3VsdC5zaG91bGQuaGFzT3duUHJvcGVydHkoJ3ZlcnNpb24nKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgYWZ0ZXIoZnVuY3Rpb24gYWZ0ZXJLZXljaGFpbnMoKSB7XG4gICAgbm9jay5wZW5kaW5nTW9ja3MoKS5zaG91bGQuYmUuZW1wdHkoKTtcbiAgfSk7XG59KTtcbiJdfQ==

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


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