mirror of
https://github.com/opnsense/src.git
synced 2026-04-21 14:17:06 -04:00
The tag length is included as one of the values in the flags byte of block 0 passed to CBC_MAC, so merely copying the first N bytes is insufficient. To avoid adding more sideband data to the CBC MAC software context, pull the generation of block 0, the AAD length, and AAD padding out of cbc_mac.c and into cryptosoft.c. This matches how GCM/GMAC are handled where the length block is constructed in cryptosoft.c and passed as an input to the Update callback. As a result, the CBC MAC Update() routine is now much simpler and simply performs the XOR-and-encrypt step on each input block. While here, avoid a copy to the staging block in the Update routine when one or more full blocks are passed as input to the Update callback. Reviewed by: sef Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D32120 |
||
|---|---|---|
| .. | ||
| common | ||
| crypto | ||
| cudbg | ||
| cxgbei | ||
| firmware | ||
| iw_cxgbe | ||
| tom | ||
| adapter.h | ||
| if_cc.c | ||
| if_ccv.c | ||
| if_cxl.c | ||
| if_cxlv.c | ||
| offload.h | ||
| osdep.h | ||
| t4_clip.c | ||
| t4_clip.h | ||
| t4_filter.c | ||
| t4_if.m | ||
| t4_ioctl.h | ||
| t4_iov.c | ||
| t4_l2t.c | ||
| t4_l2t.h | ||
| t4_main.c | ||
| t4_mp_ring.c | ||
| t4_mp_ring.h | ||
| t4_netmap.c | ||
| t4_sched.c | ||
| t4_sge.c | ||
| t4_smt.c | ||
| t4_smt.h | ||
| t4_tracer.c | ||
| t4_vf.c | ||