diff --git a/tests/compression.rs b/tests/compression.rs index 933e86d..9d74495 100644 --- a/tests/compression.rs +++ b/tests/compression.rs @@ -1,6 +1,6 @@ #[cfg(test)] mod compression { - use cas_lib::compression::zstd::{self, compress, decompress}; + use cas_lib::compression::zstd::{compress, decompress}; #[test] pub fn test_compression() { diff --git a/tests/digital_signatures.rs b/tests/digital_signatures.rs index 212f290..6616dc3 100644 --- a/tests/digital_signatures.rs +++ b/tests/digital_signatures.rs @@ -1,6 +1,6 @@ #[cfg(test)] mod digital_signatures { - use cas_lib::{asymmetric::cas_rsa::CASRSA, digital_signature::{cas_digital_signature_rsa::{ED25519DigitalSignature, RSADigitalSignature, RSADigitalSignatureResult, SHAED25519DalekDigitalSignatureResult}, sha_256_ed25519::SHA256ED25519DigitalSignature, sha_256_rsa::SHA256RSADigitalSignature, sha_512_ed25519::SHA512ED25519DigitalSignature, sha_512_rsa::SHA512RSADigitalSignature}}; + use cas_lib::digital_signature::{cas_digital_signature_rsa::{ED25519DigitalSignature, RSADigitalSignature, RSADigitalSignatureResult, SHAED25519DalekDigitalSignatureResult}, sha_256_ed25519::SHA256ED25519DigitalSignature, sha_256_rsa::SHA256RSADigitalSignature, sha_512_ed25519::SHA512ED25519DigitalSignature, sha_512_rsa::SHA512RSADigitalSignature}; #[test] pub fn ed25519_sha_512_digital_signature_verify() { diff --git a/tests/hybrid.rs b/tests/hybrid.rs new file mode 100644 index 0000000..0c56fd3 --- /dev/null +++ b/tests/hybrid.rs @@ -0,0 +1,38 @@ +#[cfg(test)] +mod hybrid { + use std::path::Path; + + use cas_lib::hybrid::{cas_hybrid::CASHybrid, hpke::CASHPKE}; + + + #[test] + pub fn test_generate_key_pair() { + let (private_key, public_key, info_str) = CASHPKE::generate_key_pair(); + assert!(!private_key.is_empty()); + assert!(!public_key.is_empty()); + assert!(!info_str.is_empty()); + } + + #[test] + pub fn encrypt_hpke() { + let path = Path::new("tests/test.docx"); + let file_bytes: Vec = std::fs::read(path).unwrap(); + + let (_private_key, public_key, info_str) = CASHPKE::generate_key_pair(); + let (encapped_key, ciphertext, tag) = CASHPKE::encrypt(file_bytes.clone(), public_key, info_str); + assert!(!encapped_key.is_empty()); + assert!(!ciphertext.is_empty()); + assert!(!tag.is_empty()); + assert_ne!(file_bytes, ciphertext); + } + + #[test] + pub fn decrypt_hpke() { + let path = Path::new("tests/test.docx"); + let file_bytes: Vec = std::fs::read(path).unwrap(); + let (private_key, public_key, info_str) = CASHPKE::generate_key_pair(); + let (encapped_key, ciphertext, tag) = CASHPKE::encrypt(file_bytes.clone(), public_key, info_str.clone()); + let decrypted_bytes = CASHPKE::decrypt(ciphertext, private_key, encapped_key, tag, info_str); + assert_eq!(file_bytes, decrypted_bytes); + } +} \ No newline at end of file diff --git a/tests/message.rs b/tests/message.rs new file mode 100644 index 0000000..3107df1 --- /dev/null +++ b/tests/message.rs @@ -0,0 +1,22 @@ +#[cfg(test)] +mod message { + use cas_lib::message::{cas_hmac::CASHMAC, hmac::HMAC}; + + #[test] + pub fn hmac_sign() { + let key = vec![1, 2, 3, 4, 5]; + let message = vec![6, 7, 8, 9, 10]; + // Replace `ConcreteHmacType` with the actual struct that implements CASHMAC + let signature = HMAC::sign(key.clone(), message.clone()); + assert!(!signature.is_empty()); + } + + #[test] + pub fn hmac_verify() { + let key = vec![1, 2, 3, 4, 5]; + let message = vec![6, 7, 8, 9, 10]; + let signature = HMAC::sign(key.clone(), message.clone()); + let is_valid = HMAC::verify(key, message, signature); + assert!(is_valid); + } +} \ No newline at end of file