pub struct X509Source { /* private fields */ }
Expand description
Represents a source of X.509 SVIDs and X.509 bundles.
X509Source
implements the BundleSource
and SvidSource
traits.
The methods return cloned instances of the underlying objects.
Implementations§
Source§impl X509Source
impl X509Source
Sourcepub async fn default() -> Result<Arc<Self>, X509SourceError>
pub async fn default() -> Result<Arc<Self>, X509SourceError>
Builds a new X509Source
using a default WorkloadApiClient
and no SVID picker.
Since no SVID picker is provided, the get_svid
method will return the default SVID.
This method is asynchronous and may return an error if the initialization fails.
Sourcepub fn updated(&self) -> Receiver<()>
pub fn updated(&self) -> Receiver<()>
Returns a watch::Receiver<()>
that can be used to listen for notifications when the X509Source is updated.
§Example
``no_run let mut update_channel = source.updated(); // Get the watch receiver for the source
// Asynchronously handle updates in a loop tokio::spawn(async move { loop { match update_channel.changed().await { Ok() => { println!(“X509Source was updated!”); }, Err() => { println!(“Watch channel closed; exiting update loop”); break; } } } });
Sourcepub fn close(&self) -> Result<(), X509SourceError>
pub fn close(&self) -> Result<(), X509SourceError>
Closes the X509Source cancelling all spawned tasks.
Trait Implementations§
Source§impl BundleSource for X509Source
impl BundleSource for X509Source
Source§fn get_bundle_for_trust_domain(
&self,
trust_domain: &TrustDomain,
) -> Result<Option<Self::Item>, Box<dyn Error + Send + Sync + 'static>>
fn get_bundle_for_trust_domain( &self, trust_domain: &TrustDomain, ) -> Result<Option<Self::Item>, Box<dyn Error + Send + Sync + 'static>>
Retrieves the X.509 bundle for the given trust domain.
§Arguments
trust_domain
- The trust domain for which the X.509 bundle is to be retrieved.
§Returns
A Result
containing an Option<X509Bundle>
for the given trust domain. If the bundle is not found, returns Ok(None)
.
§Errors
Returns a boxed error if the source is closed or if there is an issue accessing the bundle.
Source§type Item = X509Bundle
type Item = X509Bundle
Source§impl Debug for X509Source
impl Debug for X509Source
Source§impl SvidSource for X509Source
impl SvidSource for X509Source
Source§fn get_svid(
&self,
) -> Result<Option<Self::Item>, Box<dyn Error + Send + Sync + 'static>>
fn get_svid( &self, ) -> Result<Option<Self::Item>, Box<dyn Error + Send + Sync + 'static>>
Retrieves the X.509 SVID from the source.
§Returns
An Result<Option<X509Svid>, Box<dyn Error + Send + Sync + 'static>>
containing the X.509 SVID if available.
Returns Ok(None)
if no SVID is found.
Returns an error if the source is closed or if there’s an issue fetching the SVID.
Auto Trait Implementations§
impl !Freeze for X509Source
impl !RefUnwindSafe for X509Source
impl Send for X509Source
impl Sync for X509Source
impl Unpin for X509Source
impl !UnwindSafe for X509Source
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request