pub struct AppCheckerSignature<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> { /* private fields */ }Expand description
Checker that validates a correct signature credential.
This checker provides the scaffolding on top of a hasher (&H) and a
verifier (&S) for a given TbfFooterV2CredentialsType.
This assumes the TbfFooterV2CredentialsType data format only contains the
signature (i.e. the data length of the credential in the TBF footer is the
same as SIGNATURE_LEN).
Implementations§
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
pub fn new( hasher: &'a H, verifier: &'a S, hash_buffer: &'static mut [u8; HASH_LEN], signature_buffer: &'static mut [u8; SIGNATURE_LEN], credential_type: TbfFooterV2CredentialsType, ) -> AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Trait Implementations§
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> AppCredentialsPolicy<'static> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> AppCredentialsPolicy<'static> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Source§fn require_credentials(&self) -> bool
fn require_credentials(&self) -> bool
Whether credentials are required or not. Read more
Source§fn check_credentials(
&self,
credentials: TbfFooterV2Credentials,
binary: &'static [u8],
) -> Result<(), (ErrorCode, TbfFooterV2Credentials, &'static [u8])>
fn check_credentials( &self, credentials: TbfFooterV2Credentials, binary: &'static [u8], ) -> Result<(), (ErrorCode, TbfFooterV2Credentials, &'static [u8])>
Check a particular credential. Read more
Source§fn set_client(&self, client: &'static dyn AppCredentialsPolicyClient<'static>)
fn set_client(&self, client: &'static dyn AppCredentialsPolicyClient<'static>)
Set the client which gets notified after the credential check completes.
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientData<HASH_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientData<HASH_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Source§fn add_mut_data_done(
&self,
_result: Result<(), ErrorCode>,
_data: SubSliceMut<'static, u8>,
)
fn add_mut_data_done( &self, _result: Result<(), ErrorCode>, _data: SubSliceMut<'static, u8>, )
Called when the data has been added to the digest. Read more
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientHash<HASH_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientHash<HASH_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientVerify<HASH_LEN, SIGNATURE_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientVerify<HASH_LEN, SIGNATURE_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientVerify<HASH_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> ClientVerify<HASH_LEN> for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Source§impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> SelectKeyClient for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S: SignatureVerify<'static, HASH_LEN, SIGNATURE_LEN> + SelectKey<'a>, H: DigestDataHash<'a, HASH_LEN>, const HASH_LEN: usize, const SIGNATURE_LEN: usize> SelectKeyClient for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Source§fn get_key_count_done(&self, count: usize)
fn get_key_count_done(&self, count: usize)
Called when the number of keys available is known.
Auto Trait Implementations§
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> !Freeze for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> !RefUnwindSafe for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> !Send for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> !Sync for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> !UnwindSafe for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> Unpin for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
impl<'a, S, H, const HASH_LEN: usize, const SIGNATURE_LEN: usize> UnsafeUnpin for AppCheckerSignature<'a, S, H, HASH_LEN, SIGNATURE_LEN>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more