Skip to content

Commit 2af1598

Browse files
committed
Add and update tests
1 parent 1f14acc commit 2af1598

File tree

1 file changed

+36
-2
lines changed

1 file changed

+36
-2
lines changed

src/lib.rs

+36-2
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,44 @@ pub fn derive_lafs_mutable(private_key_pem: &str, format: &str) -> String {
101101

102102
#[cfg(test)]
103103
mod tests {
104+
use super::*;
105+
use rsa::pkcs1::EncodeRsaPrivateKey;
106+
use rsa::pkcs8::LineEnding;
104107
use serde_yaml;
105108

109+
fn generate_rsa_private_key() -> RsaPrivateKey {
110+
let mut rng = rand::thread_rng();
111+
RsaPrivateKey::new(&mut rng, 2048).expect("failed to generate RSA private key")
112+
}
113+
114+
#[test]
115+
fn test_derive_lafs_mutable_from_pkcs1() {
116+
let private_key = generate_rsa_private_key();
117+
let pem_pkcs1 = private_key.to_pkcs1_pem(LineEnding::LF).unwrap();
118+
let result = derive_lafs_mutable(&pem_pkcs1, "SSK");
119+
assert_eq!(result.starts_with("URI:SSK:"), true);
120+
}
121+
122+
#[test]
123+
fn test_derive_lafs_mutable_from_pkcs8() {
124+
let private_key = generate_rsa_private_key();
125+
let pem_pkcs8 = private_key.to_pkcs8_pem(LineEnding::LF).unwrap();
126+
let result = derive_lafs_mutable(&pem_pkcs8, "SSK");
127+
assert_eq!(result.starts_with("URI:SSK:"), true);
128+
}
129+
130+
#[test]
131+
fn test_derive_lafs_mutable_pkcs1_eq_pkcs8() {
132+
let private_key = generate_rsa_private_key();
133+
let pem_pkcs1 = private_key.to_pkcs1_pem(LineEnding::LF).unwrap();
134+
let pem_pkcs8 = private_key.to_pkcs8_pem(LineEnding::LF).unwrap();
135+
let result_pkcs1 = derive_lafs_mutable(&pem_pkcs1, "SSK");
136+
let result_pkcs8 = derive_lafs_mutable(&pem_pkcs8, "SSK");
137+
assert_eq!(result_pkcs1, result_pkcs8);
138+
}
139+
106140
#[test]
107-
fn test_derive_lafs_mutable() {
141+
fn test_derive_lafs_mutable_from_vectors() {
108142
let contents = std::fs::read_to_string("tests/vectors/lafs.yaml").unwrap();
109143
let data: serde_yaml::Value = serde_yaml::from_str(&contents).unwrap();
110144
for vector in data["vector"].as_sequence().unwrap() {
@@ -118,7 +152,7 @@ mod tests {
118152
"mdmf" => "MDMF",
119153
_ => panic!("Unknown format: {:?}", format),
120154
};
121-
let result = super::derive_lafs_mutable(key, format);
155+
let result = derive_lafs_mutable(key, format);
122156
let expected = vector["expected"].as_str().unwrap();
123157
assert_eq!(result, expected);
124158
}

0 commit comments

Comments
 (0)