UNPKG

bitgo

Version:
80 lines 10.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("should"); const sdk_core_1 = require("@bitgo/sdk-core"); const sdk_api_1 = require("@bitgo/sdk-api"); describe('decryptKeychainPrivateKey', () => { const bitgo = new sdk_api_1.BitGoAPI(); const prv1 = Math.random().toString(); const password1 = Math.random().toString(); const prv2 = Math.random().toString(); const password2 = Math.random().toString(); it('should decrypt encryptedPrv', async () => { const keychain = { encryptedPrv: await bitgo.encrypt({ input: prv1, password: password1 }), }; const result = await (0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, password1); result.should.equal(prv1); }); it('should decrypt webauthnDevices encryptedPrv', async () => { const keychain = { webauthnDevices: [ { otpDeviceId: '123', authenticatorInfo: { credID: 'credID', fmt: 'packed', publicKey: 'some value', }, prfSalt: '456', encryptedPrv: await bitgo.encrypt({ input: prv2, password: password2 }), }, ], }; const result = await (0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, password2); result.should.equal(prv2); }); it('should try and decrypt all encryptedPrvs', async () => { const keychain = { encryptedPrv: await bitgo.encrypt({ input: prv1, password: password1 }), webauthnDevices: [ { otpDeviceId: '123', authenticatorInfo: { credID: 'credID', fmt: 'packed', publicKey: 'some value', }, prfSalt: '456', encryptedPrv: await bitgo.encrypt({ input: prv2, password: password2 }), }, ], }; const result = await (0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, password2); result.should.equal(prv2); }); it('should return undefined if no encryptedPrv can be decrypted', async () => { const keychain = { encryptedPrv: await bitgo.encrypt({ input: prv1, password: password1 }), webauthnDevices: [ { otpDeviceId: '123', authenticatorInfo: { credID: 'credID', fmt: 'packed', publicKey: 'some value', }, prfSalt: '456', encryptedPrv: await bitgo.encrypt({ input: prv2, password: password2 }), }, ], }; const result = await (0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, Math.random().toString()); (result === undefined).should.equal(true); }); it('should return undefined if no encryptedPrv is present', async () => { const result = await (0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, {}, 'password'); (result === undefined).should.be.true(); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdEtleWNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2RlY3J5cHRLZXljaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQiw4Q0FBMEY7QUFDMUYsNENBQTBDO0FBRTFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7SUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxrQkFBUSxFQUFFLENBQUM7SUFFN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTNDLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMzQyxNQUFNLFFBQVEsR0FBaUM7WUFDN0MsWUFBWSxFQUFFLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQ3hFLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsb0NBQXlCLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMzRSxNQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMzRCxNQUFNLFFBQVEsR0FBaUM7WUFDN0MsZUFBZSxFQUFFO2dCQUNmO29C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QUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgZGVjcnlwdEtleWNoYWluUHJpdmF0ZUtleSwgT3B0aW9uYWxLZXljaGFpbkVuY3J5cHRlZEtleSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcblxuZGVzY3JpYmUoJ2RlY3J5cHRLZXljaGFpblByaXZhdGVLZXknLCAoKSA9PiB7XG4gIGNvbnN0IGJpdGdvID0gbmV3IEJpdEdvQVBJKCk7XG5cbiAgY29uc3QgcHJ2MSA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKTtcbiAgY29uc3QgcGFzc3dvcmQxID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygpO1xuXG4gIGNvbnN0IHBydjIgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHBhc3N3b3JkMiA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKTtcblxuICBpdCgnc2hvdWxkIGRlY3J5cHQgZW5jcnlwdGVkUHJ2JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGtleWNoYWluOiBPcHRpb25hbEtleWNoYWluRW5jcnlwdGVkS2V5ID0ge1xuICAgICAgZW5jcnlwdGVkUHJ2OiBhd2FpdCBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6IHBydjEsIHBhc3N3b3JkOiBwYXNzd29yZDEgfSksXG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KGJpdGdvLCBrZXljaGFpbiwgcGFzc3dvcmQxKTtcbiAgICByZXN1bHQhLnNob3VsZC5lcXVhbChwcnYxKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBkZWNyeXB0IHdlYmF1dGhuRGV2aWNlcyBlbmNyeXB0ZWRQcnYnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qga2V5Y2hhaW46IE9wdGlvbmFsS2V5Y2hhaW5FbmNyeXB0ZWRLZXkgPSB7XG4gICAgICB3ZWJhdXRobkRldmljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG90cERldmljZUlkOiAnMTIzJyxcbiAgICAgICAgICBhdXRoZW50aWNhdG9ySW5mbzoge1xuICAgICAgICAgICAgY3JlZElEOiAnY3JlZElEJyxcbiAgICAgICAgICAgIGZtdDogJ3BhY2tlZCcsXG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdzb21lIHZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByZlNhbHQ6ICc0NTYnLFxuICAgICAgICAgIGVuY3J5cHRlZFBydjogYXdhaXQgYml0Z28uZW5jcnlwdCh7IGlucHV0OiBwcnYyLCBwYXNzd29yZDogcGFzc3dvcmQyIH0pLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIGtleWNoYWluLCBwYXNzd29yZDIpO1xuICAgIHJlc3VsdCEuc2hvdWxkLmVxdWFsKHBydjIpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRyeSBhbmQgZGVjcnlwdCBhbGwgZW5jcnlwdGVkUHJ2cycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBrZXljaGFpbjogT3B0aW9uYWxLZXljaGFpbkVuY3J5cHRlZEtleSA9IHtcbiAgICAgIGVuY3J5cHRlZFBydjogYXdhaXQgYml0Z28uZW5jcnlwdCh7IGlucHV0OiBwcnYxLCBwYXNzd29yZDogcGFzc3dvcmQxIH0pLFxuICAgICAgd2ViYXV0aG5EZXZpY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBvdHBEZXZpY2VJZDogJzEyMycsXG4gICAgICAgICAgYXV0aGVudGljYXRvckluZm86IHtcbiAgICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgICBmbXQ6ICdwYWNrZWQnLFxuICAgICAgICAgICAgcHVibGljS2V5OiAnc29tZSB2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwcmZTYWx0OiAnNDU2JyxcbiAgICAgICAgICBlbmNyeXB0ZWRQcnY6IGF3YWl0IGJpdGdvLmVuY3J5cHQoeyBpbnB1dDogcHJ2MiwgcGFzc3dvcmQ6IHBhc3N3b3JkMiB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KGJpdGdvLCBrZXljaGFpbiwgcGFzc3dvcmQyKTtcbiAgICByZXN1bHQhLnNob3VsZC5lcXVhbChwcnYyKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdW5kZWZpbmVkIGlmIG5vIGVuY3J5cHRlZFBydiBjYW4gYmUgZGVjcnlwdGVkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGtleWNoYWluOiBPcHRpb25hbEtleWNoYWluRW5jcnlwdGVkS2V5ID0ge1xuICAgICAgZW5jcnlwdGVkUHJ2OiBhd2FpdCBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6IHBydjEsIHBhc3N3b3JkOiBwYXNzd29yZDEgfSksXG4gICAgICB3ZWJhdXRobkRldmljZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG90cERldmljZUlkOiAnMTIzJyxcbiAgICAgICAgICBhdXRoZW50aWNhdG9ySW5mbzoge1xuICAgICAgICAgICAgY3JlZElEOiAnY3JlZElEJyxcbiAgICAgICAgICAgIGZtdDogJ3BhY2tlZCcsXG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdzb21lIHZhbHVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHByZlNhbHQ6ICc0NTYnLFxuICAgICAgICAgIGVuY3J5cHRlZFBydjogYXdhaXQgYml0Z28uZW5jcnlwdCh7IGlucHV0OiBwcnYyLCBwYXNzd29yZDogcGFzc3dvcmQyIH0pLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIGtleWNoYWluLCBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkpO1xuICAgIChyZXN1bHQgPT09IHVuZGVmaW5lZCkuc2hvdWxkLmVxdWFsKHRydWUpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgaWYgbm8gZW5jcnlwdGVkUHJ2IGlzIHByZXNlbnQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGVjcnlwdEtleWNoYWluUHJpdmF0ZUtleShiaXRnbywge30sICdwYXNzd29yZCcpO1xuICAgIChyZXN1bHQgPT09IHVuZGVmaW5lZCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgfSk7XG59KTtcbiJdfQ==