UNPKG

jose

Version:

JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes

28 lines (27 loc) 897 B
import { FlattenedEncrypt } from '../flattened/encrypt.js'; export class CompactEncrypt { #flattened; constructor(plaintext) { this.#flattened = new FlattenedEncrypt(plaintext); } setContentEncryptionKey(cek) { this.#flattened.setContentEncryptionKey(cek); return this; } setInitializationVector(iv) { this.#flattened.setInitializationVector(iv); return this; } setProtectedHeader(protectedHeader) { this.#flattened.setProtectedHeader(protectedHeader); return this; } setKeyManagementParameters(parameters) { this.#flattened.setKeyManagementParameters(parameters); return this; } async encrypt(key, options) { const jwe = await this.#flattened.encrypt(key, options); return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join('.'); } }