mbedtls/library
Hanno Becker 704f493730 Simplify retaining of messages for future processing
There are situations in which it is not clear what message to expect
next. For example, the message following the ServerHello might be
either a Certificate, a ServerKeyExchange or a CertificateRequest. We
deal with this situation in the following way: Initially, the message
processing function for one of the allowed message types is called,
which fetches and decodes a new message. If that message is not the
expected one, the function returns successfully (instead of throwing
an error as usual for unexpected messages), and the handshake
continues to the processing function for the next possible message. To
not have this function fetch a new message, a flag in the SSL context
structure is used to indicate that the last message was retained for
further processing, and if that's set, the following processing
function will not fetch a new record.

This commit simplifies the usage of this message-retaining parameter
by doing the check within the record-fetching routine instead of the
specific message-processing routines. The code gets cleaner this way
and allows retaining messages to be used in other situations as well
without much effort. This will be used in the next commits.
2017-06-08 13:08:45 +01:00
..
.gitignore Split libs with make + general make cleanups 2015-06-25 10:59:56 +02:00
aes.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
aesni.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
arc4.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
asn1parse.c Fix 1 byte overread in mbedtls_asn1_get_int() 2016-10-12 17:45:29 +01:00
asn1write.c Fix potential double free in cert writing code 2015-12-10 11:24:35 +01:00
base64.c Add comment to integer overflow fix in base64.c 2017-02-20 21:51:18 +00:00
bignum.c Fix buffer overflow in mbedtls_mpi_write_string() 2017-03-02 22:58:05 +00:00
blowfish.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
camellia.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ccm.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
certs.c X.509 self-tests: replaced SHA-1 certificates by SHA-256 2017-06-06 19:08:23 +02:00
cipher_wrap.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
cipher.c Fix integer overflows in buffer bound checks 2017-02-20 21:49:01 +00:00
CMakeLists.txt Update version number to 2.1.7 for release 2017-03-08 16:29:31 +00:00
ctr_drbg.c Fix integer overflows in buffer bound checks 2017-02-20 21:49:01 +00:00
debug.c Fix macroization of inline in C++ 2015-10-05 11:41:36 +01:00
des.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
dhm.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecdh.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecdsa.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecp_curves.c ECP: Prevent freeing a buffer on stack 2017-02-28 18:56:35 +00:00
ecp.c Optimize more common cases in ecp_muladd() 2015-10-27 10:30:36 +01:00
entropy_poll.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
entropy.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
error.c DTLS: avoid dropping too many records 2015-12-03 19:22:55 +01:00
gcm.c Fix documentation for mbedtls_gcm_finish() 2016-10-12 19:54:07 +01:00
havege.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
hmac_drbg.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
Makefile Make ar invocation more portable 2016-01-08 14:52:14 +01:00
md2.c Fix integer overflows in buffer bound checks 2017-02-20 21:49:01 +00:00
md4.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md5.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md_wrap.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
memory_buffer_alloc.c Fixes memory leak in memory_buffer_alloc.c debug 2016-05-05 17:51:09 +01:00
net.c Clarify Comments and Fix Typos (#651) 2017-02-25 19:44:47 +00:00
oid.c Fix typo in an OID name 2015-11-02 05:58:10 +09:00
padlock.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pem.c Fix unused variable/function compilation warnings 2017-02-25 19:48:32 +00:00
pk_wrap.c Fix data loss in unsigned int cast in PK 2017-02-25 20:37:43 +00:00
pk.c Fix data loss in unsigned int cast in PK 2017-02-25 20:37:43 +00:00
pkcs5.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs11.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs12.c Fix stack buffer overflow in pkcs12 2015-09-28 19:47:50 +02:00
pkparse.c Clarify Comments and Fix Typos (#651) 2017-02-25 19:44:47 +00:00
pkwrite.c Fix other occurrences of same bounds check issue 2015-11-02 10:43:03 +09:00
platform.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ripemd160.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
rsa.c Merge remote-tracking branch 'restricted/mbedtls-2.1' into mbedtls-2.1 2017-06-06 18:23:05 +02:00
sha1.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha256.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha512.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_cache.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_ciphersuites.c Remember suitable hash function for any signature algorithm. 2017-05-24 11:04:50 +01:00
ssl_cli.c Simplify retaining of messages for future processing 2017-06-08 13:08:45 +01:00
ssl_cookie.c Backport 2.1:Resource leak in ssl_cookie and mutex 2017-03-02 21:11:16 +00:00
ssl_srv.c Merge remote-tracking branch 'gilles/iotssl-1223/mbedtls-2.1' into mbedtls-2.1 2017-06-06 20:12:51 +02:00
ssl_ticket.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_tls.c Simplify retaining of messages for future processing 2017-06-08 13:08:45 +01:00
threading.c Fix bug in threading sample implementation #667 2017-05-15 13:22:51 +01:00
timing.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
version_features.c Remove MBEDTLS_SSL_AEAD_RANDOM_IV feature 2016-10-13 10:35:34 +01:00
version.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509_create.c Fix other occurrences of same bounds check issue 2015-11-02 10:43:03 +09:00
x509_crl.c Fix memory leak in mbedtls_x509_crl_parse() 2017-02-28 17:06:24 +00:00
x509_crt.c SHA-1 deprecation: allow it in key exchange 2017-06-06 19:09:02 +02:00
x509_csr.c Fix unused variable/function compilation warnings 2017-02-25 19:48:32 +00:00
x509.c X.509 self-tests: replaced SHA-1 certificates by SHA-256 2017-06-06 19:08:23 +02:00
x509write_crt.c Add missing bounds check in X509 DER write funcs 2016-10-11 16:52:06 +01:00
x509write_csr.c Add missing bounds check in X509 DER write funcs 2016-10-11 16:52:06 +01:00
xtea.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00