2021-07-12 10:36:12 +00:00
|
|
|
import { Test, TestingModule } from '@nestjs/testing';
|
2022-05-05 07:08:42 +00:00
|
|
|
import { EncryptionService } from '../../src/services/encryption.service';
|
2021-07-12 10:36:12 +00:00
|
|
|
|
|
|
|
|
describe('EncryptionService', () => {
|
|
|
|
|
let service: EncryptionService;
|
|
|
|
|
|
|
|
|
|
beforeEach(async () => {
|
|
|
|
|
const module: TestingModule = await Test.createTestingModule({
|
|
|
|
|
providers: [EncryptionService],
|
|
|
|
|
}).compile();
|
|
|
|
|
|
|
|
|
|
service = module.get<EncryptionService>(EncryptionService);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should generate derived keys', () => {
|
|
|
|
|
process.env['LOCKBOX_MASTER_KEY'] = '3dbbbac7043d25ac4ab1f5724f1d51f4dd399779dee5b7015d17e8615ab2fc37';
|
|
|
|
|
const derivedKey = service.computeAttributeKey('credentials', 'value');
|
|
|
|
|
expect(derivedKey).toBe('30129aa38f9bf34b060045bd58bfd4a3883ba135d87e70cc9cc602f179fe3780');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should encrypt & decrypt text', () => {
|
|
|
|
|
const derivedKey = '30129aa38f9bf34b060045bd58bfd4a3883ba135d87e70cc9cc602f179fe3780';
|
|
|
|
|
const encryptedText = service.encrypt('Hello', derivedKey);
|
|
|
|
|
|
|
|
|
|
const decryptedText = service.decrypt(encryptedText, derivedKey);
|
|
|
|
|
expect(decryptedText).toBe('Hello');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should encrypt and decrypt table column values using derived keys', async () => {
|
|
|
|
|
process.env['LOCKBOX_MASTER_KEY'] = '3dbbbac7043d25ac4ab1f5724f1d51f4dd399779dee5b7015d17e8615ab2fc37';
|
|
|
|
|
const encryptedText = await service.encryptColumnValue('credentials', 'value', 'Hello');
|
|
|
|
|
const decryptedText = await service.decryptColumnValue('credentials', 'value', encryptedText);
|
|
|
|
|
expect(decryptedText).toBe('Hello');
|
|
|
|
|
});
|
2021-09-21 13:48:28 +00:00
|
|
|
});
|