TrustCore SDK NanoCrypto API reference  version 7.0
nist_rng.h
Go to the documentation of this file.
1 
12 /*------------------------------------------------------------------*/
13 
14 #ifndef __NIST_RNG_HEADER__
15 #define __NIST_RNG_HEADER__
16 
17 #if defined(__ENABLE_MOCANA_CRYPTO_INTERFACE__)
18 #include "../crypto_interface/crypto_interface_nist_ctr_drbg_priv.h"
19 #endif
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 
26 /*------------------------------------------------------------------*/
27 
28 /* Function prototypes */
29  /* CTR_DRBG */
30 
53 MOC_EXTERN MSTATUS NIST_CTRDRBG_newContext(MOC_SYM(hwAccelDescr hwAccelCtx)
54  randomContext **ppNewContext,
55  const ubyte* entropyInput,
56  ubyte4 keyLenBytes, ubyte4 outLenBytes,
57  const ubyte* personalization,
58  ubyte4 personalizationLen);
59 
86 MOC_EXTERN MSTATUS NIST_CTRDRBG_newDFContext(MOC_SYM(hwAccelDescr hwAccelCtx)
87  randomContext **ppNewContext,
88  ubyte4 keyLenBytes, ubyte4 outLenBytes,
89  const ubyte* entropyInput, ubyte4 entropyInputLen,
90  const ubyte* nonce, ubyte4 nonceLen,
91  const ubyte* personalization,
92  ubyte4 personalizationLen);
93 
102 MOC_EXTERN MSTATUS NIST_CTRDRBG_deleteContext( MOC_SYM(hwAccelDescr hwAccelCtx)
103  randomContext **ppNewContext);
104 
118 MOC_EXTERN MSTATUS NIST_CTRDRBG_reseed(MOC_SYM(hwAccelDescr hwAccelCtx)
119  randomContext *pContext,
120  const ubyte* entropyInput,
121  ubyte4 entropyInputLen,
122  const ubyte* additionalInput,
123  ubyte4 additionalInputLen);
124 
137 MOC_EXTERN MSTATUS NIST_CTRDRBG_generate(MOC_SYM(hwAccelDescr hwAccelCtx)
138  randomContext* pContext,
139  const ubyte* additionalInput, ubyte4 additionalInputLen,
140  ubyte* output, ubyte4 outputLenBits);
141 
152 MOC_EXTERN MSTATUS NIST_CTRDRBG_numberGenerator(MOC_SYM(hwAccelDescr hwAccelCtx)
153  randomContext *pRandomContext,
154  ubyte *pBuffer, sbyte4 bufSize);
155 
169 MOC_EXTERN sbyte4 NIST_CTRDRBG_rngFun(MOC_SYM(hwAccelDescr hwAccelCtx)
170  void* rngFunArg,
171  ubyte4 length, ubyte *buffer);
172 
173 
174 #ifdef __FIPS_OPS_TEST__
175 
180 MOC_EXTERN void triggerDRBGFail(void);
181 
186 MOC_EXTERN void resetDRBGFail(void);
187 
188 #endif
189 
190 #ifdef __cplusplus
191 }
192 #endif
193 
194 #endif /* __NIST_RNG_HEADER__ */
195 
MOC_EXTERN MSTATUS NIST_CTRDRBG_newDFContext(MOC_SYM(hwAccelDescr hwAccelCtx) randomContext **ppNewContext, ubyte4 keyLenBytes, ubyte4 outLenBytes, const ubyte *entropyInput, ubyte4 entropyInputLen, const ubyte *nonce, ubyte4 nonceLen, const ubyte *personalization, ubyte4 personalizationLen)
Allocate and initialize a new CTRDRBG context that is using a derivation function.
MOC_EXTERN MSTATUS NIST_CTRDRBG_generate(MOC_SYM(hwAccelDescr hwAccelCtx) randomContext *pContext, const ubyte *additionalInput, ubyte4 additionalInputLen, ubyte *output, ubyte4 outputLenBits)
Generate random data with optional additional input.
MOC_EXTERN sbyte4 NIST_CTRDRBG_rngFun(MOC_SYM(hwAccelDescr hwAccelCtx) void *rngFunArg, ubyte4 length, ubyte *buffer)
Callback function to generate random data.
MOC_EXTERN MSTATUS NIST_CTRDRBG_numberGenerator(MOC_SYM(hwAccelDescr hwAccelCtx) randomContext *pRandomContext, ubyte *pBuffer, sbyte4 bufSize)
Generate random data.
MOC_EXTERN MSTATUS NIST_CTRDRBG_reseed(MOC_SYM(hwAccelDescr hwAccelCtx) randomContext *pContext, const ubyte *entropyInput, ubyte4 entropyInputLen, const ubyte *additionalInput, ubyte4 additionalInputLen)
Reseed a previously instantiated CTRDRBG context.
MOC_EXTERN MSTATUS NIST_CTRDRBG_deleteContext(MOC_SYM(hwAccelDescr hwAccelCtx) randomContext **ppNewContext)
Clear and free a previously instantiated CTRDRBG context.
MOC_EXTERN MSTATUS NIST_CTRDRBG_newContext(MOC_SYM(hwAccelDescr hwAccelCtx) randomContext **ppNewContext, const ubyte *entropyInput, ubyte4 keyLenBytes, ubyte4 outLenBytes, const ubyte *personalization, ubyte4 personalizationLen)
Allocate and initialize a new CTRDRBG context that is not using a derivation function.