mbedtls/include/mbedtls
Hanno Becker e0b150f96b Allow limiting the total amount of heap allocations for buffering
This commit introduces a compile time constant MBEDTLS_SSL_DTLS_MAX_BUFFERING
to mbedtls/config.h which allows the user to control the cumulative size of
all heap buffer allocated for the purpose of reassembling and buffering
handshake messages.

It is put to use by introducing a new field `total_bytes_buffered` to
the buffering substructure of `mbedtls_ssl_handshake_params` that keeps
track of the total size of heap allocated buffers for the purpose of
reassembly and buffering at any time. It is increased whenever a handshake
message is buffered or prepared for reassembly, and decreased when a
buffered or fully reassembled message is copied into the input buffer
and passed to the handshake logic layer.

This commit does not yet include future epoch record buffering into
account; this will be done in a subsequent commit.

Also, it is now conceivable that the reassembly of the next expected
handshake message fails because too much buffering space has already
been used up for future messages. This case currently leads to an
error, but instead, the stack should get rid of buffered messages
to be able to buffer the next one. This will need to be implemented
in one of the next commits.
2018-08-21 16:11:04 +01:00
..
aes.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
aesni.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
arc4.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
aria.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
asn1.h Merge remote-tracking branch 'upstream-restricted/pr/398' into development-restricted-proposed 2018-03-13 17:18:06 +01:00
asn1write.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
base64.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
bignum.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
blowfish.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
bn_mul.h Correct logic to exclude i386 inline assenbly when -O0 2018-07-23 13:31:32 +01:00
camellia.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ccm.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
certs.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
chacha20.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
chachapoly.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
check_config.h Key wrapping API definition 2018-07-24 16:43:20 +01:00
cipher.h Merge remote-tracking branch 'upstream-public/pr/1861' into development 2018-08-10 11:17:14 +01:00
cipher_internal.h Move definition to cipher.h 2018-07-01 10:22:53 +03:00
cmac.h Remove unneeded namesapcing in header files 2018-06-24 16:56:47 +03:00
compat-1.3.h Let MBEDTLS_SSL_MAX_CONTENT_LEN to be split into outward & inward sizes 2018-06-18 20:51:51 +10:00
config.h Allow limiting the total amount of heap allocations for buffering 2018-08-21 16:11:04 +01:00
ctr_drbg.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
debug.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
des.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
dhm.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ecdh.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ecdsa.h Update ecdsa.h 2018-04-23 06:16:40 +01:00
ecjpake.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ecp.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ecp_internal.h Fix minor code style issues 2018-05-15 09:21:57 +01:00
entropy.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
entropy_poll.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
error.h Merge branch 'development' into iotssl-2257-chacha-poly-primitives 2018-06-19 11:13:50 +02:00
gcm.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
havege.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
hkdf.h Add an HKDF (RFC 5869) implementation 2018-06-11 13:10:14 +01:00
hmac_drbg.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
md.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
md2.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
md4.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
md5.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
md_internal.h Merge remote-tracking branch 'upstream-public/pr/1294' into development 2018-01-25 14:47:39 +00:00
memory_buffer_alloc.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
net.h Remove unneeded namesapcing in header files 2018-06-24 16:56:47 +03:00
net_sockets.h Merge remote-tracking branch 'upstream-public/pr/1861' into development 2018-08-10 11:17:14 +01:00
nist_kw.h Key wrapping API definition 2018-07-24 16:43:20 +01:00
oid.h Merge remote-tracking branch 'upstream-public/pr/1861' into development 2018-08-10 11:17:14 +01:00
padlock.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
pem.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
pk.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
pk_internal.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
pkcs5.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
pkcs11.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
pkcs12.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
platform.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
platform_time.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
platform_util.h Improve mbedtls_platform_zeroize() docs 2018-04-24 08:37:52 -05:00
poly1305.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ripemd160.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
rsa.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
rsa_internal.h Merge remote-tracking branch 'upstream-public/pr/1457' into development-proposed 2018-04-04 09:19:27 +02:00
sha1.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
sha256.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
sha512.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ssl.h Allow limiting the total amount of heap allocations for buffering 2018-08-21 16:11:04 +01:00
ssl_cache.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
ssl_ciphersuites.h Declare ChaCha-Poly ciphersuites 2018-06-19 12:11:38 +02:00
ssl_cookie.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
ssl_internal.h Allow limiting the total amount of heap allocations for buffering 2018-08-21 16:11:04 +01:00
ssl_ticket.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
threading.h Merge remote-tracking branch 'upstream-public/pr/1861' into development 2018-08-10 11:17:14 +01:00
timing.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
version.h Update version to 2.12.0 2018-07-25 15:42:26 +01:00
x509.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
x509_crl.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
x509_crt.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
x509_csr.h Update Doxygen file blocks to remove copyright and license information 2018-01-23 15:44:39 +00:00
xtea.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00