Go to the documentation of this file.
36 #ifndef MBEDTLS_CTR_DRBG_H
37 #define MBEDTLS_CTR_DRBG_H
41 #if defined(MBEDTLS_THREADING_C)
45 #define MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED -0x0034
46 #define MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG -0x0036
47 #define MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG -0x0038
48 #define MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR -0x003A
50 #define MBEDTLS_CTR_DRBG_BLOCKSIZE 16
52 #if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
53 #define MBEDTLS_CTR_DRBG_KEYSIZE 16
55 #define MBEDTLS_CTR_DRBG_KEYSIZE 32
58 #define MBEDTLS_CTR_DRBG_KEYBITS ( MBEDTLS_CTR_DRBG_KEYSIZE * 8 )
59 #define MBEDTLS_CTR_DRBG_SEEDLEN ( MBEDTLS_CTR_DRBG_KEYSIZE + MBEDTLS_CTR_DRBG_BLOCKSIZE )
70 #if !defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN)
71 #if defined(MBEDTLS_SHA512_C) && !defined(MBEDTLS_ENTROPY_FORCE_SHA256)
72 #define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48
78 #define MBEDTLS_CTR_DRBG_ENTROPY_LEN 32
86 #if !defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL)
87 #define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 10000
91 #if !defined(MBEDTLS_CTR_DRBG_MAX_INPUT)
92 #define MBEDTLS_CTR_DRBG_MAX_INPUT 256
96 #if !defined(MBEDTLS_CTR_DRBG_MAX_REQUEST)
97 #define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024
101 #if !defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT)
102 #define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384
108 #define MBEDTLS_CTR_DRBG_PR_OFF 0
110 #define MBEDTLS_CTR_DRBG_PR_ON 1
142 #if defined(MBEDTLS_THREADING_C)
177 int (*f_entropy)(
void *,
unsigned char *,
size_t),
179 const unsigned char *custom,
237 const unsigned char *additional,
size_t len );
254 const unsigned char *additional,
273 const unsigned char *additional,
294 unsigned char *output,
size_t output_len,
295 const unsigned char *additional,
size_t add_len );
312 unsigned char *output,
size_t output_len );
314 #if defined(MBEDTLS_FS_IO)
353 int (*)(
void *,
unsigned char *,
size_t),
void *,
354 const unsigned char *,
size_t,
size_t );