INNER CODE UNIT · Rust
array
xoofx/Blake3.NET · lib/blake3_dotnet/src/lib.rs:12
let array = ptr as *const [u8; 32];
return Box::into_raw(Box::new(blake3::Hasher::new_keyed(unsafe { &*array })));
}
// Creates a new instance of Blake3 Hasher from keyed
#[no_mangle]
pub extern "C" fn blake3_new_derive_key(ptr: *const u8, size: libc::size_t) -> *mut blake3::Hasher {
let slice = unsafe { std::slice::from_raw_parts(ptr as *const u8, size as usize) };
let st = std::string::String::from_utf8_lossy(slice).into_owned();
return Box::into_raw(Box::new(blake3::Hasher::new_derive_key(&st)));
}
// Deletes an existing a new instance of Blake3 Hasher
#[no_mangle]
pub extern "C" fn blake3_delete(hasher: *mut blake3::Hasher) {
unsafe { drop(Box::from_raw(hasher)); }
}