refactor: directly wrap structs
This commit is contained in:
@@ -4,7 +4,7 @@ macro_rules! crypt {
|
||||
macro_rules! crypt_with {
|
||||
($algo:ident) => {{
|
||||
let encoding = $options.get("encoding").unwrap_or_default();
|
||||
let key = &$options.get::<UserDataRef<AesKey>>("key")?.inner;
|
||||
let key = &$options.get::<UserDataRef<AesKey>>("key")?.0;
|
||||
match encoding {
|
||||
1 => $algo::<Base64Encoding>::$op($text, &key),
|
||||
2 => $algo::<Base64rEncoding>::$op($text, &key),
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
use mlua::UserData;
|
||||
|
||||
pub struct AesKey {
|
||||
pub inner: ncr::AesKey,
|
||||
}
|
||||
pub struct AesKey(pub ncr::AesKey);
|
||||
|
||||
impl UserData for AesKey {
|
||||
fn add_fields<F: mlua::UserDataFields<Self>>(f: &mut F) {
|
||||
f.add_field_method_get("base64", |_, this| Ok(this.inner.encode_base64()));
|
||||
f.add_field_method_get("bytes", |_, this| Ok(this.inner.as_ref().to_vec()));
|
||||
f.add_field_method_get("base64", |_, this| Ok(this.0.encode_base64()));
|
||||
f.add_field_method_get("bytes", |_, this| Ok(this.0.as_ref().to_vec()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,29 +14,23 @@ pub fn register_globals(lua: &Lua, globals: &Table) -> Result<()> {
|
||||
globals.set(
|
||||
"ncr_aes_key_from_passphrase",
|
||||
lua.create_function(|_, passphrase: Vec<u8>| {
|
||||
Ok(AesKey {
|
||||
inner: ncr::AesKey::gen_from_passphrase(&passphrase),
|
||||
})
|
||||
Ok(AesKey(ncr::AesKey::gen_from_passphrase(&passphrase)))
|
||||
})?,
|
||||
)?;
|
||||
|
||||
globals.set(
|
||||
"ncr_aes_key_from_base64",
|
||||
lua.create_function(|_, base64: String| {
|
||||
Ok(AesKey {
|
||||
inner: ncr::AesKey::decode_base64(&base64)
|
||||
Ok(AesKey(
|
||||
ncr::AesKey::decode_base64(&base64)
|
||||
.map_err(|error| Error::external(error.to_string()))?,
|
||||
})
|
||||
))
|
||||
})?,
|
||||
)?;
|
||||
|
||||
globals.set(
|
||||
"ncr_generate_random_aes_key",
|
||||
lua.create_function(|_, (): ()| {
|
||||
Ok(AesKey {
|
||||
inner: ncr::AesKey::gen_random_key(),
|
||||
})
|
||||
})?,
|
||||
lua.create_function(|_, (): ()| Ok(AesKey(ncr::AesKey::gen_random_key())))?,
|
||||
)?;
|
||||
|
||||
globals.set(
|
||||
|
||||
Reference in New Issue
Block a user