PHP WebShell
Текущая директория: /opt/BitGoJS/modules/bitgo/test/unit
Просмотр файла: decryptKeychain.ts
import 'should';
import { decryptKeychainPrivateKey, OptionalKeychainEncryptedKey } from '@bitgo/sdk-core';
import { BitGoAPI } from '@bitgo/sdk-api';
describe('decryptKeychainPrivateKey', () => {
const bitgo = new 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: OptionalKeychainEncryptedKey = {
encryptedPrv: bitgo.encrypt({ input: prv1, password: password1 }),
};
decryptKeychainPrivateKey(bitgo, keychain, password1)!.should.equal(prv1);
});
it('should decrypt webauthnDevices encryptedPrv', () => {
const keychain: OptionalKeychainEncryptedKey = {
webauthnDevices: [
{
otpDeviceId: '123',
authenticatorInfo: {
credID: 'credID',
fmt: 'packed',
publicKey: 'some value',
},
prfSalt: '456',
encryptedPrv: bitgo.encrypt({ input: prv2, password: password2 }),
},
],
};
decryptKeychainPrivateKey(bitgo, keychain, password2)!.should.equal(prv2);
});
it('should try and decrypt all encryptedPrvs', () => {
const keychain: OptionalKeychainEncryptedKey = {
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 }),
},
],
};
decryptKeychainPrivateKey(bitgo, keychain, password2)!.should.equal(prv2);
});
it('should return undefined if no encryptedPrv can be decrypted', () => {
const keychain: OptionalKeychainEncryptedKey = {
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 }),
},
],
};
(decryptKeychainPrivateKey(bitgo, keychain, Math.random().toString()) === undefined).should.equal(true);
});
it('should return undefined if no encryptedPrv is present', () => {
(decryptKeychainPrivateKey(bitgo, {}, 'password') === undefined).should.be.true();
});
});
Выполнить команду
Для локальной разработки. Не используйте в интернете!