Functions | |
void | fsl_shw_acco_init (fsl_shw_acco_t *auth_object, fsl_shw_acc_mode_t mode) |
void | fsl_shw_acco_set_flags (fsl_shw_acco_t *auth_object, uint32_t flags) |
void | fsl_shw_acco_clear_flags (fsl_shw_acco_t *auth_object, uint32_t flags) |
void | fsl_shw_acco_set_ccm (fsl_shw_acco_t *auth_object, fsl_shw_key_alg_t algorithm, const uint8_t *ctr, uint8_t mac_length) |
void | fsl_shw_ccm_nist_format_ctr_and_iv (fsl_shw_acco_t *auth_object, uint8_t t_length, uint32_t ad_length, uint8_t q_length, const uint8_t *n, uint32_t q) |
void | fsl_shw_ccm_nist_update_ctr_and_iv (fsl_shw_acco_t *auth_object, const uint8_t *n, uint32_t q) |
These functions operate on a fsl_shw_acco_t. Their purpose is to set flags, fields, etc., in order to control the operation of fsl_shw_gen_encrypt() and fsl_shw_auth_decrypt().
void fsl_shw_acco_clear_flags | ( | fsl_shw_acco_t * | auth_object, | |
uint32_t | flags | |||
) |
Clear some flags in a Authentication-Cipher Context Object.
Turns off the flags specified in flags. Other flags are untouched.
auth_object | Pointer to object to operate on. | |
flags | The flags to reset (one or more from fsl_shw_auth_ctx_flags_t ORed together). |
void fsl_shw_acco_init | ( | fsl_shw_acco_t * | auth_object, | |
fsl_shw_acc_mode_t | mode | |||
) |
Initialize a Authentication-Cipher Context.
auth_object | Pointer to object to operate on. | |
mode | The mode for this object (only FSL_ACC_MODE_CCM supported). |
void fsl_shw_acco_set_ccm | ( | fsl_shw_acco_t * | auth_object, | |
fsl_shw_key_alg_t | algorithm, | |||
const uint8_t * | ctr, | |||
uint8_t | mac_length | |||
) |
Set up the Authentication-Cipher Object for CCM mode.
This will set the auth_object for CCM mode and save the ctr, and mac_length. This function can be called instead of fsl_shw_acco_init().
The parameter ctr is Counter Block 0, (counter value 0), which is for the MAC.
auth_object | Pointer to object to operate on. | |
algorithm | Cipher algorithm. Only AES is supported. | |
ctr | The initial counter value. | |
mac_length | The number of octets used for the MAC. Valid values are 4, 6, 8, 10, 12, 14, and 16. |
void fsl_shw_acco_set_flags | ( | fsl_shw_acco_t * | auth_object, | |
uint32_t | flags | |||
) |
Set the flags for a Authentication-Cipher Context.
Turns on the flags specified in flags. Other flags are untouched.
auth_object | Pointer to object to operate on. | |
flags | The flags to set (one or more from fsl_shw_auth_ctx_flags_t ORed together). |
void fsl_shw_ccm_nist_format_ctr_and_iv | ( | fsl_shw_acco_t * | auth_object, | |
uint8_t | t_length, | |||
uint32_t | ad_length, | |||
uint8_t | q_length, | |||
const uint8_t * | n, | |||
uint32_t | q | |||
) |
Format the First Block (IV) & Initial Counter Value per NIST CCM.
This function will also set the IV and CTR values per Appendix A of NIST Special Publication 800-38C (May 2004). It will also perform the fsl_shw_acco_set_ccm() operation with information derived from this set of parameters.
Note this function assumes the algorithm is AES. It initializes the auth_object by setting the mode to FSL_ACC_MODE_CCM and setting the flags to be FSL_ACCO_NIST_CCM.
auth_object | Pointer to object to operate on. | |
t_length | The number of octets used for the MAC. Valid values are 4, 6, 8, 10, 12, 14, and 16. | |
ad_length | Number of octets of Associated Data (may be zero). | |
q_length | A value for the size of the length of q field. Valid values are 1-8. | |
n | The Nonce (packet number or other changing value). Must be (15 - q_length) octets long. | |
q | The value of Q (size of the payload in octets). |
void fsl_shw_ccm_nist_update_ctr_and_iv | ( | fsl_shw_acco_t * | auth_object, | |
const uint8_t * | n, | |||
uint32_t | q | |||
) |
Update the First Block (IV) & Initial Counter Value per NIST CCM.
This function will set the IV and CTR values per Appendix A of NIST Special Publication 800-38C (May 2004).
Note this function assumes that fsl_shw_ccm_nist_format_ctr_and_iv() has previously been called on the auth_object.
auth_object | Pointer to object to operate on. | |
n | The Nonce (packet number or other changing value). Must be (15 - q_length) octets long. | |
q | The value of Q (size of the payload in octets). |
© Freescale Semiconductor, Inc., 2007.
All rights reserved. Freescale Confidential Proprietary NDA Required |
![]() |