UNPKG

bitgo

Version:
69 lines 10.5 kB
"use strict"; // // Test for Keychains // Object.defineProperty(exports, "__esModule", { value: true }); require("should"); const nock = require("nock"); 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'; const encryptedXprv1 = await bitgo.encrypt({ input: 'xprv1', password: oldPassword }); const encryptedXprv2 = await bitgo.encrypt({ input: 'xprv2', password: otherPassword }); nock(bgUrl) .post('/api/v1/user/encrypted') .reply(200, { keychains: { xpub1: encryptedXprv1, xpub2: encryptedXprv2, }, version: 1, }); const result = await keychains.updatePassword({ oldPassword: oldPassword, newPassword: newPassword }); for (const [xpub, encryptedXprv] of Object.entries(result.keychains)) { xpub.should.startWith('xpub'); try { const decryptedPrv = await 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.equal('incorrect password'); } } result.should.hasOwnProperty('version'); }); }); after(function afterKeychains() { nock.pendingMocks().should.be.empty(); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2hhaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2tleWNoYWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsRUFBRTtBQUNGLHFCQUFxQjtBQUNyQixFQUFFOztBQUVGLGtCQUFnQjtBQUNoQiw2QkFBOEI7QUFFOUIsOENBQXlDO0FBRXpDLDhDQUE0QztBQUM1QywyQ0FBd0M7QUFFeEMsUUFBUSxDQUFDLFdBQVcsRUFBRSxTQUFTLFdBQVc7SUFDeEMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsY0FBYztRQUNqRCxJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksU0FBUyxDQUFDO1FBQ2QsSUFBSSxLQUFLLENBQUM7UUFFVixNQUFNLENBQUMsU0FBUyxjQUFjO1lBQzVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRXRDLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxhQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNuRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMzQixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFOUIsS0FBSyxHQUFHLGlCQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLO1lBQzVDLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFFakgsTUFBTSxTQUFTO2lCQUNaLGNBQWMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO2lCQUMxRCxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1lBRXRGLE1BQU0sU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFFakgsTUFBTSxTQUFTO2lCQUNaLGNBQWMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO2lCQUMxRCxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDRCQUE0QixFQUFFLEtBQUs7WUFDcEMsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQztZQUNsQyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7WUFFdEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0RixNQUFNLGNBQWMsR0FBRyxNQUFNLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBRXhGLElBQUksQ0FBQyxLQUFLLENBQUM7aUJBQ1IsSUFBSSxDQUFDLHdCQUF3QixDQUFDO2lCQUM5QixLQUFLLENBQUMsR0FBRyxFQUFFO2dCQUNWLFNBQVMsRUFBRTtvQkFDVCxLQUFLLEVBQUUsY0FBYztvQkFDckIsS0FBSyxFQUFFLGNBQWM7aUJBQ3RCO2dCQUNELE9BQU8sRUFBRSxDQUFDO2FBQ1gsQ0FBQyxDQUFDO1lBRUwsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0RyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBbUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9GLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QixJQUFJLENBQUM7b0JBQ0gsTUFBTSxZQUFZLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDMUYsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCwyR0FBMkc7b0JBQzNHLG1CQUFtQjtvQkFDbkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQy9DLENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxTQUFTLGNBQWM7UUFDM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vXG4vLyBUZXN0IGZvciBLZXljaGFpbnNcbi8vXG5cbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuXG5pbXBvcnQgeyBjb21tb24gfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBUZXN0Qml0R28gfSBmcm9tICdAYml0Z28vc2RrLXRlc3QnO1xuaW1wb3J0IHsgQml0R28gfSBmcm9tICcuLi8uLi9zcmMvYml0Z28nO1xuXG5kZXNjcmliZSgnS2V5Y2hhaW5zJywgZnVuY3Rpb24gdjJrZXljaGFpbnMoKSB7XG4gIGRlc2NyaWJlKCdVcGRhdGUgUGFzc3dvcmQnLCBmdW5jdGlvbiB1cGRhdGVQYXNzd29yZCgpIHtcbiAgICBsZXQgYml0Z287XG4gICAgbGV0IGtleWNoYWlucztcbiAgICBsZXQgYmdVcmw7XG5cbiAgICBiZWZvcmUoZnVuY3Rpb24gYmVmb3JlRGVzY3JpYmUoKSB7XG4gICAgICBub2NrLnBlbmRpbmdNb2NrcygpLnNob3VsZC5iZS5lbXB0eSgpO1xuXG4gICAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHbywgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICAgICAgYml0Z28uc2V0VmFsaWRhdGUoZmFsc2UpO1xuICAgICAga2V5Y2hhaW5zID0gYml0Z28ua2V5Y2hhaW5zKCk7XG5cbiAgICAgIGJnVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tiaXRnby5nZXRFbnYoKV0udXJpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHVwZGF0ZSB0aGUgcGFzc3dvcmQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBrZXljaGFpbnMudXBkYXRlUGFzc3dvcmQoeyBuZXdQYXNzd29yZDogJzU2NzgnIH0pLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ01pc3NpbmcgcGFyYW1ldGVyOiBvbGRQYXNzd29yZCcpO1xuXG4gICAgICBhd2FpdCBrZXljaGFpbnNcbiAgICAgICAgLnVwZGF0ZVBhc3N3b3JkKHsgb2xkUGFzc3dvcmQ6IDEyMzQsIG5ld1Bhc3N3b3JkOiAnNTY3OCcgfSlcbiAgICAgICAgLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0V4cGVjdGluZyBwYXJhbWV0ZXIgc3RyaW5nOiBvbGRQYXNzd29yZCBidXQgZm91bmQgbnVtYmVyJyk7XG5cbiAgICAgIGF3YWl0IGtleWNoYWlucy51cGRhdGVQYXNzd29yZCh7IG9sZFBhc3N3b3JkOiAnMTIzNCcgfSkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnTWlzc2luZyBwYXJhbWV0ZXI6IG5ld1Bhc3N3b3JkJyk7XG5cbiAgICAgIGF3YWl0IGtleWNoYWluc1xuICAgICAgICAudXBkYXRlUGFzc3dvcmQoeyBvbGRQYXNzd29yZDogJzEyMzQnLCBuZXdQYXNzd29yZDogNTY3OCB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnRXhwZWN0aW5nIHBhcmFtZXRlciBzdHJpbmc6IG5ld1Bhc3N3b3JkIGJ1dCBmb3VuZCBudW1iZXInKTtcbiAgICB9KTtcblxuICAgIGl0KCdzdWNjZXNzZnVsIHBhc3N3b3JkIHVwZGF0ZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IG9sZFBhc3N3b3JkID0gJ29sZFBhc3N3b3JkJztcbiAgICAgIGNvbnN0IG5ld1Bhc3N3b3JkID0gJ25ld1Bhc3N3b3JkJztcbiAgICAgIGNvbnN0IG90aGVyUGFzc3dvcmQgPSAnb3RoZXJQYXNzd29yZCc7XG5cbiAgICAgIGNvbnN0IGVuY3J5cHRlZFhwcnYxID0gYXdhaXQgYml0Z28uZW5jcnlwdCh7IGlucHV0OiAneHBydjEnLCBwYXNzd29yZDogb2xkUGFzc3dvcmQgfSk7XG4gICAgICBjb25zdCBlbmNyeXB0ZWRYcHJ2MiA9IGF3YWl0IGJpdGdvLmVuY3J5cHQoeyBpbnB1dDogJ3hwcnYyJywgcGFzc3dvcmQ6IG90aGVyUGFzc3dvcmQgfSk7XG5cbiAgICAgIG5vY2soYmdVcmwpXG4gICAgICAgIC5wb3N0KCcvYXBpL3YxL3VzZXIvZW5jcnlwdGVkJylcbiAgICAgICAgLnJlcGx5KDIwMCwge1xuICAgICAgICAgIGtleWNoYWluczoge1xuICAgICAgICAgICAgeHB1YjE6IGVuY3J5cHRlZFhwcnYxLFxuICAgICAgICAgICAgeHB1YjI6IGVuY3J5cHRlZFhwcnYyLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGtleWNoYWlucy51cGRhdGVQYXNzd29yZCh7IG9sZFBhc3N3b3JkOiBvbGRQYXNzd29yZCwgbmV3UGFzc3dvcmQ6IG5ld1Bhc3N3b3JkIH0pO1xuICAgICAgZm9yIChjb25zdCBbeHB1YiwgZW5jcnlwdGVkWHBydl0gb2YgT2JqZWN0LmVudHJpZXMocmVzdWx0LmtleWNoYWlucyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSkge1xuICAgICAgICB4cHViLnNob3VsZC5zdGFydFdpdGgoJ3hwdWInKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkZWNyeXB0ZWRQcnYgPSBhd2FpdCBiaXRnby5kZWNyeXB0KHsgaW5wdXQ6IGVuY3J5cHRlZFhwcnYsIHBhc3N3b3JkOiBuZXdQYXNzd29yZCB9KTtcbiAgICAgICAgICBkZWNyeXB0ZWRQcnYuc2hvdWxkLnN0YXJ0V2l0aCgneHBydicpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgLy8gdGhlIGRlY3J5cHRpb24gZGlkbid0IHdvcmsgYmVjYXVzZSBvZiB0aGUgd3JvbmcgcGFzc3dvcmQsIHRoaXMgaXMgb25lIG9mIHRoZSBrZXljaGFpbnMgdGhhdCBkaWRuJ3QgbWF0Y2hcbiAgICAgICAgICAvLyB0aGUgb2xkIHBhc3N3b3JkXG4gICAgICAgICAgZS5tZXNzYWdlLnNob3VsZC5lcXVhbCgnaW5jb3JyZWN0IHBhc3N3b3JkJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlc3VsdC5zaG91bGQuaGFzT3duUHJvcGVydHkoJ3ZlcnNpb24nKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgYWZ0ZXIoZnVuY3Rpb24gYWZ0ZXJLZXljaGFpbnMoKSB7XG4gICAgbm9jay5wZW5kaW5nTW9ja3MoKS5zaG91bGQuYmUuZW1wdHkoKTtcbiAgfSk7XG59KTtcbiJdfQ==