Spaces:
Sleeping
Sleeping
| 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('.'); | |
| } | |
| } | |