1 /** 2 ****************************************************************************** 3 * @file lib_crypt.h 4 * @author Application Team 5 * @version V4.4.0 6 * @date 2018-09-27 7 * @brief CRYPT library. 8 ****************************************************************************** 9 * @attention 10 * 11 ****************************************************************************** 12 */ 13 #ifndef __LIB_CRYPT_H 14 #define __LIB_CRYPT_H 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 #include "target.h" 21 22 //Length 23 #define CRYPT_LENGTH_32 CRYPT_CTRL_LENGTH_32 24 #define CRYPT_LENGTH_64 CRYPT_CTRL_LENGTH_64 25 #define CRYPT_LENGTH_96 CRYPT_CTRL_LENGTH_96 26 #define CRYPT_LENGTH_128 CRYPT_CTRL_LENGTH_128 27 #define CRYPT_LENGTH_160 CRYPT_CTRL_LENGTH_160 28 #define CRYPT_LENGTH_192 CRYPT_CTRL_LENGTH_192 29 #define CRYPT_LENGTH_224 CRYPT_CTRL_LENGTH_224 30 #define CRYPT_LENGTH_256 CRYPT_CTRL_LENGTH_256 31 #define CRYPT_LENGTH_288 CRYPT_CTRL_LENGTH_288 32 #define CRYPT_LENGTH_320 CRYPT_CTRL_LENGTH_320 33 #define CRYPT_LENGTH_352 CRYPT_CTRL_LENGTH_352 34 #define CRYPT_LENGTH_384 CRYPT_CTRL_LENGTH_384 35 #define CRYPT_LENGTH_416 CRYPT_CTRL_LENGTH_416 36 #define CRYPT_LENGTH_448 CRYPT_CTRL_LENGTH_448 37 #define CRYPT_LENGTH_480 CRYPT_CTRL_LENGTH_480 38 #define CRYPT_LENGTH_512 CRYPT_CTRL_LENGTH_512 39 //Nostop 40 #define CRYPT_STOPCPU (0) 41 #define CRYPT_NOSTOPCPU CRYPT_CTRL_NOSTOP 42 43 /* Private macros ------------------------------------------------------------*/ 44 #define IS_CRYPT_ADDR(__ADDR__) (((__ADDR__) < 0x8000) &&\ 45 (((__ADDR__) & 0x3U) == 0U)) 46 47 #define IS_CRYPT_LENGTH(__LENGTH__) (((__LENGTH__) == CRYPT_LENGTH_32) ||\ 48 ((__LENGTH__) == CRYPT_LENGTH_64) ||\ 49 ((__LENGTH__) == CRYPT_LENGTH_32) ||\ 50 ((__LENGTH__) == CRYPT_LENGTH_96) ||\ 51 ((__LENGTH__) == CRYPT_LENGTH_128) ||\ 52 ((__LENGTH__) == CRYPT_LENGTH_160) ||\ 53 ((__LENGTH__) == CRYPT_LENGTH_192) ||\ 54 ((__LENGTH__) == CRYPT_LENGTH_224) ||\ 55 ((__LENGTH__) == CRYPT_LENGTH_256) ||\ 56 ((__LENGTH__) == CRYPT_LENGTH_288) ||\ 57 ((__LENGTH__) == CRYPT_LENGTH_320) ||\ 58 ((__LENGTH__) == CRYPT_LENGTH_352) ||\ 59 ((__LENGTH__) == CRYPT_LENGTH_384) ||\ 60 ((__LENGTH__) == CRYPT_LENGTH_416) ||\ 61 ((__LENGTH__) == CRYPT_LENGTH_448) ||\ 62 ((__LENGTH__) == CRYPT_LENGTH_480) ||\ 63 ((__LENGTH__) == CRYPT_LENGTH_512)) 64 65 #define IS_CRYPT_NOSTOP(__NOSTOP__) (((__NOSTOP__) == CRYPT_STOPCPU) || ((__NOSTOP__) == CRYPT_NOSTOPCPU)) 66 67 /* Exported Functions ------------------------------------------------------- */ 68 void CRYPT_AddressAConfig(uint16_t AddrA); 69 void CRYPT_AddressBConfig(uint16_t AddrB); 70 void CRYPT_AddressOConfig(uint16_t AddrO); 71 uint8_t CRYPT_GetCarryBorrowBit(void); 72 void CRYPT_StartAdd(uint32_t Length, uint32_t Nostop); 73 void CRYPT_StartMultiply(uint32_t Length, uint32_t Nostop); 74 void CRYPT_StartSub(uint32_t Length, uint32_t Nostop); 75 void CRYPT_StartRShift1(uint32_t Length, uint32_t Nostop); 76 void CRYPT_WaitForLastOperation(void); 77 78 79 #ifdef __cplusplus 80 } 81 #endif 82 83 #endif /* __LIB_CRYPT_H */ 84 85 /*********************************** END OF FILE ******************************/ 86