Skip to main content

decrypt_package

Function decrypt_package 

Source
pub fn decrypt_package(
    encrypted_bytes: &[u8],
    password: &str,
) -> Result<Vec<u8>>
Expand description

解密加密的 ZIP 包。

§流程(MS-OFFCRYPTO §2.3.4.11 解密方向)

  1. 解析加密的 ZIP,读取 EncryptionInfo + EncryptedPackage;
  2. 从密码派生哈希 + blockKey 派生解密 secret_key 的密钥;
  3. IV = passwordSalt 的前 16 字节;
  4. 解密得到 secret_key;
  5. 验证密码(可选):解密 verifierHashInput/Value 并验证;
  6. 从 secret_key + keyDataSalt 派生数据解密密钥;
  7. IV = keyDataSalt 的前 16 字节;
  8. 解密数据。

§参数

  • encrypted_bytes:加密的 ZIP 字节流;
  • password:解密密码。

§返回

解密后的原始 ZIP 字节流(可被 Presentation::load_bytes 加载)。