From 19f402076cc12b984dd9f73de533cd7f94e0f55d Mon Sep 17 00:00:00 2001 From: Andrew DiZenzo Date: Thu, 4 Jun 2026 05:09:34 +0000 Subject: [PATCH] fix(crypto): dispatch getFips callable exports --- crates/perry-stdlib/src/crypto/random.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/perry-stdlib/src/crypto/random.rs b/crates/perry-stdlib/src/crypto/random.rs index 83c4d78fc..d43f2c768 100644 --- a/crates/perry-stdlib/src/crypto/random.rs +++ b/crates/perry-stdlib/src/crypto/random.rs @@ -320,6 +320,7 @@ pub unsafe extern "C" fn js_crypto_native_dispatch( "generatePrime" | "generatePrimeSync" => js_crypto_generate_prime_sync(arg(0), arg(1)), "checkPrime" if args_len >= 3 => js_crypto_check_prime_async(arg(0), arg(1), arg(2)), "checkPrime" | "checkPrimeSync" => js_crypto_check_prime_sync(arg(0), arg(1)), + "getFips" => 0.0, "setFips" => undefined, "secureHeapUsed" => pointer_value(js_crypto_secure_heap_used() as *mut u8), "hkdf" => js_crypto_hkdf_async_alg( @@ -630,6 +631,15 @@ mod tests { } } + #[test] + fn crypto_native_dispatch_get_fips_matches_default_node_mode() { + let method = b"getFips"; + let result = unsafe { + js_crypto_native_dispatch(method.as_ptr(), method.len(), std::ptr::null(), 0) + }; + assert_eq!(result.to_bits(), 0.0f64.to_bits()); + } + #[test] fn random_fill_sync_native_uint8_view_preserves_metadata() { let owner = perry_runtime::native_arena::js_native_arena_alloc(96);