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==Выполнить команду
Для локальной разработки. Не используйте в интернете!