run tree from tal pass
This commit is contained in:
@@ -3,8 +3,9 @@ use url::Url;
|
||||
use crate::data_model::ta::{TrustAnchor, TrustAnchorError};
|
||||
use crate::data_model::tal::{Tal, TalDecodeError};
|
||||
use crate::sync::rrdp::Fetcher;
|
||||
use crate::validation::ca_instance::{CaInstanceUris, CaInstanceUrisError, ca_instance_uris_from_ca_certificate};
|
||||
use crate::validation::objects::IssuerCaCertificateResolver;
|
||||
use crate::validation::ca_instance::{
|
||||
CaInstanceUris, CaInstanceUrisError, ca_instance_uris_from_ca_certificate,
|
||||
};
|
||||
use crate::validation::run::{RunError, RunOutput, run_publication_point_once};
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
@@ -82,14 +83,14 @@ pub fn discover_root_ca_instance_from_tal(
|
||||
}
|
||||
};
|
||||
|
||||
let ca_instance = match ca_instance_uris_from_ca_certificate(&trust_anchor.ta_certificate.rc_ca)
|
||||
{
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
last_err = Some(format!("CA instance discovery failed: {e}"));
|
||||
continue;
|
||||
}
|
||||
};
|
||||
let ca_instance =
|
||||
match ca_instance_uris_from_ca_certificate(&trust_anchor.ta_certificate.rc_ca) {
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
last_err = Some(format!("CA instance discovery failed: {e}"));
|
||||
continue;
|
||||
}
|
||||
};
|
||||
|
||||
return Ok(DiscoveredRootCaInstance {
|
||||
tal_url,
|
||||
@@ -98,9 +99,9 @@ pub fn discover_root_ca_instance_from_tal(
|
||||
});
|
||||
}
|
||||
|
||||
Err(FromTalError::TaFetch(
|
||||
last_err.unwrap_or_else(|| "unknown TA candidate error".to_string()),
|
||||
))
|
||||
Err(FromTalError::TaFetch(last_err.unwrap_or_else(|| {
|
||||
"unknown TA candidate error".to_string()
|
||||
})))
|
||||
}
|
||||
|
||||
pub fn discover_root_ca_instance_from_tal_and_ta_der(
|
||||
@@ -124,7 +125,6 @@ pub fn run_root_from_tal_url_once(
|
||||
tal_url: &str,
|
||||
http_fetcher: &dyn Fetcher,
|
||||
rsync_fetcher: &dyn crate::fetch::rsync::RsyncFetcher,
|
||||
issuer_resolver: &dyn IssuerCaCertificateResolver,
|
||||
validation_time: time::OffsetDateTime,
|
||||
) -> Result<RunFromTalOutput, FromTalError> {
|
||||
let discovery = discover_root_ca_instance_from_tal_url(http_fetcher, tal_url)?;
|
||||
@@ -138,7 +138,24 @@ pub fn run_root_from_tal_url_once(
|
||||
&discovery.ca_instance.publication_point_rsync_uri,
|
||||
http_fetcher,
|
||||
rsync_fetcher,
|
||||
issuer_resolver,
|
||||
&discovery.trust_anchor.ta_certificate.raw_der,
|
||||
None,
|
||||
discovery
|
||||
.trust_anchor
|
||||
.ta_certificate
|
||||
.rc_ca
|
||||
.tbs
|
||||
.extensions
|
||||
.ip_resources
|
||||
.as_ref(),
|
||||
discovery
|
||||
.trust_anchor
|
||||
.ta_certificate
|
||||
.rc_ca
|
||||
.tbs
|
||||
.extensions
|
||||
.as_resources
|
||||
.as_ref(),
|
||||
validation_time,
|
||||
)?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user