From 9d5c1ed9b6fa72b773609b0e63c457c2dba83146 Mon Sep 17 00:00:00 2001 From: Mike Mulchrone Date: Sat, 10 Jan 2026 13:35:00 -0500 Subject: [PATCH] parameter hash for scrypt --- src/password_hashers/scrypt.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/password_hashers/scrypt.rs b/src/password_hashers/scrypt.rs index 94428ab..43af468 100644 --- a/src/password_hashers/scrypt.rs +++ b/src/password_hashers/scrypt.rs @@ -1,6 +1,26 @@ use std::ffi::{c_char, CStr, CString}; use cas_lib::password_hashers::{scrypt::CASScrypt}; + +#[no_mangle] +pub extern "C" fn scrypt_hash_with_parameters( + pass_to_hash: *const c_char, + cpu_memory_cost: u8, + block_size: u32, + parallelism: u32, +) -> *mut c_char { + let string_pass = unsafe { + assert!(!pass_to_hash.is_null()); + + CStr::from_ptr(pass_to_hash) + } + .to_str() + .unwrap() + .to_string(); + let new_hash = CASScrypt::hash_password_customized(string_pass, cpu_memory_cost, block_size, parallelism); + return CString::new(new_hash).unwrap().into_raw(); +} + #[no_mangle] pub extern "C" fn scrypt_hash(pass_to_hash: *const c_char) -> *mut c_char { let string_pass = unsafe {