AES Encryption
AesEncryption
is an implementation of the Encryption
interface, offering Advanced Encryption Standard (AES) encryption and decryption services. It uses the Galois/Counter Mode (GCM) of operation which is suitable for encrypting individual files or strings of data.
Setup
For proper functioning, an AES secret key needs to be either generated or imported into the AesEncryption
class. Once set up, you can utilize the class methods to encrypt and decrypt data using the AES-GCM mechanism.
Note: If you're integrating AesEncryption
with EncryptionHandler
, ensure that the secret key is either generated or imported in the AesEncryption
instance beforehand. Otherwise, it won't be possible to encrypt/decrypt data.
Usage
Below is a demonstration of how to use the AesEncryption
class.
import { AesEncryption } from '@4thtech-sdk/encryption';
import { arrayBufferToString, stringToArrayBuffer } from '@4thtech-sdk/utils';
// Create an instance of AesEncryption
const aesEncryption = new AesEncryption();
// Generate a secret key
await aesEncryption.generateSecretKey();
// Export the generated secret key
const exportedSecretKeyHex = await aesEncryption.exportSecretKey();
// Or import an existing secret key
// const secretKeyHex = 'YOUR_SECRET_KEY_IN_HEX';
// await aesEncryption.importSecretKey(secretKeyHex);
// Or use the static method to create an AesEncryption instance from a secret key
// const aesEncryption = await AesEncryption.fromSecretKey(secretKeyHex);
// Encrypt data
const plainData = stringToArrayBuffer('Your data to be encrypted');
const encryptedData = await aesEncryption.encrypt(plainData);
// Decrypt data
const decryptedDataBuffer = await aesEncryption.decrypt(encryptedData);
const decryptedData = arrayBufferToString(decryptedDataBuffer);