This series is targeting libcrypto-next and can also be retrieved from: git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git md5-lib-v1
Patches 1-4 remove the MD5 implementations for mips, powerpc, and sparc. These were the only architecture-optimized MD5 implementations and are not worth keeping around. Patches 5-7 introduce a library API for MD5 and HMAC-MD5 and reimplement the crypto_shash "md5" and "hmac(md5)" on top of it. The library API will also be usable directly by various in-kernel users that are stuck with MD5 due to having to implement legacy protocols. This should again look quite boring and familiar, as it mirrors the SHA-1 and SHA-2 changes closely. The MD5 changes are quite a bit simpler, though, since we'll only be supporting the generic C MD5 code. Of course there's also only one variant of MD5, unlike e.g. SHA-2. Eric Biggers (7): mips: cavium-octeon: Remove Octeon optimized MD5 code mips: cavium-octeon: Move octeon-crypto.c into parent dir crypto: powerpc/md5 - Remove PowerPC optimized MD5 code crypto: sparc/md5 - Remove SPARC64 optimized MD5 code lib/crypto: md5: Add MD5 and HMAC-MD5 library functions crypto: md5 - Wrap library and add HMAC support lib/crypto: tests: Add KUnit tests for MD5 and HMAC-MD5 arch/mips/cavium-octeon/Makefile | 2 +- arch/mips/cavium-octeon/crypto/Makefile | 8 - arch/mips/cavium-octeon/crypto/octeon-md5.c | 214 ----------- .../{crypto => }/octeon-crypto.c | 0 arch/mips/configs/cavium_octeon_defconfig | 1 - arch/mips/crypto/Kconfig | 10 - arch/mips/include/asm/octeon/crypto.h | 21 +- arch/powerpc/configs/powernv_defconfig | 1 - arch/powerpc/configs/ppc64_defconfig | 1 - arch/powerpc/crypto/Kconfig | 8 - arch/powerpc/crypto/Makefile | 2 - arch/powerpc/crypto/md5-asm.S | 235 ------------ arch/powerpc/crypto/md5-glue.c | 99 ----- arch/sparc/crypto/Kconfig | 10 - arch/sparc/crypto/Makefile | 4 - arch/sparc/crypto/md5_asm.S | 70 ---- arch/sparc/crypto/md5_glue.c | 174 --------- crypto/Kconfig | 2 +- crypto/md5.c | 359 ++++++++---------- crypto/testmgr.c | 3 + drivers/crypto/img-hash.c | 2 +- include/crypto/md5.h | 181 ++++++++- lib/crypto/Kconfig | 6 + lib/crypto/Makefile | 3 + lib/crypto/md5.c | 290 ++++++++++++++ lib/crypto/tests/Kconfig | 10 + lib/crypto/tests/Makefile | 1 + lib/crypto/tests/md5-testvecs.h | 186 +++++++++ lib/crypto/tests/md5_kunit.c | 39 ++ 29 files changed, 891 insertions(+), 1051 deletions(-) delete mode 100644 arch/mips/cavium-octeon/crypto/Makefile delete mode 100644 arch/mips/cavium-octeon/crypto/octeon-md5.c rename arch/mips/cavium-octeon/{crypto => }/octeon-crypto.c (100%) delete mode 100644 arch/powerpc/crypto/md5-asm.S delete mode 100644 arch/powerpc/crypto/md5-glue.c delete mode 100644 arch/sparc/crypto/md5_asm.S delete mode 100644 arch/sparc/crypto/md5_glue.c create mode 100644 lib/crypto/md5.c create mode 100644 lib/crypto/tests/md5-testvecs.h create mode 100644 lib/crypto/tests/md5_kunit.c base-commit: 186f3edfdd41f2ae87fc40a9ccba52a3bf930994 -- 2.50.1