Skip to content

Commit 977ef7e

Browse files
committed
crypto: Add test for match_cert_to_template()
Also make test_x509() parametrized and add test_x509_rsa() Signed-off-by: Anderson Toshiyuki Sasaki <[email protected]>
1 parent 03c7164 commit 977ef7e

File tree

5 files changed

+85
-4
lines changed

5 files changed

+85
-4
lines changed

.gitleaks.toml

+2
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,6 @@
77
[allowlist]
88
paths = [
99
'''test-data/test-rsa.pem''',
10+
'''keylime/test-data/test-rsa.pem''',
11+
'''keylime/test-data/prime256v1.pem''',
1012
]

keylime/src/crypto.rs

+29-4
Original file line numberDiff line numberDiff line change
@@ -1388,12 +1388,9 @@ mod tests {
13881388
assert_eq!(hex, "db9b1cd3262dee37756a09b9064973589847caa8e53d31a9d142ea2701b1b28abd97838bb9a27068ba305dc8d04a45a1fcf079de54d607666996b3cc54f6b67c");
13891389
}
13901390

1391-
#[test]
1392-
fn test_x509() {
1391+
fn test_x509(privkey: PKey<Private>, pubkey: PKey<Public>) {
13931392
let tempdir = tempfile::tempdir().unwrap(); //#[allow_ci]
13941393

1395-
let (_pubkey, privkey) = rsa_generate_pair(2048).unwrap(); //#[allow_ci]
1396-
13971394
let r = generate_x509(&privkey, "uuidA");
13981395
assert!(r.is_ok());
13991396
let cert_a = r.unwrap(); //#[allow_ci]
@@ -1466,4 +1463,32 @@ mod tests {
14661463
let r = generate_tls_context(&loaded_a, &privkey, loaded_list);
14671464
assert!(r.is_ok());
14681465
}
1466+
1467+
#[test]
1468+
fn test_x509_rsa() {
1469+
let (pubkey, privkey) = rsa_generate_pair(2048).unwrap(); //#[allow_ci]
1470+
1471+
test_x509(privkey, pubkey);
1472+
}
1473+
1474+
#[test]
1475+
fn test_match_cert_to_template() {
1476+
for (file_name, template) in
1477+
[("test-cert.pem", "H-1"), ("prime256v1.cert.pem", "H-5")]
1478+
{
1479+
let cert_path = Path::new(env!("CARGO_MANIFEST_DIR"))
1480+
.join("test-data")
1481+
.join(file_name);
1482+
1483+
let r = load_x509_pem(&cert_path);
1484+
assert!(r.is_ok());
1485+
1486+
let cert = r.unwrap(); //#[allow_ci]
1487+
1488+
let r = match_cert_to_template(&cert);
1489+
assert!(r.is_ok());
1490+
let s = r.unwrap(); //#[allow_ci]
1491+
assert_eq!(s, template);
1492+
}
1493+
}
14691494
}

keylime/test-data/prime256v1.cert.pem

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIFKDCCAxCgAwIBAgICEAIwDQYJKoZIhvcNAQEMBQAwWjELMAkGA1UEBhMCR0Ix
3+
EDAOBgNVBAgMB0VuZ2xhbmQxFjAUBgNVBAoMDUtleWxpbWUgVGVzdHMxITAfBgNV
4+
BAsMGEtleWxpbWUgVGVzdHMgSURldklEIElBSzAeFw0yNDAyMDkxNzA1NDNaFw0y
5+
NjExMDQxNzA1NDNaMIGjMQswCQYDVQQGEwJHQjEQMA4GA1UECAwHRW5nbGFuZDEV
6+
MBMGA1UEBwwMRGVmYXVsdCBDaXR5MRYwFAYDVQQKDA1LZXlsaW1lIFRlc3RzMSEw
7+
HwYDVQQLDBhLZXlsaW1lIFRlc3RzIElEZXZJRCBJQUsxEzARBgNVBAMMCnByaW1l
8+
MjU2djExGzAZBgkqhkiG9w0BCQEWDHByaW1lQDI1Ni52MTBZMBMGByqGSM49AgEG
9+
CCqGSM49AwEHA0IABP8NOjf+hsV1K4TS4BwiLYsUI6rfGp0gru1hXIztoNRtz8sR
10+
rSGD+pypc3pp++rsjO+QgtFpk/+Wt12ijWNslaujggF3MIIBczAJBgNVHRMEAjAA
11+
MBEGCWCGSAGG+EIBAQQEAwIGQDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBHZW5l
12+
cmF0ZWQgU2VydmVyIENlcnRpZmljYXRlMB0GA1UdDgQWBBTl0udpJzE+J2XwqSLa
13+
S6Aa1r3FHjBgBgNVHSMEWTBXgBTMmxEZjh+joMUGhuAc0t+rk343y6E7pDkwNzEL
14+
MAkGA1UEBhMCR0IxEDAOBgNVBAgMB0VuZ2xhbmQxFjAUBgNVBAoMDUtleWxpbWUg
15+
VGVzdHOCAhAAMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATB4
16+
BgNVHREEcTBvoG0GCCsGAQUFBwgEoGEwXwYFZ4EFAQIEVlNUAAAAAAAAAAAAAAAA
17+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
18+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMA0GCSqGSIb3DQEBDAUAA4ICAQCf4u72
19+
8q+ltmSAcuFSs0slyMdFCI0eRIxzzKxdJDtPgBgNFNZiGlAAaux17k9G5uuLnQ8V
20+
H/yL0n5CUkW3yNz/9YuT4fGFRoEuSS07SeGlqS5akIeaFFUEH0eO4YMhZ+3sSCZF
21+
0Glo6urZnT5uTTs9J4DGktRlxeSsANfaKnDb3PUxKgY62ve+F4BvslQK2qTsk1Ve
22+
vDipLAwvjSPAZug07y7NWCr7p/or5kQq6eV9IWfDI9xYcJNpDEuyYFojZ6+XTQQJ
23+
nxH/FY2vgjx24Vht+Pz16xSpzOpl/ZNPaCF5pybT91bjB6MyBdfbWrLMjxIDjtPK
24+
hOqdIDH9sqDDPHgWum6xdYv2RXVNHMLdFxzrvqzN1AInLaFBwgkyhh3nhqhsERAq
25+
tpDTnOeaIQXCaYezx0A4iKGq4GOssrJx+ebbpRUzpPLT1lAghlEMnRHjZzMAzuJ3
26+
r+rB9t1eyxKEQMWgC5qIW05ExeIpOn2a16YjkCgW1UUY+SkHpOm19GuGXgau/M3y
27+
h9RwO9YkDCTfK/O6JhG0QNUGjNBx49VSE/Z+0B5fdmhLDJwjN5ajO6hoy5n3NrEy
28+
L0VaXwhlOKMnc/C45pOfknz/3rHPv22dazLe5yKht1x6dOUGKmgP9H27naeHYEn8
29+
d5D/jJkoFFnifMJ8Tji1CsloIcNHnN381tgh2Q==
30+
-----END CERTIFICATE-----

keylime/test-data/prime256v1.pem

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN EC PRIVATE KEY-----
2+
MHcCAQEEICJWrrdTKyFA/pCrmbA9rPkmDz/WMBEmwqtxiLA2+8e3oAoGCCqGSM49
3+
AwEHoUQDQgAE/w06N/6GxXUrhNLgHCItixQjqt8anSCu7WFcjO2g1G3PyxGtIYP6
4+
nKlzemn76uyM75CC0WmT/5a3XaKNY2yVqw==
5+
-----END EC PRIVATE KEY-----

keylime/test-data/test-cert.pem

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDBTCCAe2gAwIBAgIUMdvVLurhVJw+zgZU+tDkLs5Gzo0wDQYJKoZIhvcNAQEL
3+
BQAwEjEQMA4GA1UEAwwHa2V5bGltZTAeFw0yMjAxMjYxNjM3NTRaFw0yMzAxMjYx
4+
NjM3NTRaMBIxEDAOBgNVBAMMB2tleWxpbWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB
5+
DwAwggEKAoIBAQDtx7FvpgAvcF46+UwVoETA+KmWrzPtpzai8BTmF4oOOX3GXMtp
6+
vtjDFCYVvmbUWeQN8LqMBKoJ0O9mzB82FtXZAggSMoIy8Gimcq0TqSNCWFRs61Ho
7+
KlkeJk5gcmgG1DiMzQ6Cp+A71aKrgheaxe4t44KkP6YldF6UAWduzUL3oJQ7QsQj
8+
IWA5i0fZu+ZyTqImo9NzN20KqMCawtvCXjwUmA4qVPGgne6S0GggCnTdd7LAb15/
9+
XPexmu+OWMH8pcfzp4wTlqar/cfJpKnb5aaemOzwwIhEMfp4gTfXyVKMP+3qCp77
10+
KwbUyXDIMXBWssig85z7aGwVUmA00rQz5REfAgMBAAGjUzBRMB0GA1UdDgQWBBTw
11+
nW9LUu8SeBOQJcL0MHkxxiMhejAfBgNVHSMEGDAWgBTwnW9LUu8SeBOQJcL0MHkx
12+
xiMhejAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB7DSJa3I75
13+
e4Zgdmvzt9CUqvgxTUb2gzevXBk3QZclBogNXDoQNYYm1eifZ8PGNj14kDBwPWQi
14+
rt0hB99O0eety5qUj7ro8lRzd7uZ/TrDGyt/mUJt05DU4zeH9mLLspQFfQqq18sO
15+
5ytnqfrLANV+a8WUgqj/e12pkIvPfzlm8UUKW8qniEdiyVvh1MW8lmnJnlGk0AJn
16+
fpdJO1jc+1c+MTngHN/K81e8Irn+Z9pR6xOmGpZdypnQfLJpHzCyE5vpLQEVxd28
17+
3kts+VSvxSz1kaKI15mZHykWZ+L1DGYRG9Oopz49uPb9VjqUrSiWjc2lviLbEPeb
18+
pJmGJUTwt5ea
19+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)