|
4 | 4 | #[cfg(test)]
|
5 | 5 | mod tests {
|
6 | 6 | use kyberlib::{kyberlib_assert, kyberlib_max, kyberlib_min};
|
| 7 | + use rand_core::OsRng; |
7 | 8 | use rlg::{log::Log, log_format::LogFormat, log_level::LogLevel};
|
| 9 | + use kyberlib::{kyberlib_generate_key_pair, kyberlib_encrypt_message, kyberlib_decrypt_message}; |
| 10 | + use kyberlib::{KYBER_PUBLIC_KEY_BYTES, KYBER_SECRET_KEY_BYTES, KYBER_CIPHERTEXT_BYTES, KYBER_SHARED_SECRET_BYTES}; |
8 | 11 |
|
9 | 12 | #[test]
|
10 | 13 | fn test_kyberlib_assert() {
|
@@ -82,4 +85,54 @@ mod tests {
|
82 | 85 | assert_eq!(log.description, "Hello world");
|
83 | 86 | assert_eq!(log.format, LogFormat::JSON);
|
84 | 87 | }
|
| 88 | + |
| 89 | + #[test] |
| 90 | + fn test_generate_key_pair_macro() { |
| 91 | + let mut rng = OsRng; |
| 92 | + let mut public_key = [0u8; KYBER_PUBLIC_KEY_BYTES]; |
| 93 | + let mut secret_key = [0u8; KYBER_SECRET_KEY_BYTES]; |
| 94 | + |
| 95 | + kyberlib_generate_key_pair!(&mut public_key, &mut secret_key, &mut rng, None).unwrap(); |
| 96 | + |
| 97 | + assert_eq!(public_key.len(), KYBER_PUBLIC_KEY_BYTES); |
| 98 | + assert_eq!(secret_key.len(), KYBER_SECRET_KEY_BYTES); |
| 99 | + } |
| 100 | + |
| 101 | + #[test] |
| 102 | + fn test_encrypt_message_macro() { |
| 103 | + let mut rng = OsRng; |
| 104 | + let mut public_key = [0u8; KYBER_PUBLIC_KEY_BYTES]; |
| 105 | + let mut secret_key = [0u8; KYBER_SECRET_KEY_BYTES]; |
| 106 | + |
| 107 | + kyberlib_generate_key_pair!(&mut public_key, &mut secret_key, &mut rng, None).unwrap(); |
| 108 | + |
| 109 | + let mut ciphertext = [0u8; KYBER_CIPHERTEXT_BYTES]; |
| 110 | + let mut shared_secret1 = [0u8; KYBER_SHARED_SECRET_BYTES]; |
| 111 | + |
| 112 | + kyberlib_encrypt_message!(&mut ciphertext, &mut shared_secret1, &public_key, &mut rng, None).unwrap(); |
| 113 | + |
| 114 | + let mut shared_secret2 = [0u8; KYBER_SHARED_SECRET_BYTES]; |
| 115 | + kyberlib_decrypt_message!(&mut shared_secret2, &ciphertext, &secret_key); |
| 116 | + |
| 117 | + assert_eq!(shared_secret1, shared_secret2); |
| 118 | + } |
| 119 | + |
| 120 | + #[test] |
| 121 | + fn test_decrypt_message_macro() { |
| 122 | + let mut rng = OsRng; |
| 123 | + let mut public_key = [0u8; KYBER_PUBLIC_KEY_BYTES]; |
| 124 | + let mut secret_key = [0u8; KYBER_SECRET_KEY_BYTES]; |
| 125 | + |
| 126 | + kyberlib_generate_key_pair!(&mut public_key, &mut secret_key, &mut rng, None).unwrap(); |
| 127 | + |
| 128 | + let mut ciphertext = [0u8; KYBER_CIPHERTEXT_BYTES]; |
| 129 | + let mut shared_secret1 = [0u8; KYBER_SHARED_SECRET_BYTES]; |
| 130 | + |
| 131 | + kyberlib_encrypt_message!(&mut ciphertext, &mut shared_secret1, &public_key, &mut rng, None).unwrap(); |
| 132 | + |
| 133 | + let mut shared_secret2 = [0u8; KYBER_SHARED_SECRET_BYTES]; |
| 134 | + kyberlib_decrypt_message!(&mut shared_secret2, &ciphertext, &secret_key); |
| 135 | + |
| 136 | + assert_eq!(shared_secret1, shared_secret2); |
| 137 | + } |
85 | 138 | }
|
0 commit comments