mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-11-07 04:36:52 -10:00
cxgbe: Use the correct GHASH offset for a GMAC from a full TLS record
If a TLS request transmits all but a part of the GMAC at the end of a
TLS record, the work request asks the crypto engine to return the
calculated GMAC to the driver so it can be sent in a simple TCP packet
when the rest of the TLS record is transmitted in the future.
However, the offset of the returned GHASH offset was calculated
incorrectly in this case causing the driver to not recognize the
cached GMAC and instead use a more wasteful work request in the future
that encrypted the entire TLS record discarding all but the needed
bytes of the trailer.
Note that this does not effect correctness, just efficiency.
Reviewed by: np
Fixes: 9e269eafeb ("cxgbe: Use partial GCM mode for partial TLS records on T7")
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D59711
This commit is contained in:
1 parent
50b3763bab
commit
ed5fc8066f
1 file changed
+1
-1
@@ -1975,7 +1975,7 @@ ktls_write_tls_wr(struct tlspcb *tlsp, struct sge_txq *txq,
|
||||
tlsp->ghash_pending = true;
|
||||
tlsp->ghash_valid = false;
|
||||
tlsp->ghash_lcb = ghash_lcb;
|
||||
if (last_ghash_frag)
|
||||
if (ghash_lcb)
|
||||
tlsp->ghash_offset = offset + plen;
|
||||
else
|
||||
tlsp->ghash_offset = rounddown2(offset + plen,
|
||||
|
||||
Reference in new issue
Block a user