age_crypto/apis/
decrypt.rs1use crate::apis::parse_identity::parse_identity;
2use crate::errors::Result;
3use crate::errors::decrypt::DecryptError;
4use std::io::Read;
5pub fn decrypt(ciphertext: &[u8], secret_key: &str) -> Result<Vec<u8>> {
6 let identity = parse_identity(secret_key)?;
7 let decryptor = age::Decryptor::new(ciphertext)
8 .map_err(|e| DecryptError::InvalidCiphertext(e.to_string()))?;
9 let mut decrypted = Vec::new();
10 decryptor
11 .decrypt(std::iter::once(&identity as &dyn age::Identity))
12 .map_err(|e| DecryptError::Failed(e.to_string()))?
13 .read_to_end(&mut decrypted)
14 .map_err(|e| DecryptError::Failed(e.to_string()))?;
15 Ok(decrypted)
16}