// Extract IV (12 bytes), auth tag (16 bytes), and actual ciphertext const iv = Buffer.from(ciphertextWithTag.slice(0, 24), 'hex'); const authTag = Buffer.from(ciphertextWithTag.slice(24, 56), 'hex'); const ciphertext = Buffer.from(ciphertextWithTag.slice(56), 'hex');
return (encoding === 'utf8' ? decrypted.toString('utf8') : decrypted.toString('base64')) as T; core-decrypt
// core-decrypt.ts import * as crypto from 'crypto'; export interface DecryptOptions encryptedData: string; // base64 encoded ciphertext + iv + authTag password: string; encoding?: 'utf8' // Extract IV (12 bytes), auth tag (16