use wasefire_applet_api::crypto::cbc as api;
use crate::{Error, convert_bool, convert_unit};
pub fn is_supported() -> bool {
convert_bool(unsafe { api::is_supported() }).unwrap_or(false)
}
pub fn encrypt(key: &[u8; 32], iv: &[u8; 16], blocks: &mut [u8]) -> Result<(), Error> {
let params = api::encrypt::Params {
key: key.as_ptr(),
iv: iv.as_ptr(),
ptr: blocks.as_mut_ptr(),
len: blocks.len(),
};
convert_unit(unsafe { api::encrypt(params) })
}
pub fn decrypt(key: &[u8; 32], iv: &[u8; 16], blocks: &mut [u8]) -> Result<(), Error> {
let params = api::decrypt::Params {
key: key.as_ptr(),
iv: iv.as_ptr(),
ptr: blocks.as_mut_ptr(),
len: blocks.len(),
};
convert_unit(unsafe { api::decrypt(params) })
}