Preparation work for STM32 crypto driver.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12250 110e8d01-0319-4d1e-a829-52ad28d1bb01
This commit is contained in:
Giovanni Di Sirio 2018-09-08 09:27:11 +00:00
parent 1804d1f008
commit bbcb55cfc5
2 changed files with 77 additions and 21 deletions

View File

@ -1328,6 +1328,7 @@ cryerror_t cry_lld_HMACSHA512_final(CRYDriver *cryp,
cryerror_t cry_lld_TRNG(CRYDriver *cryp, size_t size, uint8_t *out) { cryerror_t cry_lld_TRNG(CRYDriver *cryp, size_t size, uint8_t *out) {
(void)cryp; (void)cryp;
(void)size;
(void)out; (void)out;
return CRY_ERR_INV_ALGO; return CRY_ERR_INV_ALGO;

View File

@ -31,27 +31,6 @@
/* Driver constants. */ /* Driver constants. */
/*===========================================================================*/ /*===========================================================================*/
/**
* @name Driver capability switches
* @{
*/
#define CRY_LLD_SUPPORTS_AES TRUE
#define CRY_LLD_SUPPORTS_AES_ECB TRUE
#define CRY_LLD_SUPPORTS_AES_CBC TRUE
#define CRY_LLD_SUPPORTS_AES_CFB TRUE
#define CRY_LLD_SUPPORTS_AES_CTR TRUE
#define CRY_LLD_SUPPORTS_AES_GCM TRUE
#define CRY_LLD_SUPPORTS_DES TRUE
#define CRY_LLD_SUPPORTS_DES_ECB TRUE
#define CRY_LLD_SUPPORTS_DES_CBC TRUE
#define CRY_LLD_SUPPORTS_SHA1 TRUE
#define CRY_LLD_SUPPORTS_SHA256 TRUE
#define CRY_LLD_SUPPORTS_SHA512 TRUE
#define CRY_LLD_SUPPORTS_HMAC_SHA256 TRUE
#define CRY_LLD_SUPPORTS_HMAC_SHA512 TRUE
#define CRY_LLD_SUPPORTS_TRNG TRUE
/** @} */
/*===========================================================================*/ /*===========================================================================*/
/* Driver pre-compile time settings. */ /* Driver pre-compile time settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -74,6 +53,64 @@
/* Derived constants and error checks. */ /* Derived constants and error checks. */
/*===========================================================================*/ /*===========================================================================*/
/* Handling cleanly incomplete registry files.*/
#if !defined (STM32_HAS_CRYP)
#define STM32_HAS_CRYP FALSE
#endif
#if !defined (STM32_HAS_HASH)
#define STM32_HAS_HASH FALSE
#endif
#if !defined (STM32_HAS_RNG)
#define STM32_HAS_RNG FALSE
#endif
/**
* @name Driver capability switches
* @{
*/
#if STM32_HAS_CRYP || defined (__DOXYGEN__)
#define CRY_LLD_SUPPORTS_AES TRUE
#define CRY_LLD_SUPPORTS_AES_ECB TRUE
#define CRY_LLD_SUPPORTS_AES_CBC TRUE
#define CRY_LLD_SUPPORTS_AES_CFB TRUE
#define CRY_LLD_SUPPORTS_AES_CTR TRUE
#define CRY_LLD_SUPPORTS_AES_GCM TRUE
#define CRY_LLD_SUPPORTS_DES TRUE
#define CRY_LLD_SUPPORTS_DES_ECB TRUE
#define CRY_LLD_SUPPORTS_DES_CBC TRUE
#else
#define CRY_LLD_SUPPORTS_AES FALSE
#define CRY_LLD_SUPPORTS_AES_ECB FALSE
#define CRY_LLD_SUPPORTS_AES_CBC FALSE
#define CRY_LLD_SUPPORTS_AES_CFB FALSE
#define CRY_LLD_SUPPORTS_AES_CTR FALSE
#define CRY_LLD_SUPPORTS_AES_GCM FALSE
#define CRY_LLD_SUPPORTS_DES FALSE
#define CRY_LLD_SUPPORTS_DES_ECB FALSE
#define CRY_LLD_SUPPORTS_DES_CBC FALSE
#endif
#if STM32_HAS_HASH || defined (__DOXYGEN__)
#define CRY_LLD_SUPPORTS_SHA1 TRUE
#define CRY_LLD_SUPPORTS_SHA256 TRUE
#define CRY_LLD_SUPPORTS_SHA512 TRUE
#define CRY_LLD_SUPPORTS_HMAC_SHA256 TRUE
#define CRY_LLD_SUPPORTS_HMAC_SHA512 TRUE
#else
#define CRY_LLD_SUPPORTS_SHA1 FALSE
#define CRY_LLD_SUPPORTS_SHA256 FALSE
#define CRY_LLD_SUPPORTS_SHA512 FALSE
#define CRY_LLD_SUPPORTS_HMAC_SHA256 FALSE
#define CRY_LLD_SUPPORTS_HMAC_SHA512 FALSE
#endif
#if STM32_HAS_RNG || defined (__DOXYGEN__)
#define CRY_LLD_SUPPORTS_TRNG TRUE
#else
#define CRY_LLD_SUPPORTS_TRNG FALSE
#endif
/** @} */
/*===========================================================================*/ /*===========================================================================*/
/* Driver data structures and types. */ /* Driver data structures and types. */
/*===========================================================================*/ /*===========================================================================*/
@ -126,6 +163,24 @@ struct CRYDriver {
CRY_DRIVER_EXT_FIELDS CRY_DRIVER_EXT_FIELDS
#endif #endif
/* End of the mandatory fields.*/ /* End of the mandatory fields.*/
#if STM32_HAS_CRYP || defined (__DOXYGEN__)
/**
* @brief Pointer to the CRYP registers block.
*/
CRYP_TypeDef *cryp;
#endif
#if STM32_HAS_HASH || defined (__DOXYGEN__)
/**
* @brief Pointer to the HASH registers block.
*/
HASH_TypeDef *hash;
#endif
#if STM32_HAS_RNG || defined (__DOXYGEN__)
/**
* @brief Pointer to the RNG registers block.
*/
RNG_TypeDef *rng;
#endif
}; };
#if (CRY_LLD_SUPPORTS_SHA1 == TRUE) || defined(__DOXYGEN__) #if (CRY_LLD_SUPPORTS_SHA1 == TRUE) || defined(__DOXYGEN__)