mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 15:11:16 +00:00
net: tls: Add tls 1.3 support
TLS 1.3 has minor changes from TLS 1.2 at the record layer. * Header now hardcodes the same version and application content type in the header. * The real content type is appended after the data, before encryption (or after decryption). * The IV is xored with the sequence number, instead of concatinating four bytes of IV with the explicit IV. * Zero-padding: No exlicit length is given, we search backwards from the end of the decrypted data for the first non-zero byte, which is the content type. Currently recv supports reading zero-padding, but there is no way for send to add zero padding. Signed-off-by: Dave Watson <davejwatson@fb.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fedf201e12
commit
130b392c6c
6 changed files with 154 additions and 43 deletions
|
@ -257,7 +257,8 @@ static int tls_push_record(struct sock *sk,
|
|||
tls_fill_prepend(ctx,
|
||||
skb_frag_address(frag),
|
||||
record->len - ctx->tx.prepend_size,
|
||||
record_type);
|
||||
record_type,
|
||||
ctx->crypto_send.info.version);
|
||||
|
||||
/* HW doesn't care about the data in the tag, because it fills it. */
|
||||
dummy_tag_frag.page = skb_frag_page(frag);
|
||||
|
@ -270,7 +271,7 @@ static int tls_push_record(struct sock *sk,
|
|||
spin_unlock_irq(&offload_ctx->lock);
|
||||
offload_ctx->open_record = NULL;
|
||||
set_bit(TLS_PENDING_CLOSED_RECORD, &ctx->flags);
|
||||
tls_advance_record_sn(sk, &ctx->tx);
|
||||
tls_advance_record_sn(sk, &ctx->tx, ctx->crypto_send.info.version);
|
||||
|
||||
for (i = 0; i < record->num_frags; i++) {
|
||||
frag = &record->frags[i];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue