123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- #ifndef CRYS_AESCCM_H
- #define CRYS_AESCCM_H
- #include "ssi_pal_types.h"
- #include "crys_error.h"
- #include "ssi_aes.h"
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #define CRYS_AESCCM_USER_CTX_SIZE_IN_WORDS (152/4)
- #define CRYS_AESCCM_KEY_SIZE_WORDS 8
- #define CRYS_AESCCM_NONCE_MIN_SIZE_BYTES 7
- #define CRYS_AESCCM_NONCE_MAX_SIZE_BYTES 13
- #define CRYS_AESCCM_MAC_MIN_SIZE_BYTES 4
- #define CRYS_AESCCM_MAC_MAX_SIZE_BYTES 16
- #define CRYS_AESCCM_STAR_NONCE_SIZE_BYTES 13
- #define CRYS_AESCCM_STAR_SOURCE_ADDRESS_SIZE_BYTES 8
- #define CRYS_AESCCM_MODE_CCM 0
- #define CRYS_AESCCM_MODE_STAR 1
- typedef enum {
-
- CRYS_AES_Key128BitSize = 0,
-
- CRYS_AES_Key192BitSize = 1,
-
- CRYS_AES_Key256BitSize = 2,
-
- CRYS_AES_Key512BitSize = 3,
-
- CRYS_AES_KeySizeNumOfOptions,
-
- CRYS_AES_KeySizeLast = 0x7FFFFFFF,
- }CRYS_AESCCM_KeySize_t;
- typedef uint8_t CRYS_AESCCM_Key_t[CRYS_AESCCM_KEY_SIZE_WORDS * sizeof(uint32_t)];
- typedef uint8_t CRYS_AESCCM_Mac_Res_t[SASI_AES_BLOCK_SIZE_IN_BYTES];
- typedef uint8_t CRYS_AESCCMStar_SourceAddress_t[CRYS_AESCCM_STAR_SOURCE_ADDRESS_SIZE_BYTES];
- typedef uint8_t CRYS_AESCCMStar_Nonce_t[CRYS_AESCCM_STAR_NONCE_SIZE_BYTES];
- typedef struct CRYS_AESCCM_UserContext_t
- {
-
- uint32_t buff[CRYS_AESCCM_USER_CTX_SIZE_IN_WORDS];
- }CRYS_AESCCM_UserContext_t;
- CRYSError_t CC_AESCCM_Init(
- CRYS_AESCCM_UserContext_t *ContextID_ptr,
- SaSiAesEncryptMode_t EncrDecrMode,
- CRYS_AESCCM_Key_t CCM_Key,
- CRYS_AESCCM_KeySize_t KeySizeId,
- uint32_t AdataSize,
- uint32_t TextSizeQ,
- uint8_t *N_ptr,
- uint8_t SizeOfN,
- uint8_t SizeOfT,
- uint32_t ccmMode
- );
- #define CRYS_AESCCM_Init(ContextID_ptr, EncrDecrMode, CCM_Key, KeySizeId, AdataSize, TextSizeQ, N_ptr, SizeOfN, SizeOfT) \
- CC_AESCCM_Init(ContextID_ptr, EncrDecrMode, CCM_Key, KeySizeId, AdataSize, TextSizeQ, N_ptr, SizeOfN, SizeOfT, CRYS_AESCCM_MODE_CCM)
- #define CRYS_AESCCMStar_Init(ContextID_ptr, EncrDecrMode, CCM_Key, KeySizeId, AdataSize, TextSizeQ, N_ptr, SizeOfN, SizeOfT) \
- CC_AESCCM_Init(ContextID_ptr, EncrDecrMode, CCM_Key, KeySizeId, AdataSize, TextSizeQ, N_ptr, SizeOfN, SizeOfT, CRYS_AESCCM_MODE_STAR)
- CRYSError_t CRYS_AESCCM_BlockAdata(
- CRYS_AESCCM_UserContext_t *ContextID_ptr,
- uint8_t *DataIn_ptr,
- uint32_t DataInSize
- );
- CRYSError_t CRYS_AESCCM_BlockTextData(
- CRYS_AESCCM_UserContext_t *ContextID_ptr,
- uint8_t *DataIn_ptr,
- uint32_t DataInSize,
- uint8_t *DataOut_ptr
- );
- CEXPORT_C CRYSError_t CRYS_AESCCM_Finish(
- CRYS_AESCCM_UserContext_t *ContextID_ptr,
- uint8_t *DataIn_ptr,
- uint32_t DataInSize,
- uint8_t *DataOut_ptr,
- CRYS_AESCCM_Mac_Res_t MacRes,
- uint8_t *SizeOfT
- );
- CIMPORT_C CRYSError_t CC_AESCCM(
- SaSiAesEncryptMode_t EncrDecrMode,
- CRYS_AESCCM_Key_t CCM_Key,
- CRYS_AESCCM_KeySize_t KeySizeId,
- uint8_t *N_ptr,
- uint8_t SizeOfN,
- uint8_t *ADataIn_ptr,
- uint32_t ADataInSize,
- uint8_t *TextDataIn_ptr,
- uint32_t TextDataInSize,
- uint8_t *TextDataOut_ptr,
- uint8_t SizeOfT,
- CRYS_AESCCM_Mac_Res_t Mac_Res,
- uint32_t ccmMode
- );
- #define CRYS_AESCCM(EncrDecrMode, CCM_Key, KeySizeId, N_ptr, SizeOfN, ADataIn_ptr, ADataInSize, TextDataIn_ptr, TextDataInSize, TextDataOut_ptr, SizeOfT, Mac_Res) \
- CC_AESCCM(EncrDecrMode, CCM_Key, KeySizeId, N_ptr, SizeOfN, ADataIn_ptr, ADataInSize, TextDataIn_ptr, TextDataInSize, TextDataOut_ptr, SizeOfT, Mac_Res, CRYS_AESCCM_MODE_CCM)
- #define CRYS_AESCCMStar(EncrDecrMode, CCM_Key, KeySizeId, N_ptr, SizeOfN, ADataIn_ptr, ADataInSize, TextDataIn_ptr, TextDataInSize, TextDataOut_ptr, SizeOfT, Mac_Res) \
- CC_AESCCM(EncrDecrMode, CCM_Key, KeySizeId, N_ptr, SizeOfN, ADataIn_ptr, ADataInSize, TextDataIn_ptr, TextDataInSize, TextDataOut_ptr, SizeOfT, Mac_Res, CRYS_AESCCM_MODE_STAR)
- CRYSError_t CRYS_AESCCMStar_NonceGenerate(
- CRYS_AESCCMStar_SourceAddress_t srcAddr,
- uint32_t FrameCounter,
- uint8_t SizeOfT,
- CRYS_AESCCMStar_Nonce_t nonce
- );
- #ifdef __cplusplus
- }
- #endif
- #endif
|