~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/zkwid

0
0
main
36 lines · 724 B Raw History
#![no_std]

use core::arch::wasm32::unreachable;

const BUF: usize = 4096;

static mut INPUT: [u8; BUF] = [0; BUF];
static mut OUTPUT: [u8; BUF] = [0; BUF];

#[link(wasm_import_module = "env")]
unsafe extern "C" {
    fn keygen(seed_ptr: *const u8, out_ptr: *mut u8) -> i32;
}

#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! {
    unreachable()
}

#[unsafe(no_mangle)]
pub extern "C" fn input_ptr() -> *mut u8 {
    (&raw mut INPUT).cast()
}

#[unsafe(no_mangle)]
pub extern "C" fn output_ptr() -> *mut u8 {
    (&raw mut OUTPUT).cast()
}

#[unsafe(no_mangle)]
pub extern "C" fn run(len: i32) -> i32 {
    if len != 32 || unsafe { keygen(input_ptr(), output_ptr()) } != 33 {
        unreachable()
    }
    33
}