CoseSignCipher

Trait CoseSignCipher 

Source
pub trait CoseSignCipher: CoseCipher {
    // Required methods
    fn sign(
        key: &CoseKey,
        target: &[u8],
        unprotected_header: &Header,
        protected_header: &Header,
    ) -> Vec<u8> ;
    fn verify(
        key: &CoseKey,
        signature: &[u8],
        signed_data: &[u8],
        unprotected_header: &Header,
        protected_header: &ProtectedHeader,
        unprotected_signature_header: Option<&Header>,
        protected_signature_header: Option<&ProtectedHeader>,
    ) -> Result<(), CoseCipherError<Self::Error>>;
}
Expand description

Provides basic operations for signing and verifying COSE structures.

This will be used by sign_access_token and verify_access_token (as well as the equivalents for multiple recipients: sign_access_token_multiple and verify_access_token_multiple) to apply the corresponding cryptographic operations to the constructed token bytestring. The set_headers method can be used to set parameters this cipher requires to be set.

Required Methods§

Source

fn sign( key: &CoseKey, target: &[u8], unprotected_header: &Header, protected_header: &Header, ) -> Vec<u8>

Cryptographically signs the target value with the key and returns the signature.

Source

fn verify( key: &CoseKey, signature: &[u8], signed_data: &[u8], unprotected_header: &Header, protected_header: &ProtectedHeader, unprotected_signature_header: Option<&Header>, protected_signature_header: Option<&ProtectedHeader>, ) -> Result<(), CoseCipherError<Self::Error>>

Verifies the signature of the signed_data with the key.

Note that, for single recipients (i.e., CoseSign1), unprotected_signature_header and protected_signature_header will be None. For multiple recipients (i.e., CoseSign), unprotected_signature_header and protected_signature_header will be the headers of the individual signature for this recipient, whereas unprotected_header and protected_header will be the headers of the CoseSign structure as a whole.

§Errors

If the signature is invalid or does not belong to the signed_data.

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.

Implementors§