MessageSignatureRes

Trait MessageSignatureRes 

Source
pub trait MessageSignatureRes {
    type Error;

    // Required methods
    fn set_message_signature<T, B>(
        &mut self,
        signature_params: &HttpSignatureParams,
        signing_key: &T,
        signature_name: Option<&str>,
        req_for_param: Option<&Request<B>>,
    ) -> impl Future<Output = Result<(), Self::Error>> + Send
       where Self: Sized,
             T: SigningKey + Sync,
             B: Sync;
    fn set_message_signatures<T, B>(
        &mut self,
        params_key_name: &[(&HttpSignatureParams, &T, Option<&str>)],
        req_for_param: Option<&Request<B>>,
    ) -> impl Future<Output = Result<(), Self::Error>> + Send
       where Self: Sized,
             T: SigningKey + Sync,
             B: Sync;
    fn verify_message_signature<T, B>(
        &self,
        verifying_key: &T,
        key_id: Option<&str>,
        req_for_param: Option<&Request<B>>,
    ) -> impl Future<Output = Result<String, Self::Error>> + Send
       where Self: Sized,
             T: VerifyingKey + Sync,
             B: Sync;
    fn verify_message_signatures<T, B>(
        &self,
        key_and_id: &[(&T, Option<&str>)],
        req_for_param: Option<&Request<B>>,
    ) -> impl Future<Output = Result<Vec<Result<String, Self::Error>>, Self::Error>> + Send
       where Self: Sized,
             T: VerifyingKey + Sync,
             B: Sync;
    fn extract_signatures<B>(
        &self,
        req_for_param: Option<&Request<B>>,
    ) -> Result<IndexMap<String, (HttpSignatureBase, HttpSignatureHeaders)>, Self::Error>;
}
Expand description

A trait about http message signature for response

Required Associated Types§

Required Methods§

Source

fn set_message_signature<T, B>( &mut self, signature_params: &HttpSignatureParams, signing_key: &T, signature_name: Option<&str>, req_for_param: Option<&Request<B>>, ) -> impl Future<Output = Result<(), Self::Error>> + Send
where Self: Sized, T: SigningKey + Sync, B: Sync,

Set the http message signature from given http signature params and signing key

Source

fn set_message_signatures<T, B>( &mut self, params_key_name: &[(&HttpSignatureParams, &T, Option<&str>)], req_for_param: Option<&Request<B>>, ) -> impl Future<Output = Result<(), Self::Error>> + Send
where Self: Sized, T: SigningKey + Sync, B: Sync,

Set the http message signatures from given tuples of (http signature params, signing key, name)

Source

fn verify_message_signature<T, B>( &self, verifying_key: &T, key_id: Option<&str>, req_for_param: Option<&Request<B>>, ) -> impl Future<Output = Result<String, Self::Error>> + Send
where Self: Sized, T: VerifyingKey + Sync, B: Sync,

Verify the http message signature with given verifying key if the request has signature and signature-input headers

Source

fn verify_message_signatures<T, B>( &self, key_and_id: &[(&T, Option<&str>)], req_for_param: Option<&Request<B>>, ) -> impl Future<Output = Result<Vec<Result<String, Self::Error>>, Self::Error>> + Send
where Self: Sized, T: VerifyingKey + Sync, B: Sync,

Verify multiple signatures at once

Source

fn extract_signatures<B>( &self, req_for_param: Option<&Request<B>>, ) -> Result<IndexMap<String, (HttpSignatureBase, HttpSignatureHeaders)>, Self::Error>

Extract all signature bases contained in the request headers

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<D> MessageSignatureRes for Response<D>
where D: Send + Body + Sync,

Source§

async fn set_message_signature<T, B>( &mut self, signature_params: &HttpSignatureParams, signing_key: &T, signature_name: Option<&str>, req_for_param: Option<&Request<B>>, ) -> Result<(), Self::Error>
where Self: Sized, T: SigningKey + Sync, B: Sync,

Set the http message signature from given http signature params and signing key

Source§

async fn verify_message_signature<T, B>( &self, verifying_key: &T, key_id: Option<&str>, req_for_param: Option<&Request<B>>, ) -> Result<String, Self::Error>
where Self: Sized, T: VerifyingKey + Sync, B: Sync,

Verify the http message signature with given verifying key if the response has signature and signature-input headers Return Ok(()) if the signature is valid. If invalid for the given key or error occurs (like the case where the request does not have signature and/or signature-input headers), return Err. If key_id is given, it is used to match the key id in signature params

Source§

fn extract_signatures<B>( &self, req_for_param: Option<&Request<B>>, ) -> Result<IndexMap<String, (HttpSignatureBase, HttpSignatureHeaders)>, Self::Error>

Extract all signature bases contained in the response headers

Source§

type Error = HyperSigError

Source§

async fn set_message_signatures<T, B>( &mut self, params_key_name: &[(&HttpSignatureParams, &T, Option<&str>)], req_for_param: Option<&Request<B>>, ) -> Result<(), Self::Error>
where Self: Sized, T: SigningKey + Sync,

Source§

async fn verify_message_signatures<T, B>( &self, key_and_id: &[(&T, Option<&str>)], req_for_param: Option<&Request<B>>, ) -> Result<Vec<Result<String, Self::Error>>, Self::Error>
where Self: Sized, T: VerifyingKey + Sync,

Implementors§