CNodeCryptoEncryptionProvider Class
Server-side synchronous AES-GCM-256 encryption provider powered by Node.js native node:crypto. Delivers 100% binary interoperability with CWebCryptoEncryptionProvider while supporting non-async synchronous operations (encryptSync, decryptSync).
๐๏ธ AEncryptionProvider (Base Class) ยท ๐ CWebCryptoEncryptionProvider (Web Crypto) ยท ๐ IEncryptionProvider Interface ยท ๐ Encryption & SSR Security Guide
Synchronous Node.js Encryption
Ideal for Nitro server routes, background jobs, worker threads, and CLI tools where synchronous encryption without Promise overhead is preferred:
import { CNodeCryptoEncryptionProvider } from '@katlux/providers'
// Always retrieve server-side secrets from environment variables or key vaults
const serverSecret = process.env.APP_SECRET || process.env.NUXT_ENCRYPTION_SECRET!
const cipher = new CNodeCryptoEncryptionProvider(serverSecret)
// 1. Synchronous encryption
const envelope = cipher.encryptSync({
action: 'SYSTEM_AUDIT',
timestamp: Date.now()
})
console.log(envelope)
// {
// __encrypted: true,
// ciphertext: "combined-cipher-and-tag...",
// iv: "12-byte-iv...",
// alg: "AES-GCM"
// }
// 2. Synchronous decryption
const data = cipher.decryptSync(envelope)
console.log(data.action) // "SYSTEM_AUDIT"