mbedtls/library
Hanno Becker a823d4c7f0 HMAC DRBG: Split entropy-gathering requests to reduce request sizes
According to SP800-90A, the DRBG seeding process should use a nonce
of length `security_strength / 2` bits as part of the DRBG seed. It
further notes that this nonce may be drawn from the same source of
entropy that is used for the first `security_strength` bits of the
DRBG seed. The present HMAC DRBG implementation does that, requesting
`security_strength * 3 / 2` bits of entropy from the configured entropy
source in total to form the initial part of the DRBG seed.

However, some entropy sources may have thresholds in terms of how much
entropy they can provide in a single call to their entropy gathering
function which may be exceeded by the present HMAC DRBG implementation
even if the threshold is not smaller than `security_strength` bits.
Specifically, this is the case for our own entropy module implementation
which only allows requesting at most 32 Bytes of entropy at a time
in configurations disabling SHA-512, and this leads to runtime failure
of HMAC DRBG when used with Mbed Crypto' own entropy callbacks in such
configurations.

This commit fixes this by splitting the seed entropy acquisition into
two calls, one requesting `security_strength` bits first, and another
one requesting `security_strength / 2` bits for the nonce.

Fixes #237.
2019-08-30 11:16:24 +01:00
..
.gitignore Split libs with make + general make cleanups 2015-06-25 10:59:56 +02:00
aes.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
aesni.c Warn if using a memory sanitizer on AESNI 2018-04-05 15:37:38 +02:00
arc4.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
aria.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
asn1parse.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
asn1write.c Add new function mbedtls_asn1_write_named_bitstring() 2019-02-28 09:36:30 +00:00
base64.c Add comment to integer overflow fix in base64.c 2017-02-15 23:31:07 +02:00
bignum.c Remove a redundant function call 2019-08-18 17:24:09 +03:00
blowfish.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
camellia.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ccm.c Merge remote-tracking branch 'origin/pr/2092' into development 2019-04-24 11:17:21 +01:00
chacha20.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
chachapoly.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
cipher.c Convert cipher and pk to PSA attribute-based key creation 2019-06-05 11:34:54 +02:00
cipher_wrap.c Wrap lines at 80 columns 2019-04-02 10:07:28 -07:00
cmac.c Merge remote-tracking branch 'public/pr/1390' into development 2018-06-27 10:51:47 +01:00
CMakeLists.txt Merge remote-tracking branch 'upstream-crypto/development' into psa-api-1.0-beta-merge_development_20190801 2019-07-31 17:47:49 +02:00
ctr_drbg.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
des.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
dhm.c Allow DHM self test to run without MBEDTLS_PEM_PARSE_C 2019-06-03 17:46:56 +01:00
ecdh.c Fix ECDH secret export for Mongomery curves 2019-02-26 16:49:52 +00:00
ecdsa.c ECP restart: Don't calculate address of sub ctx if ctx is NULL 2019-07-19 14:44:36 +01:00
ecjpake.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
ecp.c Replace some macros by functions 2019-07-18 21:08:27 +02:00
ecp_curves.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
entropy.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
entropy_poll.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
error.c Add specific SSL error code for unexpected CIDs 2019-06-03 16:07:50 +01:00
gcm.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
havege.c Fix minor type choice inconsistency 2019-06-24 15:45:09 +02:00
hkdf.c Fix issue if salt = NULL and salt_len !=0 in mbedtls_hkdf_extract() 2018-07-23 10:34:47 -07:00
hmac_drbg.c HMAC DRBG: Split entropy-gathering requests to reduce request sizes 2019-08-30 11:16:24 +01:00
Makefile Merge remote-tracking branch 'upstream-crypto/development' into psa-api-1.0-beta-merge_development_20190801 2019-07-31 17:47:49 +02:00
md.c md: Remove dependency on X.509 2019-03-11 16:46:20 +00:00
md2.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
md4.c Add more missing parentheses around macro parameters 2019-02-19 17:59:57 +00:00
md5.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
md_wrap.c New MD API: rename functions from _ext to _ret 2018-01-22 11:54:42 +01:00
memory_buffer_alloc.c Fix braces in mbedtls_memory_buffer_alloc_status() 2018-06-12 16:56:04 +01:00
nist_kw.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
oid.c Add support for RSA PKCSv1.5 signatures using RIPEMD-160 2019-05-06 12:15:17 -04:00
padlock.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pem.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pk.c Convert cipher and pk to PSA attribute-based key creation 2019-06-05 11:34:54 +02:00
pk_wrap.c Convert cipher and pk to PSA attribute-based key creation 2019-06-05 11:34:54 +02:00
pkcs5.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pkcs12.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pkparse.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
pkwrite.c Convert cipher and pk to PSA attribute-based key creation 2019-06-05 11:34:54 +02:00
platform.c Merge remote-tracking branch 'origin/pr/1551' into development 2019-01-30 13:24:55 +00:00
platform_util.c Merge development commit 8e76332 into development-psa 2019-01-31 08:20:20 -05:00
poly1305.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
psa_crypto.c Initialize key bits to max size + 1 in psa_import_key 2019-08-21 16:56:16 +01:00
psa_crypto_core.h Rename internal macro to pass check-names.sh 2019-08-08 10:58:09 +02:00
psa_crypto_invasive.h Add a facility to configure entropy sources 2018-11-23 22:58:38 +01:00
psa_crypto_its.h Add psa_trusted_storage_linux persistent storage support for v1.0.0 APIs 2019-07-23 17:30:37 +01:00
psa_crypto_se.c Pass the key creation method to drivers 2019-08-09 14:59:31 +02:00
psa_crypto_se.h Pass the key creation method to drivers 2019-08-09 14:59:31 +02:00
psa_crypto_service_integration.h Add common header for crypto service integration 2019-02-19 15:09:14 +02:00
psa_crypto_slot_management.c Rename psa_internal_allocate_key_slot to psa_get_empty_key_slot 2019-08-08 10:58:09 +02:00
psa_crypto_slot_management.h Rename psa_internal_allocate_key_slot to psa_get_empty_key_slot 2019-08-08 10:58:09 +02:00
psa_crypto_storage.c Merge pull request #198 from gilles-peskine-arm/psa-api-1.0-beta-merge_development_20190801 2019-08-08 10:24:53 +02:00
psa_crypto_storage.h Switch storage functions over to psa_core_key_attributes_t 2019-07-31 14:15:27 +02:00
psa_its_file.c Add psa_trusted_storage_linux persistent storage support for v1.0.0 APIs 2019-07-23 17:30:37 +01:00
ripemd160.c Improve macro hygiene 2019-02-19 17:59:00 +00:00
rsa.c rsa: Enable use of zero-length null output 2019-02-11 03:39:51 -05:00
rsa_internal.c Bignum: Deprecate mbedtls_mpi_is_prime() 2018-10-09 16:36:53 +01:00
sha1.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
sha256.c Add further missing brackets around macro parameters 2019-02-19 17:59:57 +00:00
sha512.c Add more missing parentheses around macro parameters 2019-02-19 17:59:57 +00:00
threading.c Don't declare and define gmtime()-mutex on Windows platforms 2018-09-06 12:09:56 +01:00
timing.c timing: Remove redundant include file 2019-06-20 10:51:21 +01:00
version.c Fix missing void argument declarations #678 2016-11-04 23:05:56 +01:00
version_features.c Merge remote-tracking branch 'upstream-crypto/development' into psa-api-1.0-beta-merge_development_20190801 2019-07-31 17:47:49 +02:00
xtea.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00