Add GOST/IETF Streebog hash function (GOST R 34.11-2012, RFC 6986) generic hash transformation with appropriate testmgr and tcrypt tests and vectors. Streebog Hash Function (GOST R 34.11-2012, RFC 6986) is one of the Russian cryptographic standard algorithms (called GOST algorithms). References: https://tc26.ru/upload/iblock/fed/feddbb4d26b685903faa2ba11aea43f6.pdf https://tools.ietf.org/html/rfc6986 Tested using testmgr and tcrypt on x86_64, arm, arm64, and s390x on qemu. Changes from v1: - Fix of big-endian problem in add512. - More architectures are tested, including big-endian and 32-bit. Changes from v2: - Register hash in Hash Info for use by IMA. - Add hmac() tests. Vitaly Chikunov (3): crypto: streebog - add Streebog hash function crypto: streebog - register Streebog in hash info for IMA crypto: streebog - add Streebog test vectors crypto/Kconfig | 12 + crypto/Makefile | 1 + crypto/hash_info.c | 4 + crypto/streebog_generic.c | 1142 ++++++++++++++++++++++++++++++++++++++++ crypto/tcrypt.c | 35 ++ crypto/testmgr.c | 24 + crypto/testmgr.h | 114 ++++ include/crypto/hash_info.h | 1 + include/crypto/streebog.h | 34 ++ include/uapi/linux/hash_info.h | 2 + 10 files changed, 1369 insertions(+) create mode 100644 crypto/streebog_generic.c create mode 100644 include/crypto/streebog.h -- 2.11.0