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: 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]