mbedtls/library
Hanno Becker 5f066e7aac Implement future record buffering
This commit implements the buffering of a record from the next epoch.

- The buffering substructure of mbedtls_ssl_handshake_params
  gets another field to hold a raw record (incl. header) from
  a future epoch.
- If ssl_parse_record_header() sees a record from the next epoch,
  it signals that it might be suitable for buffering by returning
  MBEDTLS_ERR_SSL_EARLY_MESSAGE.
- If ssl_get_next_record() finds this error code, it passes control
  to ssl_buffer_future_record() which may or may not decide to buffer
  the record; it does so if
  - a handshake is in progress,
  - the record is a handshake record
  - no record has already been buffered.
  If these conditions are met, the record is backed up in the
  aforementioned buffering substructure.
- If the current datagram is fully processed, ssl_load_buffered_record()
  is called to check if a record has been buffered, and if yes,
  if by now the its epoch is the current one; if yes, it copies
  the record into the (empty! otherwise, ssl_load_buffered_record()
  wouldn't have been called) input buffer.
2018-08-17 16:52:08 +01:00
..
.gitignore
aes.c Merge remote-tracking branch 'public/pr/1736' into development 2018-06-17 17:34:55 +01: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 Use zeroize function from new platform_util 2018-05-22 16:05:33 +02:00
asn1parse.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
asn1write.c Treat warnings as errors for IAR 2018-05-25 14:54:14 +01:00
base64.c
bignum.c Merge remote-tracking branch 'upstream-restricted/pr/421' into development-proposed 2018-05-04 14:39:24 +01:00
blowfish.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
camellia.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
ccm.c enforce input and output of ccm selftest on stack 2018-07-30 11:29:26 +03:00
certs.c
chacha20.c Fix usage of inline with for some compilers 2018-06-07 11:54:17 +02:00
chachapoly.c Fix a few typos 2018-06-18 10:30:30 +02:00
cipher_wrap.c Define specific mode for ChachaPoly 2018-06-19 11:32:48 +02:00
cipher.c Move definition of MBEDTLS_CIPHER_MODE_STREAM 2018-07-01 10:20:43 +03:00
cmac.c Merge remote-tracking branch 'public/pr/1390' into development 2018-06-27 10:51:47 +01:00
CMakeLists.txt Update version to 2.12.0 2018-07-25 15:42:26 +01:00
ctr_drbg.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
debug.c
des.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
dhm.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
ecdh.c
ecdsa.c Clarify the use of MBEDTLS_ERR_PK_SIG_LEN_MISMATCH 2018-03-30 18:43:16 +02:00
ecjpake.c Fix minor code style issues 2018-05-15 09:21:57 +01:00
ecp_curves.c Merge branch 'pr_348' into development-proposed 2018-04-04 09:18:27 +02:00
ecp.c Fix memory leak in ecp_mul_comb() if ecp_precompute_comb() fails 2018-07-27 09:15:34 +10:00
entropy_poll.c Merge remote-tracking branch 'public/pr/1198' into development 2018-07-24 17:20:17 +01:00
entropy.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
error.c Merge branch 'development' into iotssl-2257-chacha-poly-primitives 2018-06-19 11:13:50 +02:00
gcm.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
havege.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05: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 Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
Makefile Implement the KW and KWP algorithm 2018-07-24 16:43:20 +01:00
md2.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
md4.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
md5.c Fix Lucky 13 cache attack on MD/SHA padding 2018-07-05 10:47:00 +02:00
md_wrap.c
md.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
memory_buffer_alloc.c Fix braces in mbedtls_memory_buffer_alloc_status() 2018-06-12 16:56:04 +01:00
net_sockets.c Merge remote-tracking branch 'public/pr/1198' into development 2018-07-24 17:20:17 +01:00
nist_kw.c Add selftests 2018-07-24 16:43:20 +01:00
oid.c
padlock.c
pem.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
pk_wrap.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
pk.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
pkcs5.c Treat warnings as errors for IAR 2018-05-25 14:54:14 +01:00
pkcs11.c
pkcs12.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
pkparse.c Remove unnecessary mark as unused #1098 2018-07-11 15:16:53 +02:00
pkwrite.c
platform_util.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
platform.c Convert mbedtls_free and mbedtls_calloc into functions 2018-06-13 09:17:59 +01:00
poly1305.c Fix usage of inline with for some compilers 2018-06-07 11:54:17 +02:00
ripemd160.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
rsa_internal.c
rsa.c Merge remote-tracking branch 'upstream-restricted/pr/421' into development-proposed 2018-05-04 14:39:24 +01:00
sha1.c Fix Lucky 13 cache attack on MD/SHA padding 2018-07-05 10:47:00 +02:00
sha256.c Fix Lucky 13 cache attack on MD/SHA padding 2018-07-05 10:47:00 +02:00
sha512.c Fix Lucky 13 cache attack on MD/SHA padding 2018-07-05 10:47:00 +02:00
ssl_cache.c
ssl_ciphersuites.c Merge remote-tracking branch 'upstream-public/pr/1378' into development 2018-08-10 10:59:53 +01:00
ssl_cli.c Add parameter to ssl_read_record() controlling checksum update 2018-08-17 16:52:08 +01:00
ssl_cookie.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
ssl_srv.c Add parameter to ssl_read_record() controlling checksum update 2018-08-17 16:52:08 +01:00
ssl_ticket.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
ssl_tls.c Implement future record buffering 2018-08-17 16:52:08 +01:00
threading.c Use gmtime_r to fix thread-safety issue, and use mbedtls_time on Windows 2018-06-25 11:59:54 +01:00
timing.c library: Port to Haiku. 2018-04-11 20:27:32 -04:00
version_features.c Key wrapping API definition 2018-07-24 16:43:20 +01:00
version.c
x509_create.c
x509_crl.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
x509_crt.c Fix minor code style issues 2018-05-15 09:21:57 +01:00
x509_csr.c Merge remote-tracking branch 'public/pr/1621' into development 2018-06-28 12:09:15 +01:00
x509.c Merge remote-tracking branch 'public/pr/1198' into development 2018-07-24 17:20:17 +01:00
x509write_crt.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
x509write_csr.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00
xtea.c Rename mbedtls_zeroize to mbedtls_platform_zeroize 2018-04-17 10:00:21 -05:00