1 /**************************************************************************//** 2 * @file trng.h 3 * @version V3.00 4 * @brief M2L31 series TRNG driver header file 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 * @copyright (C) 2023 Nuvoton Technology Corp. All rights reserved. 8 ******************************************************************************/ 9 #ifndef __TRNG_H__ 10 #define __TRNG_H__ 11 12 #ifdef __cplusplus 13 extern "C" 14 { 15 #endif 16 17 /** @addtogroup Standard_Driver Standard Driver 18 @{ 19 */ 20 21 /** @addtogroup TRNG_Driver TRNG Driver 22 @{ 23 */ 24 25 26 /** @addtogroup TRNG_EXPORTED_CONSTANTS TRNG Exported Constants 27 @{ 28 */ 29 30 /*----------------------------------------------------------------------------------------------*/ 31 /* TRNG_CTL constant definitions. */ 32 /*----------------------------------------------------------------------------------------------*/ 33 34 #define TRNG_CTL_MODE_ENTROPY (0 << TRNG_CTL_MODE_Pos) /*!< TRNG MODE for ENTROPY \hideinitializer */ 35 #define TRNG_CTL_MODE_NRBG (1 << TRNG_CTL_MODE_Pos) /*!< TRNG MODE for NRBG \hideinitializer */ 36 #define TRNG_CTL_MODE_DRBG (2 << TRNG_CTL_MODE_Pos) /*!< TRNG MODE for DRBG \hideinitializer */ 37 38 #define TRNG_CTL_KATSEL_INSTANT (0 << TRNG_CTL_KATSEL_Pos) /*!< TRNG Known Answer Test for Instantiation \hideinitializer */ 39 #define TRNG_CTL_KATSEL_RESEED (1 << TRNG_CTL_KATSEL_Pos) /*!< TRNG Known Answer Test for Reseed \hideinitializer */ 40 #define TRNG_CTL_KATSEL_UPDATE (2 << TRNG_CTL_KATSEL_Pos) /*!< TRNG Known Answer Test for Generation \hideinitializer */ 41 42 /*@}*/ /* end of group TRNG_EXPORTED_CONSTANTS */ 43 44 /** @addtogroup TRNG_EXPORTED_FUNCTIONS TRNG Exported Functions 45 @{ 46 */ 47 48 49 int32_t TRNG_Open(void); 50 int32_t TRNG_GenWord(uint32_t *u32RndNum); 51 int32_t TRNG_GenBignum(uint8_t u8BigNum[], int32_t i32Len); 52 int32_t TRNG_GenBignumHex(char cBigNumHex[], int32_t i32Len); 53 54 55 /*@}*/ /* end of group TRNG_EXPORTED_FUNCTIONS */ 56 57 /*@}*/ /* end of group TRNG_Driver */ 58 59 /*@}*/ /* end of group Standard_Driver */ 60 61 #ifdef __cplusplus 62 } 63 #endif 64 65 #endif /* __TRNG_H__ */ 66