diff --git a/Cargo.lock b/Cargo.lock index 37de49b1..33aeb425 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -779,7 +779,7 @@ dependencies = [ [[package]] name = "krill" -version = "0.9.3-rc2" +version = "0.9.3-rc3" dependencies = [ "base64 0.13.0", "basic-cookies", @@ -1537,9 +1537,9 @@ dependencies = [ [[package]] name = "rpki" -version = "0.13.1-rc1" +version = "0.13.1-rc2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7c07c6977a509b11d01aae0d9dcf6e30f0dcfe46f9c3fcb4f47f7789a356e35" +checksum = "ec2e4c12ee5b7a4924508122b2020901f7a37c56fc68455c7860d8e96e9fc16d" dependencies = [ "base64 0.13.0", "bcder", diff --git a/Cargo.toml b/Cargo.toml index 51e3ff9d..bbaea7dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] # Note: some of these values are also used when building Debian packages below. name = "krill" -version = "0.9.3-rc2" +version = "0.9.3-rc3" edition = "2018" authors = [ "The NLnet Labs RPKI team " ] description = "Resource Public Key Infrastructure (RPKI) daemon" @@ -44,7 +44,7 @@ rand = "^0.8" regex = { version = "^1.4", optional = true, default_features = false, features = ["std"] } reqwest = { version = "0.11", features = ["json"] } rpassword = { version = "^5.0", optional = true } -rpki = { version = "0.13.1-rc1", features = [ "repository", "rrdp", "serde" ] } +rpki = { version = "0.13.1-rc2", features = [ "repository", "rrdp", "serde" ] } # rpki = { version = "0.13.1-rc1", git = "https://github.com/NLnetLabs/rpki-rs/", features = [ "repository", "rrdp", "serde" ] } scrypt = { version = "^0.6", optional = true, default-features = false } serde = { version = "^1.0", features = ["derive"] } diff --git a/Changelog.md b/Changelog.md index d96ddbb4..be591d07 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,7 +1,16 @@ # Change Log +<<<<<<< HEAD +## 0.9.3 (RC3) 'The Thundering Herd' + +RC3 fixes the following issues in RC2: +- Use the, now official, ASPA OID (#700) +- Re-issue ASPA objects on key rolls (717) + +======= ## 0.9.3 (RC2) 'The Thundering Herd' +>>>>>>> main This release adds the following features and fixes: - Prevent a thundering herd of hosted CAs publishing at the same time (#692) - Re-issue ROAs to ensure that short EE subject names are used (#700) diff --git a/src/commons/api/ca.rs b/src/commons/api/ca.rs index cc4d7924..094a1ed4 100644 --- a/src/commons/api/ca.rs +++ b/src/commons/api/ca.rs @@ -335,6 +335,18 @@ impl IssuedCert { pub fn replaces(&self) -> Option<&ReplacedObject> { self.replaces.as_ref() } + + /// Returns a (possibly empty) set of reduced applicable resources which is the intersection + /// of the encompassing resources and this certificate's current resources. + /// Returns None if the current resource set is not overclaiming and does not need to be + /// reduced. + pub fn reduced_applicable_resources(&self, encompassing: &ResourceSet) -> Option { + if encompassing.contains(&self.resource_set) { + None + } else { + Some(encompassing.intersection(&self.resource_set)) + } + } } impl PartialEq for IssuedCert { diff --git a/src/daemon/ca/aspa.rs b/src/daemon/ca/aspa.rs index af7cd93c..70d671f1 100644 --- a/src/daemon/ca/aspa.rs +++ b/src/daemon/ca/aspa.rs @@ -8,7 +8,6 @@ use std::{collections::HashMap, fmt::Debug}; -use chrono::Duration; use rpki::repository::{ aspa::{Aspa, AspaBuilder}, sigobj::SignedObjectBuilder, @@ -190,19 +189,24 @@ impl AspaObjects { Ok(object_updates) } - // Re-new ASPAs before they would expire + // Re-new ASPAs, if the renew_threshold is specified, then + // only objects which will expire before that time will be + // renewed. pub fn renew( &self, certified_key: &CertifiedKey, + renew_threshold: Option