PHP WebShell
Текущая директория: /opt/BitGoJS/modules/bitgo/dist/test/unit
Просмотр файла: decryptKeychain.js
"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', () => {
const keychain = {
encryptedPrv: bitgo.encrypt({ input: prv1, password: password1 }),
};
(0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, password1).should.equal(prv1);
});
it('should decrypt webauthnDevices encryptedPrv', () => {
const keychain = {
webauthnDevices: [
{
otpDeviceId: '123',
authenticatorInfo: {
credID: 'credID',
fmt: 'packed',
publicKey: 'some value',
},
prfSalt: '456',
encryptedPrv: bitgo.encrypt({ input: prv2, password: password2 }),
},
],
};
(0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, password2).should.equal(prv2);
});
it('should try and decrypt all encryptedPrvs', () => {
const keychain = {
encryptedPrv: bitgo.encrypt({ input: prv1, password: password1 }),
webauthnDevices: [
{
otpDeviceId: '123',
authenticatorInfo: {
credID: 'credID',
fmt: 'packed',
publicKey: 'some value',
},
prfSalt: '456',
encryptedPrv: bitgo.encrypt({ input: prv2, password: password2 }),
},
],
};
(0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, password2).should.equal(prv2);
});
it('should return undefined if no encryptedPrv can be decrypted', () => {
const keychain = {
encryptedPrv: bitgo.encrypt({ input: prv1, password: password1 }),
webauthnDevices: [
{
otpDeviceId: '123',
authenticatorInfo: {
credID: 'credID',
fmt: 'packed',
publicKey: 'some value',
},
prfSalt: '456',
encryptedPrv: bitgo.encrypt({ input: prv2, password: password2 }),
},
],
};
((0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, keychain, Math.random().toString()) === undefined).should.equal(true);
});
it('should return undefined if no encryptedPrv is present', () => {
((0, sdk_core_1.decryptKeychainPrivateKey)(bitgo, {}, 'password') === undefined).should.be.true();
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdEtleWNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2RlY3J5cHRLZXljaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFnQjtBQUNoQiw4Q0FBMEY7QUFDMUYsNENBQTBDO0FBRTFDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7SUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxrQkFBUSxFQUFFLENBQUM7SUFFN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRTNDLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7UUFDckMsTUFBTSxRQUFRLEdBQWlDO1lBQzdDLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7U0FDbEUsQ0FBQztRQUNGLElBQUEsb0NBQXlCLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZDQUE2QyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLFFBQVEsR0FBaUM7WUFDN0MsZUFBZSxFQUFFO2dCQUNmO29CQUNFLFdBQVcsRUFBRSxLQUFLO29CQUNsQixpQkFBaUIsRUFBRTt3QkFDakIsTUFBTSxFQUFFLFFBQVE7d0JBQ2hCLEdBQUcsRUFBRSxRQUFRO3dCQUNiLFNBQVMsRUFBRSxZQUFZO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUUsS0FBSztvQkFDZCxZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO2lCQUNsRTthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUEsb0NBQXlCLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxNQUFNLFFBQVEsR0FBaUM7WUFDN0MsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNqRSxlQUFlLEVBQUU7Z0JBQ2Y7b0JBQ0UsV0FBVyxFQUFFLEtBQUs7b0JBQ2xCLGlCQUFpQixFQUFFO3dCQUNqQixNQUFNLEVBQUUsUUFBUTt3QkFDaEIsR0FBRyxFQUFFLFFBQVE7d0JBQ2IsU0FBUyxFQUFFLFlBQVk7cUJBQ3hCO29CQUNELE9BQU8sRUFBRSxLQUFLO29CQUNkLFlBQVksRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7aUJBQ2xFO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsSUFBQSxvQ0FBeUIsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkRBQTZELEVBQUUsR0FBRyxFQUFFO1FBQ3JFLE1BQU0sUUFBUSxHQUFpQztZQUM3QyxZQUFZLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ2pFLGVBQWUsRUFBRTtnQkFDZjtvQkFDRSxXQUFXLEVBQUUsS0FBSztvQkFDbEIsaUJBQWlCLEVBQUU7d0JBQ2pCLE1BQU0sRUFBRSxRQUFRO3dCQUNoQixHQUFHLEVBQUUsUUFBUTt3QkFDYixTQUFTLEVBQUUsWUFBWTtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztpQkFDbEU7YUFDRjtTQUNGLENBQUM7UUFDRixDQUFDLElBQUEsb0NBQXlCLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFHLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtRQUMvRCxDQUFDLElBQUEsb0NBQXlCLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5LCBPcHRpb25hbEtleWNoYWluRW5jcnlwdGVkS2V5IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay1hcGknO1xuXG5kZXNjcmliZSgnZGVjcnlwdEtleWNoYWluUHJpdmF0ZUtleScsICgpID0+IHtcbiAgY29uc3QgYml0Z28gPSBuZXcgQml0R29BUEkoKTtcblxuICBjb25zdCBwcnYxID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygpO1xuICBjb25zdCBwYXNzd29yZDEgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCk7XG5cbiAgY29uc3QgcHJ2MiA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKTtcbiAgY29uc3QgcGFzc3dvcmQyID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygpO1xuXG4gIGl0KCdzaG91bGQgZGVjcnlwdCBlbmNyeXB0ZWRQcnYnLCAoKSA9PiB7XG4gICAgY29uc3Qga2V5Y2hhaW46IE9wdGlvbmFsS2V5Y2hhaW5FbmNyeXB0ZWRLZXkgPSB7XG4gICAgICBlbmNyeXB0ZWRQcnY6IGJpdGdvLmVuY3J5cHQoeyBpbnB1dDogcHJ2MSwgcGFzc3dvcmQ6IHBhc3N3b3JkMSB9KSxcbiAgICB9O1xuICAgIGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIGtleWNoYWluLCBwYXNzd29yZDEpIS5zaG91bGQuZXF1YWwocHJ2MSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZGVjcnlwdCB3ZWJhdXRobkRldmljZXMgZW5jcnlwdGVkUHJ2JywgKCkgPT4ge1xuICAgIGNvbnN0IGtleWNoYWluOiBPcHRpb25hbEtleWNoYWluRW5jcnlwdGVkS2V5ID0ge1xuICAgICAgd2ViYXV0aG5EZXZpY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBvdHBEZXZpY2VJZDogJzEyMycsXG4gICAgICAgICAgYXV0aGVudGljYXRvckluZm86IHtcbiAgICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgICBmbXQ6ICdwYWNrZWQnLFxuICAgICAgICAgICAgcHVibGljS2V5OiAnc29tZSB2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwcmZTYWx0OiAnNDU2JyxcbiAgICAgICAgICBlbmNyeXB0ZWRQcnY6IGJpdGdvLmVuY3J5cHQoeyBpbnB1dDogcHJ2MiwgcGFzc3dvcmQ6IHBhc3N3b3JkMiB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KGJpdGdvLCBrZXljaGFpbiwgcGFzc3dvcmQyKSEuc2hvdWxkLmVxdWFsKHBydjIpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHRyeSBhbmQgZGVjcnlwdCBhbGwgZW5jcnlwdGVkUHJ2cycsICgpID0+IHtcbiAgICBjb25zdCBrZXljaGFpbjogT3B0aW9uYWxLZXljaGFpbkVuY3J5cHRlZEtleSA9IHtcbiAgICAgIGVuY3J5cHRlZFBydjogYml0Z28uZW5jcnlwdCh7IGlucHV0OiBwcnYxLCBwYXNzd29yZDogcGFzc3dvcmQxIH0pLFxuICAgICAgd2ViYXV0aG5EZXZpY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBvdHBEZXZpY2VJZDogJzEyMycsXG4gICAgICAgICAgYXV0aGVudGljYXRvckluZm86IHtcbiAgICAgICAgICAgIGNyZWRJRDogJ2NyZWRJRCcsXG4gICAgICAgICAgICBmbXQ6ICdwYWNrZWQnLFxuICAgICAgICAgICAgcHVibGljS2V5OiAnc29tZSB2YWx1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwcmZTYWx0OiAnNDU2JyxcbiAgICAgICAgICBlbmNyeXB0ZWRQcnY6IGJpdGdvLmVuY3J5cHQoeyBpbnB1dDogcHJ2MiwgcGFzc3dvcmQ6IHBhc3N3b3JkMiB9KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgICBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KGJpdGdvLCBrZXljaGFpbiwgcGFzc3dvcmQyKSEuc2hvdWxkLmVxdWFsKHBydjIpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgaWYgbm8gZW5jcnlwdGVkUHJ2IGNhbiBiZSBkZWNyeXB0ZWQnLCAoKSA9PiB7XG4gICAgY29uc3Qga2V5Y2hhaW46IE9wdGlvbmFsS2V5Y2hhaW5FbmNyeXB0ZWRLZXkgPSB7XG4gICAgICBlbmNyeXB0ZWRQcnY6IGJpdGdvLmVuY3J5cHQoeyBpbnB1dDogcHJ2MSwgcGFzc3dvcmQ6IHBhc3N3b3JkMSB9KSxcbiAgICAgIHdlYmF1dGhuRGV2aWNlczogW1xuICAgICAgICB7XG4gICAgICAgICAgb3RwRGV2aWNlSWQ6ICcxMjMnLFxuICAgICAgICAgIGF1dGhlbnRpY2F0b3JJbmZvOiB7XG4gICAgICAgICAgICBjcmVkSUQ6ICdjcmVkSUQnLFxuICAgICAgICAgICAgZm10OiAncGFja2VkJyxcbiAgICAgICAgICAgIHB1YmxpY0tleTogJ3NvbWUgdmFsdWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcHJmU2FsdDogJzQ1NicsXG4gICAgICAgICAgZW5jcnlwdGVkUHJ2OiBiaXRnby5lbmNyeXB0KHsgaW5wdXQ6IHBydjIsIHBhc3N3b3JkOiBwYXNzd29yZDIgfSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gICAgKGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoYml0Z28sIGtleWNoYWluLCBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKCkpID09PSB1bmRlZmluZWQpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gdW5kZWZpbmVkIGlmIG5vIGVuY3J5cHRlZFBydiBpcyBwcmVzZW50JywgKCkgPT4ge1xuICAgIChkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KGJpdGdvLCB7fSwgJ3Bhc3N3b3JkJykgPT09IHVuZGVmaW5lZCkuc2hvdWxkLmJlLnRydWUoKTtcbiAgfSk7XG59KTtcbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!