import { EncryptedHeader } from "./encrypted_header"; import { AbeEncryptionParameters } from "./encryption_parameters"; export declare abstract class HybridEncryption { private _publicKey; private _policy; get policy(): Uint8Array; set policy(value: Uint8Array); set publicKey(value: Uint8Array); get publicKey(): Uint8Array; constructor(policy: Uint8Array, publicKey: Uint8Array); abstract renewKey(policy: Uint8Array, publicKey: Uint8Array): void; abstract destroyInstance(): void; /** * * @param parameters Encryption parameters */ abstract encryptHybridHeader(parameters: AbeEncryptionParameters): EncryptedHeader; /** * Encrypts a hybrid block * * @param symmetricKey symmetric key * @param plaintext data to encrypt * @param uid uid used as additional data * @param blockNumber * @returns the ciphertext if everything succeeded */ abstract encryptHybridBlock(symmetricKey: Uint8Array, plaintext: Uint8Array, uid: Uint8Array | undefined, blockNumber: number | undefined): Uint8Array; /** * Hybrid encrypt wrapper: ABE encrypt then AES encrypt * * @param attributes * @param uid * @param plaintext * @returns */ abstract encrypt(attributes: string[], uid: Uint8Array, plaintext: Uint8Array): Uint8Array; } export interface EncryptionWorkerMessage { name: "INIT" | "DESTROY" | "ENCRYPT" | "SUCCESS" | "ERROR"; error?: string; value?: any; } //# sourceMappingURL=encryption.d.ts.map