import { EncryptedHeader } from "./interfaces/encrypted_header"; import { Policy } from "./interfaces/policy"; /** * This class exposes the CoverCrypt primitives. * */ export declare class CoverCryptHybridEncryption { private readonly _publicKey; private readonly _policy; constructor(policy: Policy, publicKey: Uint8Array); get policy(): Policy; get publicKey(): Uint8Array; /** * Generate and encrypt a symmetric key using the public key and policy. * @param {string} accessPolicy Encrypt with this access policy * @param {object} options Additional optional options to the encryption * @param {Uint8Array} options.headerMetadata Data encrypted in the header * @param {Uint8Array} options.authenticationData Data use to authenticate the encrypted value when decrypting (if use, should be use during * @returns {Uint8Array} encrypted header */ encryptHybridHeader(accessPolicy: string, options?: { headerMetadata?: Uint8Array; authenticationData?: Uint8Array; }): EncryptedHeader; /** * Encrypts a AES256-GCM block * @param {Uint8Array} symmetricKey Symmetric key to use to encrypt * @param {Uint8Array} plaintext Stuff to encrypt * @param {object} options Additional optional options to the encryption * @param {Uint8Array} options.authenticationData Data use to authenticate the encrypted value when decrypting (if use, should be use during decryption) * @returns {Uint8Array} encrypted block */ encryptBlock(symmetricKey: Uint8Array, plaintext: Uint8Array, options?: { authenticationData?: Uint8Array; }): Uint8Array; /** * Hybrid encrypt wrapper: CoverCrypt encrypt then AES encrypt * @param {string} accessPolicy Encrypt with this access policy * @param {Uint8Array} plaintext Stuff to encrypt * @param {object} options Additional optional options to the encryption * @param {Uint8Array} options.headerMetadata Data encrypted in the header * @param {Uint8Array} options.authenticationData Data use to authenticate the encrypted value when decrypting (if use, should be use during decryption) * @returns {Uint8Array} encrypted */ encrypt(accessPolicy: string, plaintext: Uint8Array, options?: { headerMetadata?: Uint8Array; authenticationData?: Uint8Array; }): Uint8Array; } /** * Hybrid encrypt wrapper: CoverCrypt encrypt then AES encrypt * @param {Policy} policy CoverCrypt global policy * @param {Uint8Array} publicKey Master public key * @param {string} accessPolicy Encrypt with this access policy * @param {Uint8Array} plaintext Stuff to encrypt * @param {object} options Additional optional options to the encryption * @param {Uint8Array} options.headerMetadata Data encrypted in the header * @param {Uint8Array} options.authenticationData Data use to authenticate the encrypted value when decrypting (if use, should be use during decryption) * @returns {Uint8Array} encrypted */ export declare function encrypt(policy: Policy, publicKey: Uint8Array, accessPolicy: string, plaintext: Uint8Array, options?: { headerMetadata?: Uint8Array; authenticationData?: Uint8Array; }): Uint8Array; //# sourceMappingURL=encryption.d.ts.map