Skip to content

Commit d19b07b

Browse files
authored
Merge pull request #115 from NLnetLabs/router-cert-issuer-check
Properly check the issuer in router certificates.
2 parents bcface3 + 4cb1288 commit d19b07b

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/cert/mod.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ impl Cert {
422422
}
423423

424424
// 4.4 Issuer: must have certain format.
425-
Name::validate_router(&self.issuer, strict)?;
425+
Name::validate_rpki(&self.issuer, strict)?;
426426

427427
// 4.5 Subject: same as 4.4.
428428
Name::validate_router(&self.subject, strict)?;
@@ -1310,6 +1310,7 @@ impl TbsCert {
13101310
let subject = Name::take_from(cons)?;
13111311
let subject_public_key_info = PublicKey::take_from(cons)?;
13121312

1313+
13131314
// issuerUniqueID and subjectUniqueID must not be present in
13141315
// resource certificates. So extension is next.
13151316

@@ -1945,15 +1946,15 @@ where F: FnMut(Bytes) -> Result<T, E> {
19451946
let uri = Ia5String::from_content(content)?;
19461947
if let Ok(uri) = op(uri.into_bytes()) {
19471948
if res.is_some() {
1948-
return Err(decode::Malformed.into())
1949+
xerr!(return Err(decode::Malformed.into()))
19491950
}
19501951
res = Some(uri)
19511952
}
19521953
Ok(())
19531954
})? {}
19541955
match res {
19551956
Some(res) => Ok(res),
1956-
None => Err(decode::Malformed.into())
1957+
None => xerr!(Err(decode::Malformed.into()))
19571958
}
19581959
}
19591960

@@ -2188,12 +2189,21 @@ mod test {
21882189
use super::*;
21892190

21902191
#[test]
2191-
fn decode_certs() {
2192+
fn decode_and_inspect_certs() {
21922193
Cert::decode(
21932194
include_bytes!("../../test-data/ta.cer").as_ref()
2195+
).unwrap().inspect_ta_at(
2196+
true, Time::utc(2020, 11, 01, 12, 00, 00)
21942197
).unwrap();
21952198
Cert::decode(
21962199
include_bytes!("../../test-data/ca1.cer").as_ref()
2200+
).unwrap().inspect_ca_at(
2201+
true, Time::utc(2020, 05, 01, 12, 00, 00)
2202+
).unwrap();
2203+
Cert::decode(
2204+
include_bytes!("../../test-data/router.cer").as_ref()
2205+
).unwrap().inspect_router_at(
2206+
true, Time::utc(2020, 11, 01, 12, 00, 00)
21972207
).unwrap();
21982208
}
21992209

test-data/router.cer

1.04 KB
Binary file not shown.

0 commit comments

Comments
 (0)