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)); }
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…