From dd2e75a9bd31ccfb82a307fd87866b2980277dda Mon Sep 17 00:00:00 2001 From: Mike Mulchrone Date: Sat, 10 Jan 2026 13:28:41 -0500 Subject: [PATCH 1/2] bcrypt with parameters --- src/password_hashers/bcrypt.rs | 23 +++++++++++++++++++---- src/password_hashers/scrypt.rs | 6 +++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/password_hashers/bcrypt.rs b/src/password_hashers/bcrypt.rs index 532848a..ebe5fa0 100644 --- a/src/password_hashers/bcrypt.rs +++ b/src/password_hashers/bcrypt.rs @@ -1,7 +1,22 @@ use std::{ - ffi::{c_char, CStr, CString}, sync::mpsc, thread + ffi::{c_char, CStr, CString} }; -use cas_lib::password_hashers::{bcrypt::CASBCrypt, cas_password_hasher::CASPasswordHasher}; +use cas_lib::password_hashers::{bcrypt::CASBCrypt}; + +#[no_mangle] +pub extern "C" fn bcrypt_hash_with_parameters(pass_to_hash: *const c_char, cost: 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_hashed = CASBCrypt::hash_password_customized(string_pass, cost); + return CString::new(new_hashed).unwrap().into_raw(); +} + #[no_mangle] pub extern "C" fn bcrypt_hash(pass_to_hash: *const c_char) -> *mut c_char { @@ -13,7 +28,7 @@ pub extern "C" fn bcrypt_hash(pass_to_hash: *const c_char) -> *mut c_char { .to_str() .unwrap() .to_string(); - let new_hashed = ::hash_password(string_pass); + let new_hashed = CASBCrypt::hash_password(string_pass); return CString::new(new_hashed).unwrap().into_raw(); } @@ -48,7 +63,7 @@ pub extern "C" fn bcrypt_verify(pass: *const c_char, hash: *const c_char) -> boo .to_str() .unwrap() .to_string(); - return ::verify_password(string_hash, string_pass); + return CASBCrypt::verify_password(string_hash, string_pass); } #[test] diff --git a/src/password_hashers/scrypt.rs b/src/password_hashers/scrypt.rs index 0825991..94428ab 100644 --- a/src/password_hashers/scrypt.rs +++ b/src/password_hashers/scrypt.rs @@ -1,5 +1,5 @@ use std::ffi::{c_char, CStr, CString}; -use cas_lib::password_hashers::{cas_password_hasher::CASPasswordHasher, scrypt::CASScrypt}; +use cas_lib::password_hashers::{scrypt::CASScrypt}; #[no_mangle] pub extern "C" fn scrypt_hash(pass_to_hash: *const c_char) -> *mut c_char { @@ -11,7 +11,7 @@ pub extern "C" fn scrypt_hash(pass_to_hash: *const c_char) -> *mut c_char { .to_str() .unwrap() .to_string(); - let new_hash = ::hash_password(string_pass); + let new_hash = CASScrypt::hash_password(string_pass); return CString::new(new_hash).unwrap().into_raw(); } @@ -50,7 +50,7 @@ pub extern "C" fn scrypt_verify( .unwrap() .to_string(); - return ::verify_password(string_hash, string_pass); + return CASScrypt::verify_password(string_hash, string_pass); } #[test] From 686fc5fa8e238c782a05fe01a47fa81f94f6a3f8 Mon Sep 17 00:00:00 2001 From: Mike Mulchrone Date: Sat, 10 Jan 2026 13:31:48 -0500 Subject: [PATCH 2/2] renaming actions --- .github/workflows/linux-test-pr.yml | 2 +- .github/workflows/windows-test-pr.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linux-test-pr.yml b/.github/workflows/linux-test-pr.yml index 47768e2..1929bd9 100644 --- a/.github/workflows/linux-test-pr.yml +++ b/.github/workflows/linux-test-pr.yml @@ -1,4 +1,4 @@ -name: Rust +name: Linux PR Tests on: pull_request: diff --git a/.github/workflows/windows-test-pr.yml b/.github/workflows/windows-test-pr.yml index c80f09d..8129491 100644 --- a/.github/workflows/windows-test-pr.yml +++ b/.github/workflows/windows-test-pr.yml @@ -1,4 +1,4 @@ -name: Rust +name: Windows PR Tests on: pull_request: