hsh 0.0.8

Quantum-Resistant Cryptographic Hash Library for Password Encryption and Verification in Rust.
Documentation
// Copyright © 2023-2024 Hash (HSH) library. All rights reserved.
// SPDX-License-Identifier: Apache-2.0 OR MIT

#[cfg(test)]
mod tests {
    use hsh::models::hash_algorithm::HashingAlgorithm;

    #[test]
    fn test_hash_password_success() {
        let password = "secure_password";
        let salt = "random_salt";

        let result = hsh::algorithms::scrypt::Scrypt::hash_password(
            password, salt,
        );
        assert!(result.is_ok());
    }

    #[test]
    fn test_same_salt_and_password_produce_same_hash() {
        let password = "password123";
        let salt = "salt123";

        let hash1_result =
            hsh::algorithms::scrypt::Scrypt::hash_password(
                password, salt,
            )
            .unwrap();
        let hash2_result =
            hsh::algorithms::scrypt::Scrypt::hash_password(
                password, salt,
            )
            .unwrap();

        assert_eq!(hash1_result, hash2_result);
    }

    #[test]
    fn test_different_salts_produce_different_hashes() {
        let password = "password123";
        let salt1 = "salt123";
        let salt2 = "another_salt123";

        let hash1_result =
            hsh::algorithms::scrypt::Scrypt::hash_password(
                password, salt1,
            )
            .unwrap();
        let hash2_result =
            hsh::algorithms::scrypt::Scrypt::hash_password(
                password, salt2,
            )
            .unwrap();

        assert_ne!(hash1_result, hash2_result);
    }

    #[test]
    fn test_different_passwords_produce_different_hashes() {
        let password1 = "password123";
        let password2 = "other_password123";
        let salt = "salt123";

        let hash1_result =
            hsh::algorithms::scrypt::Scrypt::hash_password(
                password1, salt,
            )
            .unwrap();
        let hash2_result =
            hsh::algorithms::scrypt::Scrypt::hash_password(
                password2, salt,
            )
            .unwrap();

        assert_ne!(hash1_result, hash2_result);
    }
}