123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- #ifndef HAL_AES_H_
- #define HAL_AES_H_
- #include "ZComDef.h"
- #define STATE_BLENGTH 16
- #define KEY_BLENGTH 16
- #define KEY_EXP_LENGTH 176
- #if ((defined SOFTWARE_AES) && (SOFTWARE_AES == TRUE)) && ((defined SW_AES_AND_KEY_EXP) && (SW_AES_AND_KEY_EXP == TRUE))
- #error "SOFTWARE_AES and SW_AES_AND_KEY_EXP cannot be both defined."
- #endif
- extern void HalAesInit( void );
- extern void AesLoadBlock( uint8 * );
- extern void AesStartBlock( uint8 *, uint8 * );
- extern void AesStartShortBlock( uint8 *, uint8 * );
- extern void AesLoadIV(uint8 *);
- extern void AesDmaSetup( uint8 *, uint16, uint8 *, uint16 );
- extern void AesLoadKey( uint8 * );
- extern void (*pSspAesEncrypt)( uint8 *, uint8 * );
- extern void ssp_HW_KeyInit (uint8 *);
- extern void sspKeyExpansion (uint8 *, uint8 *);
- extern void sspAesEncryptHW (uint8 *, uint8 *);
- extern void sspAesEncryptKeyExp (uint8 *, uint8 *);
- extern void sspAesEncryptBasic (uint8 *, uint8 *);
- extern void sspAesEncrypt( uint8 *key, uint8 *buf );
- #define AES_BUSY 0x08
- #define ENCRYPT 0x00
- #define DECRYPT 0x01
- #define AES_SETMODE(mode) do { ENCCS &= ~0x70; ENCCS |= mode; } while (0)
- #define CBC 0x00
- #define CFB 0x10
- #define OFB 0x20
- #define CTR 0x30
- #define ECB 0x40
- #define CBC_MAC 0x50
- #define AES_SET_ENCR_DECR_KEY_IV(mode) \
- do { \
- ENCCS = (ENCCS & ~0x07) | mode \
- } while(0)
- #define AES_ENCRYPT 0x00;
- #define AES_DECRYPT 0x02;
- #define AES_LOAD_KEY 0x04;
- #define AES_LOAD_IV 0x06;
- #define AES_START() ENCCS |= 0x01
- #define HAL_DMA_AES_IN 1
- #define HAL_DMA_AES_OUT 2
- #define HAL_AES_IN_ADDR 0x70B1
- #define HAL_AES_OUT_ADDR 0x70B2
- #if !defined (HAL_AES_DMA) || (HAL_AES_DMA == FALSE)
- #define HAL_AES_DELAY() \
- do { \
- uint8 delay = 15; \
- while(delay--); \
- } while(0)
- #endif
- #endif
|