feat(#199): electron safeStorage util for storing secrets with aes256 fallback

This commit is contained in:
Anoop M D
2023-09-24 17:49:28 +05:30
parent 7a1b44858d
commit f78c1640e9
3 changed files with 107 additions and 1 deletions

View File

@@ -0,0 +1,31 @@
const { encryptString, decryptString } = require('../../src/utils/encryption');
// We can only unit test aes 256 fallback as safeStorage is only available
// in the main process
describe('Encryption and Decryption Tests', () => {
it('should encrypt and decrypt using AES-256', () => {
const plaintext = 'bruno is awesome';
const encrypted = encryptString(plaintext);
const decrypted = decryptString(encrypted);
expect(decrypted).toBe(plaintext);
});
it('encrypt should throw an error for invalid string', () => {
expect(() => encryptString(null)).toThrow('Encrypt failed: invalid string');
expect(() => encryptString('')).toThrow('Encrypt failed: invalid string');
});
it('decrypt should throw an error for invalid string', () => {
expect(() => decryptString(null)).toThrow('Decrypt failed: unrecognized string format');
expect(() => decryptString('')).toThrow('Decrypt failed: unrecognized string format');
expect(() => decryptString('garbage')).toThrow('Decrypt failed: unrecognized string format');
});
it('decrypt should throw an error for invalid algorithm', () => {
const invalidAlgo = '$99:abcdefg';
expect(() => decryptString(invalidAlgo)).toThrow('Decrypt failed: Invalid algo');
});
});