mbedtls/include/mbedtls
Hanno Becker 70e7928d76 Add pointers to in/out CID fields to mbedtls_ssl_context
mbedtls_ssl_context contains pointers in_buf, in_hdr, in_len, ...
which point to various parts of the header of an incoming TLS or
DTLS record; similarly, there are pointers out_buf, ... for
outgoing records.

This commit adds fields in_cid and out_cid which point to where
the CID of incoming/outgoing records should reside, if present,
namely prior to where the record length resides.

Quoting https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-04:

   The DTLSInnerPlaintext value is then encrypted and the CID added to
   produce the final DTLSCiphertext.

        struct {
            ContentType special_type = tls12_cid; /* 25 */
            ProtocolVersion version;
            uint16 epoch;
            uint48 sequence_number;
            opaque cid[cid_length];               // New field
            uint16 length;
            opaque enc_content[DTLSCiphertext.length];
        } DTLSCiphertext;

For outgoing records, out_cid is set in ssl_update_out_pointers()
based on the settings in the current outgoing transform.

For incoming records, ssl_update_in_pointers() sets in_cid as if no
CID was present, and it is the responsibility of ssl_parse_record_header()
to update the field (as well as in_len, in_msg and in_iv) when parsing
records that do contain a CID. This will be done in a subsequent commit.

Finally, the code around the invocations of ssl_decrypt_buf()
and ssl_encrypt_buf() is adapted to transfer the CID from the
input/output buffer to the CID field in the internal record
structure (which is what ssl_{encrypt/decrypt}_buf() uses).

Note that mbedtls_ssl_in_hdr_len() doesn't need change because
it infers the header length as in_iv - in_hdr, which will account
for the CID for records using such.
2019-05-20 15:32:36 +01:00
..
aes.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
aesni.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
arc4.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
aria.h Leave behaviour on NULL input unspecified in ARIA 2018-12-19 12:51:00 +00: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 Include configuration file to headers 2018-12-16 12:02:50 +02:00
base64.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
bignum.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
blowfish.h Minor Blowfish documentation improvements 2018-12-19 15:48:37 +00:00
bn_mul.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
camellia.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
ccm.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
certs.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
chacha20.h Minor improvements to ChaCha20/Poly1305/ChaChaPoly documentation 2018-12-18 15:30:30 +00:00
chachapoly.h Minor improvements to ChaCha20/Poly1305/ChaChaPoly documentation 2018-12-18 15:30:30 +00:00
check_config.h Check static bounds of CID lengths in check_config.h 2019-05-17 10:20:41 +01:00
cipher.h Fix include file path 2018-12-28 11:11:10 +08:00
cipher_internal.h Move definition to cipher.h 2018-07-01 10:22:53 +03:00
cmac.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
compat-1.3.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
config.h Add CID configuration API 2019-05-20 15:32:36 +01:00
ctr_drbg.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
debug.h Add tests for record encryption/decryption 2019-04-29 12:15:21 +02:00
des.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
dhm.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
ecdh.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
ecdsa.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
ecjpake.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
ecp.h Fix typo in documentation 2019-02-21 16:58:20 +01:00
ecp_internal.h Include configuration file to headers 2018-12-16 12:02:50 +02: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 remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
gcm.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
havege.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
hkdf.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
hmac_drbg.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
md.h Provide standalone version of ssl_decrypt_buf 2019-04-29 12:13:25 +02:00
md2.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
md4.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
md5.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00: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 Include configuration file to headers 2018-12-16 12:02:50 +02: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 Include configuration file for all headers 2018-12-16 12:14:37 +02:00
oid.h Merge remote-tracking branch 'upstream-public/pr/1861' into development 2018-08-10 11:17:14 +01:00
padlock.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
pem.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
pk.h PK: document context validity requirements 2018-12-19 18:10:03 +01:00
pk_internal.h Merge branch 'development' into iotssl-1260-non-blocking-ecc-restricted 2018-06-13 09:52:54 +02:00
pkcs5.h Merge remote-tracking branch 'origin/pr/1375' into mbedtls-2.16 2019-01-30 16:09:08 +00:00
pkcs11.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
pkcs12.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
platform.h Add common feature unavailable error 2018-11-09 13:57:37 +00: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 Fix include file path 2018-12-28 11:11:10 +08:00
poly1305.h Fix include file path 2018-12-28 11:11:10 +08:00
ripemd160.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
rsa.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00: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 Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
sha256.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
sha512.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00
ssl.h Add pointers to in/out CID fields to mbedtls_ssl_context 2019-05-20 15:32:36 +01:00
ssl_cache.h Include configuration file for all headers 2018-12-16 12:14:37 +02:00
ssl_ciphersuites.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
ssl_cookie.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
ssl_internal.h Account for additional record expansion when using CIDs 2019-05-20 15:32:36 +01:00
ssl_ticket.h Include configuration file to headers 2018-12-16 12:02:50 +02:00
threading.h Deprecate hardware acceleration errors 2018-11-09 15:01:07 +00:00
timing.h Allow to forward declare of public structs #1215 2018-07-24 10:02:47 +02:00
version.h Update library version to 2.16.1 2019-03-19 16:20:02 +00:00
x509.h Add MBEDTLS_SELF_TEST check in header files 2018-05-21 18:40:10 +03: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 Merge remote-tracking branch 'upstream-public/pr/1982' into development 2018-12-06 15:54:21 +00:00
x509_csr.h Improve docs for ASN.1 bitstrings and their usage 2019-02-11 21:25:09 +00:00
xtea.h Merge remote-tracking branch 'public/pr/975' into mbedtls-2.16 2019-01-08 16:34:19 +00:00