Page MenuHomeFreeBSD

cxgbe: Use the correct GHASH offset for a GMAC from a full TLS record
ClosedPublic

Authored by jhb on Tue, Sep 15, 6:42 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Oct 4, 11:21 AM
Unknown Object (File)
Thu, Oct 1, 9:01 AM
Unknown Object (File)
Wed, Sep 30, 6:54 AM
Unknown Object (File)
Wed, Sep 30, 6:29 AM
Unknown Object (File)
Tue, Sep 29, 12:13 PM
Unknown Object (File)
Mon, Sep 28, 11:26 PM
Unknown Object (File)
Mon, Sep 28, 2:53 AM
Unknown Object (File)
Sun, Sep 27, 11:15 PM
Subscribers

Details

Summary

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.

Fixes: 9e269eafebfc ("cxgbe: Use partial GCM mode for partial TLS records on T7")
Sponsored by: Chelsio Communications

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable