psa_drv_se_mac_t
crypto_se_driver.h
size_t size_t psa_drv_se_mac_t::private_context_size private_context_size psa_drv_se_mac_t::private_context_size

The size in bytes of the hardware-specific secure element MAC context structure

psa_drv_se_mac_setup_t psa_drv_se_mac_setup_t psa_drv_se_mac_t::private_p_setup private_p_setup psa_drv_se_mac_t::private_p_setup

Function that performs a MAC setup operation

psa_drv_se_mac_update_t psa_drv_se_mac_update_t psa_drv_se_mac_t::private_p_update private_p_update psa_drv_se_mac_t::private_p_update

Function that performs a MAC update operation

psa_drv_se_mac_finish_t psa_drv_se_mac_finish_t psa_drv_se_mac_t::private_p_finish private_p_finish psa_drv_se_mac_t::private_p_finish

Function that completes a MAC operation

psa_drv_se_mac_finish_verify_t psa_drv_se_mac_finish_verify_t psa_drv_se_mac_t::private_p_finish_verify private_p_finish_verify psa_drv_se_mac_t::private_p_finish_verify

Function that completes a MAC operation with a verify check

psa_drv_se_mac_abort_t psa_drv_se_mac_abort_t psa_drv_se_mac_t::private_p_abort private_p_abort psa_drv_se_mac_t::private_p_abort

Function that aborts a previously started MAC operation

psa_drv_se_mac_generate_t psa_drv_se_mac_generate_t psa_drv_se_mac_t::private_p_mac private_p_mac psa_drv_se_mac_t::private_p_mac

Function that performs a MAC operation in one call

psa_drv_se_mac_verify_t psa_drv_se_mac_verify_t psa_drv_se_mac_t::private_p_mac_verify private_p_mac_verify psa_drv_se_mac_t::private_p_mac_verify

Function that performs a MAC and verify operation in one call

A struct containing all of the function pointers needed to perform secure element MAC operations.

PSA Crypto API implementations should populate the table as appropriate upon startup.

If one of the functions is not implemented (such as `psa_drv_se_mac_generate_t`), it should be set to NULL.

Driver implementers should ensure that they implement all of the functions that make sense for their hardware, and that they provide a full solution (for example, if they support `p_setup`, they should also support `p_update` and at least one of `p_finish` or `p_finish_verify`).

psa_drv_se_context_t
psa_drv_se_mac_t
private_p_mac
private_p_mac_verify
private_p_setup
- psa_drv_se_mac_t
  private_context_size
- psa_drv_se_mac_t
  private_p_abort
- psa_drv_se_mac_t
  private_p_finish
- psa_drv_se_mac_t
  private_p_finish_verify
- psa_drv_se_mac_t
  private_p_mac
- psa_drv_se_mac_t
  private_p_mac_verify
- psa_drv_se_mac_t
  private_p_setup
- psa_drv_se_mac_t
  private_p_update