lib_crypt.h 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #include "target.h"
  19. //Length
  20. #define CRYPT_LENGTH_32 CRYPT_CTRL_LENGTH_32
  21. #define CRYPT_LENGTH_64 CRYPT_CTRL_LENGTH_64
  22. #define CRYPT_LENGTH_96 CRYPT_CTRL_LENGTH_96
  23. #define CRYPT_LENGTH_128 CRYPT_CTRL_LENGTH_128
  24. #define CRYPT_LENGTH_160 CRYPT_CTRL_LENGTH_160
  25. #define CRYPT_LENGTH_192 CRYPT_CTRL_LENGTH_192
  26. #define CRYPT_LENGTH_224 CRYPT_CTRL_LENGTH_224
  27. #define CRYPT_LENGTH_256 CRYPT_CTRL_LENGTH_256
  28. #define CRYPT_LENGTH_288 CRYPT_CTRL_LENGTH_288
  29. #define CRYPT_LENGTH_320 CRYPT_CTRL_LENGTH_320
  30. #define CRYPT_LENGTH_352 CRYPT_CTRL_LENGTH_352
  31. #define CRYPT_LENGTH_384 CRYPT_CTRL_LENGTH_384
  32. #define CRYPT_LENGTH_416 CRYPT_CTRL_LENGTH_416
  33. #define CRYPT_LENGTH_448 CRYPT_CTRL_LENGTH_448
  34. #define CRYPT_LENGTH_480 CRYPT_CTRL_LENGTH_480
  35. #define CRYPT_LENGTH_512 CRYPT_CTRL_LENGTH_512
  36. //Nostop
  37. #define CRYPT_STOPCPU (0)
  38. #define CRYPT_NOSTOPCPU CRYPT_CTRL_NOSTOP
  39. /* Private macros ------------------------------------------------------------*/
  40. #define IS_CRYPT_ADDR(__ADDR__) (((__ADDR__) < 0x8000) &&\
  41. (((__ADDR__) & 0x3U) == 0U))
  42. #define IS_CRYPT_LENGTH(__LENGTH__) (((__LENGTH__) == CRYPT_LENGTH_32) ||\
  43. ((__LENGTH__) == CRYPT_LENGTH_64) ||\
  44. ((__LENGTH__) == CRYPT_LENGTH_32) ||\
  45. ((__LENGTH__) == CRYPT_LENGTH_96) ||\
  46. ((__LENGTH__) == CRYPT_LENGTH_128) ||\
  47. ((__LENGTH__) == CRYPT_LENGTH_160) ||\
  48. ((__LENGTH__) == CRYPT_LENGTH_192) ||\
  49. ((__LENGTH__) == CRYPT_LENGTH_224) ||\
  50. ((__LENGTH__) == CRYPT_LENGTH_256) ||\
  51. ((__LENGTH__) == CRYPT_LENGTH_288) ||\
  52. ((__LENGTH__) == CRYPT_LENGTH_320) ||\
  53. ((__LENGTH__) == CRYPT_LENGTH_352) ||\
  54. ((__LENGTH__) == CRYPT_LENGTH_384) ||\
  55. ((__LENGTH__) == CRYPT_LENGTH_416) ||\
  56. ((__LENGTH__) == CRYPT_LENGTH_448) ||\
  57. ((__LENGTH__) == CRYPT_LENGTH_480) ||\
  58. ((__LENGTH__) == CRYPT_LENGTH_512))
  59. #define IS_CRYPT_NOSTOP(__NOSTOP__) (((__NOSTOP__) == CRYPT_STOPCPU) || ((__NOSTOP__) == CRYPT_NOSTOPCPU))
  60. /* Exported Functions ------------------------------------------------------- */
  61. void CRYPT_AddressAConfig(uint16_t AddrA);
  62. void CRYPT_AddressBConfig(uint16_t AddrB);
  63. void CRYPT_AddressOConfig(uint16_t AddrO);
  64. uint8_t CRYPT_GetCarryBorrowBit(void);
  65. void CRYPT_StartAdd(uint32_t Length, uint32_t Nostop);
  66. void CRYPT_StartMultiply(uint32_t Length, uint32_t Nostop);
  67. void CRYPT_StartSub(uint32_t Length, uint32_t Nostop);
  68. void CRYPT_StartRShift1(uint32_t Length, uint32_t Nostop);
  69. void CRYPT_WaitForLastOperation(void);
  70. #ifdef __cplusplus
  71. }
  72. #endif
  73. #endif /* __LIB_CRYPT_H */
  74. /*********************************** END OF FILE ******************************/