import { keccakAEAD } from '../src/public/aead'; const crypto = require('crypto'); const stringutils = require('../src/stringutils'); function generateRandomUint8Array(length = 16) { const randomArray = new Uint8Array(length); crypto.getRandomValues(randomArray); return randomArray; } describe('aead.js functions', () => { it('encrypt and decrypt', () => { let msg = generateRandomUint8Array(117); let msg_hex = stringutils.arrayToHex(msg); let ad = generateRandomUint8Array(83); let iv = generateRandomUint8Array(); let nonce = generateRandomUint8Array(); let key = generateRandomUint8Array(); let result = keccakAEAD.encrypt(key, msg, iv, ad, nonce); let tag_encrypt_hex = stringutils.arrayToHex(result.tag); let cipher_hex = stringutils.arrayToHex(result.cipher); let result2 = keccakAEAD.decrypt(key, result.cipher, iv, ad, nonce); let tag_decrypt_hex = stringutils.arrayToHex(result2.tag); let decrypted_hex = stringutils.arrayToHex(result2.plaintext); expect(decrypted_hex).toBe(msg_hex); expect(tag_decrypt_hex).toBe(tag_encrypt_hex); expect(cipher_hex === msg_hex).toBe(false); }); });