fencryption_lib/commands/
decrypt_text.rs1use base64::{engine::general_purpose, Engine};
4
5use crate::{
6 commands::{ErrorBuilder, Result},
7 crypto::Crypto,
8};
9
10pub fn execute(key: &String, encrypted: &String) -> Result<String> {
12 let crypto = Crypto::new(key).map_err(|e| {
13 ErrorBuilder::new()
14 .message("Failed to initialize encryption utils")
15 .error(e)
16 .build()
17 })?;
18
19 let enc = general_purpose::STANDARD
20 .decode(encrypted.to_owned())
21 .map_err(|e| {
22 ErrorBuilder::new()
23 .message("Failed to decode base64")
24 .error(e)
25 .build()
26 })?;
27
28 let dec = crypto.decrypt(enc).map_err(|e| {
29 ErrorBuilder::new()
30 .message("Failed to encrypt text")
31 .error(e)
32 .build()
33 })?;
34
35 Ok(String::from_utf8(dec).map_err(|e| {
36 ErrorBuilder::new()
37 .message("Failed to decode decrypted bytes")
38 .error(e)
39 .build()
40 })?)
41}