Report decryption error
This commit is contained in:
parent
a59d4c74dc
commit
893e52fe20
|
@ -161,7 +161,7 @@ struct CResult_____c_char generate_key(void);
|
|||
|
||||
struct CResult_u8 zip_backup(char *key, char *dst_dir);
|
||||
|
||||
void unzip_backup(char *key, char *data_path, char *dst_dir);
|
||||
struct CResult_u8 unzip_backup(char *key, char *data_path, char *dst_dir);
|
||||
|
||||
struct CResult_____c_char split_data(uint32_t id, char *data);
|
||||
|
||||
|
|
|
@ -682,16 +682,16 @@ pub unsafe extern "C" fn unzip_backup(
|
|||
key: *mut c_char,
|
||||
data_path: *mut c_char,
|
||||
dst_dir: *mut c_char,
|
||||
) {
|
||||
) -> CResult<u8> {
|
||||
from_c_str!(key);
|
||||
from_c_str!(data_path);
|
||||
from_c_str!(dst_dir);
|
||||
let res = || {
|
||||
let backup = FullEncryptedBackup::new(&dst_dir);
|
||||
backup.restore(&key, &data_path)?;
|
||||
Ok(())
|
||||
Ok(0)
|
||||
};
|
||||
log_error(res())
|
||||
to_cresult(res())
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
|
|
|
@ -60,13 +60,14 @@ impl FullEncryptedBackup {
|
|||
let mut f = File::open(data_path)?;
|
||||
f.read_to_end(&mut cipher_text)?;
|
||||
|
||||
let decryptor = match age::Decryptor::new(&*cipher_text)? {
|
||||
let decryptor = match age::Decryptor::new(&*cipher_text).map_err(|_| anyhow!("Decryption Error"))? {
|
||||
age::Decryptor::Recipients(d) => d,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
|
||||
let mut plain_text = vec![];
|
||||
let mut reader = decryptor.decrypt(iter::once(&key as &dyn age::Identity))?;
|
||||
let mut reader = decryptor.decrypt(iter::once(&key as &dyn age::Identity))
|
||||
.map_err(|_| anyhow!("Decryption Error"))?;
|
||||
reader.read_to_end(&mut plain_text)?;
|
||||
|
||||
self.unzip(&plain_text)?;
|
||||
|
|
Loading…
Reference in New Issue