crypto.h 807 B

1234567891011121314151617181920212223242526272829303132
  1. #ifndef __ELEC0017_CRYPTO_H__
  2. #define __ELEC0017_CRYPTO_H__
  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7. #include <stdint.h>
  8. #define AES_DIR_ENCRYPT 0x00000004
  9. #define AES_DIR_DECRYPT 0x00000000
  10. #define AES_KEY_128BIT 0x00000008
  11. #define AES_KEY_192BIT 0x00000010
  12. #define AES_KEY_256BIT 0x00000018
  13. void AESCrypt(uint32_t dir, uint8_t *iv,
  14. uint8_t *data, uint8_t *result,
  15. uint32_t dataLength);
  16. uint8_t * AESEncrypt(uint8_t *message, uint32_t messageLength, uint32_t *returnLength);
  17. uint8_t * AESDecrypt(uint8_t *message, uint32_t messageLength, uint32_t *returnLength);
  18. void AESIntHandler(void); // Interrupt handler
  19. void AESSetup(uint32_t key_size, uint8_t *key); // Setup AES module
  20. uint32_t getBlockSize(void);
  21. #ifdef __cplusplus
  22. }
  23. #endif
  24. #endif