Struct CoseAgent

Source
pub struct CoseAgent {
    pub header: CoseHeader,
    pub payload: Vec<u8>,
    pub pub_key: Vec<u8>,
    pub s_key: Vec<u8>,
    /* private fields */
}
Expand description

COSE recipient, signer or counter-signature structure.

Fields§

§header: CoseHeader

Header of the CoseAgent (recipient, signer or counter-signature).

§payload: Vec<u8>

Payload (signature, ciphertext or MAC).

§pub_key: Vec<u8>

Public key.

§s_key: Vec<u8>

Private/Symmetric key.

Implementations§

Source§

impl CoseAgent

Source

pub fn new() -> CoseAgent

Creates an empty CoseAgent structure.

Source

pub fn new_counter_sig() -> CoseAgent

Creates an empty CoseAgent structure for counter signatures.

Source

pub fn add_header(&mut self, header: CoseHeader)

Adds an header.

Source

pub fn key(&mut self, key: &CoseKey) -> CoseResult

Adds a cose-key.

Source

pub fn add_signature(&mut self, signature: Vec<u8>) -> CoseResult

Adds the counter signature to the CoseAgent.

Function to use when signature was produce externally to the module. This function is to use only in the context of counter signatures, not message recipients/signers.

Source

pub fn counter_sig( &self, external_aad: Option<Vec<u8>>, counter: &mut CoseAgent, ) -> CoseResult

Adds a counter signature to the signer/recipient.

Source

pub fn get_to_sign( &self, external_aad: Option<Vec<u8>>, counter: &mut CoseAgent, ) -> CoseResultWithRet<Vec<u8>>

Function to get the content to sign by the counter signature.

This function is meant to be called if the counter signature process needs to be external to this crate, like a timestamp authority.

Source

pub fn get_to_verify( &mut self, external_aad: Option<Vec<u8>>, counter: &usize, ) -> CoseResultWithRet<Vec<u8>>

Function to get the content to verify with the counter signature.

This function is meant to be called if the counter signature process needs to be external to this crate, like a timestamp authority.

Source

pub fn counters_verify( &mut self, external_aad: Option<Vec<u8>>, counter: usize, ) -> CoseResult

Function that verifies a given counter signature on the respective signer/recipient.

Source

pub fn add_counter_sig(&mut self, counter: CoseAgent) -> CoseResult

Function that adds a counter signature which was signed externally with the use of get_to_sign

Trait Implementations§

Source§

impl Clone for CoseAgent

Source§

fn clone(&self) -> CoseAgent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V