Skip to content

smb: client: Use AES-CMAC library

Eric Biggers linux-cifs linux-crypto lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest4 patches 1 replyIn review

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/4smb: client: Use AES-CMAC library for SMB3 signature calculationfs/smb/client/Kconfig fs/smb/client/cifsencrypt.c fs/smb/client/cifsglob.h +1 more+30 -740 replies
2/4smb: client: Remove obsolete cmac(aes) allocationfs/smb/client/Kconfig fs/smb/client/cifs_unicode.c fs/smb/client/cifsencrypt.c +7 more+2 -950 replies
3/4smb: client: Make generate_key() return voidfs/smb/client/smb2transport.c+16 -290 replies
4/4smb: client: Drop 'allocate_crypto' arg from smb*_calc_signature()fs/smb/client/smb2transport.c+5 -70 replies

Reviews trailers per patch

All 4 patches have a Reviewed-by or Acked-by.

PatchArd BiesheuvelSteve French
1/4R-b
2/4R-b
3/4R-b
4/4R-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/4] smb: client: Use AES-CMAC library

This series updates the SMB client to use the AES-CMAC library functions that were recently added, instead of a "cmac(aes)" crypto_shash. As usual, this simplifies the code considerably and is much more efficient.

These patches were originally sent as patches 8-11 of the series
https://lore.kernel.org/r/[email protected]/
The only change from that version was adding tags and rebasing. I also added some microbenchmark results below.

This is intended to be taken through the smb tree, either 7.1 or 7.2 depending on maintainer preference.

A few microbenchmarks that demonstrate improved performance:

- Total cycles spent in generate_key() during SMB3 mount decreased from 20640 to 10780 (3 calls total).

- Total cycles spent in smb3_calc_signature() during SMB3 mount decreased from 177620 to 73180 (32 calls & 4255 bytes total).

- Total cycles spent in smb3_calc_signature() while writing 10MB file decreased from 27551180 to 26628360 (10 calls & 10001392 bytes total)

- Total cycles spent in smb3_calc_signature() while reading 10MB file decreased from 28390900 to 27879340 (14 calls & 10001781 bytes total)

Note that my "before" numbers were taken from current mainline which has my changes that made the "cmac(aes)" crypto_shash a bit faster as well. So the speedup vs v7.0 is actually even greater.

Eric Biggers (4):
smb: client: Use AES-CMAC library for SMB3 signature calculation
smb: client: Remove obsolete cmac(aes) allocation
smb: client: Make generate_key() return void
smb: client: Drop 'allocate_crypto' arg from smb*_calc_signature()

 fs/smb/client/Kconfig         |   2 +-
 fs/smb/client/cifs_unicode.c  |   1 +
 fs/smb/client/cifsencrypt.c   |  62 ++++++-------------
 fs/smb/client/cifsfs.c        |   1 -
 fs/smb/client/cifsglob.h      |   7 +--
 fs/smb/client/cifsproto.h     |   3 -
 fs/smb/client/misc.c          |  57 -----------------
 fs/smb/client/sess.c          |  11 ----
 fs/smb/client/smb2proto.h     |   1 -
 fs/smb/client/smb2transport.c | 113 +++++++++-------------------------
 10 files changed, 53 insertions(+), 205 deletions(-)

base-commit: 8541d8f725c673db3bd741947f27974358b2e163

Signature · 1 line
2.53.0