@@ -109,6 +109,11 @@ pub(crate) struct RhtasArgs {
109109 #[arg(long)]
110110 fulcio_uri: Option<String>,
111111
112+ /// URI for the OIDC provider (used with Fulcio).
113+ /// Example: <https://oauth2.sigstore.dev/auth>
114+ #[arg(long)]
115+ oidc_uri: Option<String>,
116+
112117 /// Path to the new Ctlog target file
113118 #[arg(long = "set-ctlog-target")]
114119 ctlog_target: Option<PathBuf>,
@@ -677,6 +682,11 @@ impl RhtasArgs {
677682 start = None;
678683 }
679684
685+ let valid_for = Some(TimeRange {
686+ start: start.clone(),
687+ end: end.clone(),
688+ });
689+
680690 let mut certificates: Vec<X509Certificate> = Vec::new();
681691 for item in certificate_raw_bytes_vec {
682692 certificates.push(X509Certificate { raw_bytes: item });
@@ -689,7 +699,7 @@ impl RhtasArgs {
689699 }),
690700 uri: self.fulcio_uri.clone().unwrap(),
691701 cert_chain: Some(X509CertificateChain { certificates }),
692- valid_for: Some(TimeRange { start, end } ),
702+ valid_for: valid_for.clone( ),
693703 operator: String::new(),
694704 };
695705
@@ -701,6 +711,17 @@ impl RhtasArgs {
701711 eprintln!("Failed to set target: {e:?} in trust_bundle");
702712 }
703713 }
714+
715+ // Add OIDC URL to SigningConfig (OIDC is used with Fulcio for authentication)
716+ if let Some(ref oidc_uri) = self.oidc_uri {
717+ if let Err(e) = trust_bundle.add_oidc_url_to_signing_config(
718+ oidc_uri.clone(),
719+ valid_for,
720+ "sigstore.dev".to_string(),
721+ ) {
722+ eprintln!("Failed to add OIDC URL to signing_config: {e:?}");
723+ }
724+ }
704725 }
705726 Ok(())
706727 }
@@ -1089,14 +1110,15 @@ impl RhtasArgs {
10891110 || self.tsa_status.is_some())
10901111 {
10911112 return error::InvalidArgumentCombinationSnafu {
1092- msg: "--set-fulcio-target only accepts --fulcio-uri and --fulcio-status."
1113+ msg: "--set-fulcio-target only accepts --fulcio-uri, --fulcio-status, and --oidc-uri ."
10931114 .to_string(),
10941115 }
10951116 .fail();
10961117 }
10971118
10981119 if self.ctlog_target.is_some()
10991120 && (self.fulcio_uri.is_some()
1121+ || self.oidc_uri.is_some()
11001122 || self.rekor_uri.is_some()
11011123 || self.tsa_uri.is_some()
11021124 || self.fulcio_status.is_some()
@@ -1111,6 +1133,7 @@ impl RhtasArgs {
11111133
11121134 if self.rekor_target.is_some()
11131135 && (self.fulcio_uri.is_some()
1136+ || self.oidc_uri.is_some()
11141137 || self.ctlog_uri.is_some()
11151138 || self.tsa_uri.is_some()
11161139 || self.fulcio_status.is_some()
@@ -1125,6 +1148,7 @@ impl RhtasArgs {
11251148
11261149 if self.tsa_target.is_some()
11271150 && (self.fulcio_uri.is_some()
1151+ || self.oidc_uri.is_some()
11281152 || self.ctlog_uri.is_some()
11291153 || self.rekor_uri.is_some()
11301154 || self.fulcio_status.is_some()
@@ -1144,6 +1168,9 @@ impl RhtasArgs {
11441168 if self.fulcio_status.is_none() {
11451169 self.fulcio_status = Some(String::from("Active"));
11461170 }
1171+ if self.oidc_uri.is_none() {
1172+ self.oidc_uri = Some(String::from("https://oauth2.sigstore.dev/auth"));
1173+ }
11471174 }
11481175 if self.ctlog_target.is_some() {
11491176 if self.ctlog_uri.is_none() {
0 commit comments