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"