freebsd-dev/crypto/openssl/ssl
John Baldwin 019cff03b3 OpenSSL: KTLS: Check for unprocessed receive records in ktls_configure_crypto.
KTLS implementations currently assume that the start of the in-kernel
socket buffer is aligned with the start of a TLS record for the
receive side.  The socket option to enable KTLS specifies the TLS
sequence number of this initial record.

When read ahead is enabled, data can be pending in the SSL read buffer
after negotiating session keys.  This pending data must be examined to
ensurs that the kernel's socket buffer does not contain a partial TLS
record as well as to determine the correct sequence number of the
first TLS record to be processed by the kernel.

In preparation for enabling receive kernel offload for TLS 1.3, move
the existing logic to handle read ahead from t1_enc.c into ktls.c and
invoke it from ktls_configure_crypto().

Approved by:	jkim
Obtained from:	OpenSSL commit 85773128d0e80cd8dcc772a6931d385b8cf4acd1
MFC after:	1 week
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D34973
2022-05-04 13:08:03 -07:00
..
record OpenSSL: Cleanup record length checks for KTLS 2022-05-04 13:07:36 -07:00
statem OpenSSL: Merge OpenSSL 1.1.1o 2022-05-03 15:07:06 -04:00
bio_ssl.c OpenSSL: Merge OpenSSL 1.1.1m 2021-12-14 16:03:52 -05:00
build.info OpenSSL: Support for kernel TLS offload (KTLS) 2021-01-28 10:24:13 -08:00
d1_lib.c Import OpenSSL 1.1.1l 2021-09-01 00:26:38 -04:00
d1_msg.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
d1_srtp.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
ktls.c OpenSSL: KTLS: Check for unprocessed receive records in ktls_configure_crypto. 2022-05-04 13:08:03 -07:00
methods.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
packet_local.h Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
packet.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
pqueue.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
s3_cbc.c OpenSSL: Merge OpenSSL 1.1.1m 2021-12-14 16:03:52 -05:00
s3_enc.c OpenSSL: Merge OpenSSL 1.1.1o 2022-05-03 15:07:06 -04:00
s3_lib.c OpenSSL: Merge OpenSSL 1.1.1n 2022-03-15 19:37:45 -04:00
s3_msg.c Import OpenSSL 1.1.1l 2021-09-01 00:26:38 -04:00
ssl_asn1.c OpenSSL: Merge OpenSSL 1.1.1m 2021-12-14 16:03:52 -05:00
ssl_cert_table.h
ssl_cert.c OpenSSL: Merge OpenSSL 1.1.1n 2022-03-15 19:37:45 -04:00
ssl_ciph.c OpenSSL: Merge OpenSSL 1.1.1m 2021-12-14 16:03:52 -05:00
ssl_conf.c OpenSSL: Only enable KTLS if it is explicitly configured 2021-08-17 14:41:24 -07:00
ssl_err.c Import OpenSSL 1.1.1l 2021-09-01 00:26:38 -04:00
ssl_init.c OpenSSL: Merge OpenSSL 1.1.1o 2022-05-03 15:07:06 -04:00
ssl_lib.c OpenSSL: Merge OpenSSL 1.1.1o 2022-05-03 15:07:06 -04:00
ssl_local.h OpenSSL: KTLS: Check for unprocessed receive records in ktls_configure_crypto. 2022-05-04 13:08:03 -07:00
ssl_mcnf.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
ssl_rsa.c Merge OpenSSL 1.1.1h. 2020-09-22 16:18:31 +00:00
ssl_sess.c Merge OpenSSL 1.1.1i. 2020-12-09 02:05:14 +00:00
ssl_stat.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
ssl_txt.c OpenSSL: Merge OpenSSL 1.1.1o 2022-05-03 15:07:06 -04:00
ssl_utst.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00
t1_enc.c OpenSSL: KTLS: Check for unprocessed receive records in ktls_configure_crypto. 2022-05-04 13:08:03 -07:00
t1_lib.c Import OpenSSL 1.1.1l 2021-09-01 00:26:38 -04:00
t1_trce.c Merge OpenSSL 1.1.1h. 2020-09-22 16:18:31 +00:00
tls13_enc.c OpenSSL: KTLS: Check for unprocessed receive records in ktls_configure_crypto. 2022-05-04 13:08:03 -07:00
tls_srp.c Merge OpenSSL 1.1.1e. 2020-03-18 02:13:12 +00:00