export interface EncryptionInfo { /** Cipher algorithm, e.g. "AES" */ cipherAlgorithm: string; /** Cipher chaining, e.g. "ChainingModeCBC" */ cipherChaining: string; /** Hash algorithm, e.g. "SHA512" */ hashAlgorithm: string; /** Key size in bits, e.g. 256 */ keyBits: number; /** Block size in bytes, e.g. 16 */ blockSize: number; /** Hash output size in bytes, e.g. 64 */ hashSize: number; /** Salt for the data key, base64-encoded */ saltValue: Uint8Array; /** Spin count for the password key derivation, e.g. 100000 */ spinCount: number; /** Salt for the password key derivation, base64-encoded */ passwordSalt: Uint8Array; /** Encrypted verifier hash input, base64-encoded */ encryptedVerifierHashInput: Uint8Array; /** Encrypted verifier hash value, base64-encoded */ encryptedVerifierHashValue: Uint8Array; /** Encrypted data encryption key, base64-encoded */ encryptedKeyValue: Uint8Array; } /** * Parse the encryption XML blob that is stored in the * `ObjectDataEncryptionKeyV2FNDX` reference. */ export declare function parseEncryptionXml(xml: string): EncryptionInfo; /** * Derive an intermediate key from a password using the MS-OFFCRYPTO Agile * Encryption key derivation algorithm ([MS-OFFCRYPTO] 2.3.4.7). * * Returns the derived key bytes (keyBits / 8 bytes long). */ export declare function deriveKeyFromPassword(password: string, info: EncryptionInfo): Promise; /** * Verify that the given password is correct by decrypting the verifier * hash input and value. * * Returns `true` if the password is correct. */ export declare function verifyPassword(password: string, info: EncryptionInfo): Promise; /** * Decrypt the data encryption key using the password-derived intermediate key. */ export declare function decryptDataKey(password: string, info: EncryptionInfo): Promise; /** * Decrypt a block of data (an encrypted object's property set) using the * data encryption key. The ciphertext is expected to have a 16-byte IV * prepended (standard AES-CBC with PKCS#7 padding). */ export declare function decryptObjectData(ciphertext: Uint8Array, dataKey: Uint8Array): Promise;