Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

lib/crypto: tests: Add KUnit tests for SHA-384 and SHA-512

Add KUnit test suites for the SHA-384 and SHA-512 library functions,
including the corresponding HMAC support. The core test logic is in the
previously-added hash-test-template.h. This commit just adds the actual
KUnit suites, and it adds the generated test vectors to the tree so that
gen-hash-testvecs.py won't have to be run at build time.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250709200112.258500-4-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>

+723
+12
lib/crypto/tests/Kconfig
··· 12 12 KUnit tests for the SHA-224 and SHA-256 cryptographic hash functions 13 13 and their corresponding HMACs. 14 14 15 + # Option is named *_SHA512_KUNIT_TEST, though both SHA-384 and SHA-512 tests are 16 + # included, for consistency with the naming used elsewhere (e.g. CRYPTO_SHA512). 17 + config CRYPTO_LIB_SHA512_KUNIT_TEST 18 + tristate "KUnit tests for SHA-384 and SHA-512" if !KUNIT_ALL_TESTS 19 + depends on KUNIT 20 + default KUNIT_ALL_TESTS || CRYPTO_SELFTESTS 21 + select CRYPTO_LIB_BENCHMARK_VISIBLE 22 + select CRYPTO_LIB_SHA512 23 + help 24 + KUnit tests for the SHA-384 and SHA-512 cryptographic hash functions 25 + and their corresponding HMACs. 26 + 15 27 config CRYPTO_LIB_BENCHMARK_VISIBLE 16 28 bool 17 29
+1
lib/crypto/tests/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0-or-later 2 2 3 3 obj-$(CONFIG_CRYPTO_LIB_SHA256_KUNIT_TEST) += sha224_kunit.o sha256_kunit.o 4 + obj-$(CONFIG_CRYPTO_LIB_SHA512_KUNIT_TEST) += sha384_kunit.o sha512_kunit.o
+290
lib/crypto/tests/sha384-testvecs.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 + /* This file was generated by: ./scripts/crypto/gen-hash-testvecs.py sha384 */ 3 + 4 + static const struct { 5 + size_t data_len; 6 + u8 digest[SHA384_DIGEST_SIZE]; 7 + } hash_testvecs[] = { 8 + { 9 + .data_len = 0, 10 + .digest = { 11 + 0x38, 0xb0, 0x60, 0xa7, 0x51, 0xac, 0x96, 0x38, 12 + 0x4c, 0xd9, 0x32, 0x7e, 0xb1, 0xb1, 0xe3, 0x6a, 13 + 0x21, 0xfd, 0xb7, 0x11, 0x14, 0xbe, 0x07, 0x43, 14 + 0x4c, 0x0c, 0xc7, 0xbf, 0x63, 0xf6, 0xe1, 0xda, 15 + 0x27, 0x4e, 0xde, 0xbf, 0xe7, 0x6f, 0x65, 0xfb, 16 + 0xd5, 0x1a, 0xd2, 0xf1, 0x48, 0x98, 0xb9, 0x5b, 17 + }, 18 + }, 19 + { 20 + .data_len = 1, 21 + .digest = { 22 + 0x07, 0x34, 0x9d, 0x74, 0x48, 0x76, 0xa5, 0x72, 23 + 0x78, 0x02, 0xb8, 0x6e, 0x21, 0x59, 0xb0, 0x75, 24 + 0x09, 0x68, 0x11, 0x39, 0x53, 0x61, 0xee, 0x8d, 25 + 0xf2, 0x01, 0xf3, 0x90, 0x53, 0x7c, 0xd3, 0xde, 26 + 0x13, 0x9f, 0xd2, 0x74, 0x28, 0xfe, 0xe1, 0xc8, 27 + 0x2e, 0x95, 0xc6, 0x7d, 0x69, 0x4d, 0x04, 0xc6, 28 + }, 29 + }, 30 + { 31 + .data_len = 2, 32 + .digest = { 33 + 0xc4, 0xef, 0x6e, 0x8c, 0x19, 0x1c, 0xaa, 0x0e, 34 + 0x86, 0xf2, 0x68, 0xa1, 0xa0, 0x2d, 0x2e, 0xb2, 35 + 0x84, 0xbc, 0x5d, 0x53, 0x31, 0xf8, 0x03, 0x75, 36 + 0x56, 0xf4, 0x8b, 0x23, 0x1a, 0x68, 0x15, 0x9a, 37 + 0x60, 0xb2, 0xec, 0x05, 0xe1, 0xd4, 0x5e, 0x9e, 38 + 0xe8, 0x7c, 0x9d, 0xe4, 0x0f, 0x9c, 0x3a, 0xdd, 39 + }, 40 + }, 41 + { 42 + .data_len = 3, 43 + .digest = { 44 + 0x29, 0xd2, 0x02, 0xa2, 0x77, 0x24, 0xc7, 0xa7, 45 + 0x23, 0x0c, 0x3e, 0x30, 0x56, 0x47, 0xdb, 0x75, 46 + 0xd4, 0x41, 0xf8, 0xb3, 0x8e, 0x26, 0xf6, 0x92, 47 + 0xbc, 0x20, 0x2e, 0x96, 0xcc, 0x81, 0x5f, 0x32, 48 + 0x82, 0x60, 0xe2, 0xcf, 0x23, 0xd7, 0x3c, 0x90, 49 + 0xb2, 0x56, 0x8f, 0xb6, 0x0f, 0xf0, 0x6b, 0x80, 50 + }, 51 + }, 52 + { 53 + .data_len = 16, 54 + .digest = { 55 + 0x21, 0x4c, 0xac, 0xfe, 0xbd, 0x40, 0x74, 0x1f, 56 + 0xa2, 0x2d, 0x2f, 0x35, 0x91, 0xfd, 0xc9, 0x97, 57 + 0x88, 0x12, 0x6c, 0x0c, 0x6e, 0xd8, 0x50, 0x0b, 58 + 0x4b, 0x2c, 0x89, 0xa6, 0xa6, 0x4a, 0xad, 0xd7, 59 + 0x72, 0x62, 0x2c, 0x62, 0x81, 0xcd, 0x24, 0x74, 60 + 0xf5, 0x44, 0x05, 0xa0, 0x97, 0xea, 0xf1, 0x78, 61 + }, 62 + }, 63 + { 64 + .data_len = 32, 65 + .digest = { 66 + 0x06, 0x8b, 0x92, 0x9f, 0x8b, 0x64, 0xb2, 0x80, 67 + 0xde, 0xcc, 0xde, 0xc3, 0x2f, 0x22, 0x27, 0xe8, 68 + 0x3b, 0x6e, 0x16, 0x21, 0x14, 0x81, 0xbe, 0x5b, 69 + 0xa7, 0xa7, 0x14, 0x8a, 0x00, 0x8f, 0x0d, 0x38, 70 + 0x11, 0x63, 0xe8, 0x3e, 0xb9, 0xf1, 0xcf, 0x87, 71 + 0xb1, 0x28, 0xe5, 0xa1, 0x89, 0xa8, 0x7a, 0xde, 72 + }, 73 + }, 74 + { 75 + .data_len = 48, 76 + .digest = { 77 + 0x9e, 0x37, 0x76, 0x62, 0x98, 0x39, 0xbe, 0xfd, 78 + 0x2b, 0x91, 0x20, 0x54, 0x8f, 0x21, 0xe7, 0x30, 79 + 0x0a, 0x01, 0x7a, 0x65, 0x0b, 0xc9, 0xb3, 0x89, 80 + 0x3c, 0xb6, 0xd3, 0xa8, 0xff, 0xc9, 0x1b, 0x5c, 81 + 0xd4, 0xac, 0xb4, 0x7e, 0xba, 0x94, 0xc3, 0x8a, 82 + 0x26, 0x41, 0xf6, 0xd5, 0xed, 0x6f, 0x27, 0xa7, 83 + }, 84 + }, 85 + { 86 + .data_len = 49, 87 + .digest = { 88 + 0x03, 0x1f, 0xef, 0x5a, 0x16, 0x28, 0x78, 0x10, 89 + 0x29, 0xe8, 0xe2, 0xe4, 0x84, 0x36, 0x19, 0x10, 90 + 0xaa, 0xea, 0xde, 0x06, 0x39, 0x5f, 0xb2, 0x36, 91 + 0xca, 0x24, 0x4f, 0x7b, 0x66, 0xf7, 0xe7, 0x31, 92 + 0xf3, 0x9b, 0x74, 0x1e, 0x17, 0x20, 0x88, 0x62, 93 + 0x50, 0xeb, 0x5f, 0x9a, 0xa7, 0x2c, 0xf4, 0xc9, 94 + }, 95 + }, 96 + { 97 + .data_len = 63, 98 + .digest = { 99 + 0x10, 0xce, 0xed, 0x26, 0xb8, 0xac, 0xc1, 0x1b, 100 + 0xe6, 0xb9, 0xeb, 0x7c, 0xae, 0xcd, 0x55, 0x5a, 101 + 0x20, 0x2a, 0x7b, 0x43, 0xe6, 0x3e, 0xf0, 0x3f, 102 + 0xd9, 0x2f, 0x8c, 0x52, 0xe2, 0xf0, 0xb6, 0x24, 103 + 0x2e, 0xa4, 0xac, 0x24, 0x3a, 0x54, 0x99, 0x71, 104 + 0x65, 0xab, 0x97, 0x2d, 0xb6, 0xe6, 0x94, 0x20, 105 + }, 106 + }, 107 + { 108 + .data_len = 64, 109 + .digest = { 110 + 0x24, 0x6d, 0x9f, 0x59, 0x42, 0x36, 0xca, 0x34, 111 + 0x36, 0x41, 0xa2, 0xcd, 0x69, 0xdf, 0x3d, 0xcb, 112 + 0x64, 0x94, 0x54, 0xb2, 0xed, 0xc1, 0x1c, 0x31, 113 + 0xe3, 0x26, 0xcb, 0x71, 0xe6, 0x98, 0xb2, 0x56, 114 + 0x74, 0x30, 0xa9, 0x15, 0x98, 0x9d, 0xb3, 0x07, 115 + 0xcc, 0xa8, 0xcc, 0x6f, 0x42, 0xb0, 0x9d, 0x2b, 116 + }, 117 + }, 118 + { 119 + .data_len = 65, 120 + .digest = { 121 + 0x85, 0x1f, 0xbc, 0x5e, 0x2a, 0x00, 0x7d, 0xc2, 122 + 0x21, 0x4c, 0x28, 0x14, 0xc5, 0xd8, 0x0c, 0xe8, 123 + 0x55, 0xa5, 0xa0, 0x77, 0xda, 0x8f, 0xce, 0xd4, 124 + 0xf0, 0xcb, 0x30, 0xb8, 0x9c, 0x47, 0xe1, 0x33, 125 + 0x92, 0x18, 0xc5, 0x1f, 0xf2, 0xef, 0xb5, 0xe5, 126 + 0xbc, 0x63, 0xa6, 0xe5, 0x9a, 0xc9, 0xcc, 0xf1, 127 + }, 128 + }, 129 + { 130 + .data_len = 127, 131 + .digest = { 132 + 0x26, 0xd2, 0x4c, 0xb6, 0xce, 0xd8, 0x22, 0x2b, 133 + 0x44, 0x10, 0x6f, 0x59, 0xf7, 0x0d, 0xb9, 0x3f, 134 + 0x7d, 0x29, 0x75, 0xf1, 0x71, 0xb2, 0x71, 0x23, 135 + 0xef, 0x68, 0xb7, 0x25, 0xae, 0xb8, 0x45, 0xf8, 136 + 0xa3, 0xb2, 0x2d, 0x7a, 0x83, 0x0a, 0x05, 0x61, 137 + 0xbc, 0x73, 0xf1, 0xf9, 0xba, 0xfb, 0x3d, 0xc2, 138 + }, 139 + }, 140 + { 141 + .data_len = 128, 142 + .digest = { 143 + 0x7c, 0xe5, 0x7f, 0x5e, 0xea, 0xd9, 0x7e, 0x54, 144 + 0x14, 0x30, 0x6f, 0x37, 0x02, 0x71, 0x0f, 0xf1, 145 + 0x14, 0x16, 0xfa, 0xeb, 0x6e, 0x1e, 0xf0, 0xbe, 146 + 0x10, 0xed, 0x01, 0xbf, 0xa0, 0x9d, 0xcb, 0x07, 147 + 0x5f, 0x8b, 0x7f, 0x44, 0xe1, 0xd9, 0x13, 0xf0, 148 + 0x29, 0xa2, 0x54, 0x32, 0xd9, 0xb0, 0x69, 0x69, 149 + }, 150 + }, 151 + { 152 + .data_len = 129, 153 + .digest = { 154 + 0xc5, 0x54, 0x1f, 0xcb, 0x9d, 0x8f, 0xdf, 0xbf, 155 + 0xab, 0x55, 0x92, 0x1d, 0x3b, 0x93, 0x79, 0x26, 156 + 0xdf, 0xba, 0x9a, 0x28, 0xff, 0xa0, 0x6c, 0xae, 157 + 0x7b, 0x53, 0x8d, 0xfa, 0xef, 0x35, 0x88, 0x19, 158 + 0x16, 0xb8, 0x72, 0x86, 0x76, 0x2a, 0xf5, 0xe6, 159 + 0xec, 0xb2, 0xd7, 0xd4, 0xbe, 0x1a, 0xe4, 0x9f, 160 + }, 161 + }, 162 + { 163 + .data_len = 256, 164 + .digest = { 165 + 0x74, 0x9d, 0x77, 0xfb, 0xe8, 0x0f, 0x0c, 0x2d, 166 + 0x86, 0x0d, 0x49, 0xea, 0x2b, 0xd0, 0x13, 0xd1, 167 + 0xe8, 0xb8, 0xe1, 0xa3, 0x7b, 0x48, 0xab, 0x6a, 168 + 0x21, 0x2b, 0x4c, 0x48, 0x32, 0xb5, 0xdc, 0x31, 169 + 0x7f, 0xd0, 0x32, 0x67, 0x9a, 0xc0, 0x85, 0x53, 170 + 0xef, 0xe9, 0xfb, 0xe1, 0x8b, 0xd8, 0xcc, 0xc2, 171 + }, 172 + }, 173 + { 174 + .data_len = 511, 175 + .digest = { 176 + 0x7b, 0xa9, 0xde, 0xa3, 0x07, 0x5c, 0x4c, 0xaa, 177 + 0x31, 0xc6, 0x9e, 0x55, 0xd4, 0x3f, 0x52, 0xdd, 178 + 0xde, 0x36, 0x70, 0x96, 0x59, 0x6e, 0x90, 0x78, 179 + 0x4c, 0x6a, 0x27, 0xde, 0x83, 0x84, 0xc3, 0x35, 180 + 0x53, 0x76, 0x1d, 0xbf, 0x83, 0x64, 0xcf, 0xf2, 181 + 0xb0, 0x3e, 0x07, 0x27, 0xe4, 0x25, 0x6c, 0x56, 182 + }, 183 + }, 184 + { 185 + .data_len = 513, 186 + .digest = { 187 + 0x53, 0x50, 0xf7, 0x3b, 0x86, 0x1d, 0x7a, 0xe2, 188 + 0x5d, 0x9b, 0x71, 0xfa, 0x25, 0x23, 0x5a, 0xfe, 189 + 0x8c, 0xb9, 0xac, 0x8a, 0x9d, 0x6c, 0x99, 0xbc, 190 + 0x01, 0x9e, 0xa0, 0xd6, 0x3c, 0x03, 0x46, 0x21, 191 + 0xb6, 0xd0, 0xb0, 0xb3, 0x23, 0x23, 0x58, 0xf1, 192 + 0xea, 0x4e, 0xf2, 0x1a, 0x2f, 0x14, 0x2b, 0x5a, 193 + }, 194 + }, 195 + { 196 + .data_len = 1000, 197 + .digest = { 198 + 0x06, 0x03, 0xb3, 0xba, 0x14, 0xe0, 0x28, 0x07, 199 + 0xd5, 0x15, 0x97, 0x1f, 0x87, 0xef, 0x80, 0xba, 200 + 0x48, 0x03, 0xb6, 0xc5, 0x47, 0xca, 0x8c, 0x95, 201 + 0xed, 0x95, 0xfd, 0x27, 0xb6, 0x83, 0xda, 0x6d, 202 + 0xa7, 0xb2, 0x1a, 0xd2, 0xb5, 0x89, 0xbb, 0xb4, 203 + 0x00, 0xbc, 0x86, 0x54, 0x7d, 0x5a, 0x91, 0x63, 204 + }, 205 + }, 206 + { 207 + .data_len = 3333, 208 + .digest = { 209 + 0xd3, 0xe0, 0x6e, 0x7d, 0x80, 0x08, 0x53, 0x07, 210 + 0x8c, 0x0f, 0xc2, 0xce, 0x9f, 0x09, 0x86, 0x31, 211 + 0x28, 0x24, 0x3c, 0x3e, 0x2d, 0x36, 0xb4, 0x28, 212 + 0xc7, 0x1b, 0x70, 0xf9, 0x35, 0x9b, 0x10, 0xfa, 213 + 0xc8, 0x5e, 0x2b, 0x32, 0x7f, 0x65, 0xd2, 0x68, 214 + 0xb2, 0x84, 0x90, 0xf6, 0xc8, 0x6e, 0xb8, 0xdb, 215 + }, 216 + }, 217 + { 218 + .data_len = 4096, 219 + .digest = { 220 + 0x39, 0xeb, 0xc4, 0xb3, 0x08, 0xe2, 0xdd, 0xf3, 221 + 0x9f, 0x5e, 0x44, 0x93, 0x63, 0x8b, 0x39, 0x57, 222 + 0xd7, 0xe8, 0x7e, 0x3d, 0x74, 0xf8, 0xf6, 0xab, 223 + 0xfe, 0x74, 0x51, 0xe4, 0x1b, 0x4a, 0x23, 0xbc, 224 + 0x69, 0xfc, 0xbb, 0xa7, 0x71, 0xa7, 0x86, 0x24, 225 + 0xcc, 0x85, 0x70, 0xf2, 0x31, 0x0d, 0x47, 0xc0, 226 + }, 227 + }, 228 + { 229 + .data_len = 4128, 230 + .digest = { 231 + 0x23, 0xc3, 0x97, 0x06, 0x79, 0xbe, 0x8a, 0xe9, 232 + 0x1f, 0x1a, 0x43, 0xad, 0xe6, 0x76, 0x23, 0x13, 233 + 0x64, 0xae, 0xda, 0xe7, 0x8b, 0x88, 0x96, 0xb6, 234 + 0xa9, 0x1a, 0xb7, 0x80, 0x8e, 0x1c, 0x94, 0x98, 235 + 0x09, 0x08, 0xdb, 0x8e, 0x4d, 0x0a, 0x09, 0x65, 236 + 0xe5, 0x21, 0x1c, 0xd9, 0xab, 0x64, 0xbb, 0xea, 237 + }, 238 + }, 239 + { 240 + .data_len = 4160, 241 + .digest = { 242 + 0x4f, 0x4a, 0x88, 0x9f, 0x40, 0x89, 0xfe, 0xb6, 243 + 0xda, 0x9d, 0xcd, 0xa5, 0x27, 0xd2, 0x29, 0x71, 244 + 0x58, 0x60, 0xd4, 0x55, 0xfe, 0x92, 0xcd, 0x51, 245 + 0x8b, 0xec, 0x3b, 0xd3, 0xd1, 0x3e, 0x8d, 0x36, 246 + 0x7b, 0xb1, 0x41, 0xef, 0xec, 0x9d, 0xdf, 0xcd, 247 + 0x4e, 0xde, 0x5a, 0xe5, 0xe5, 0x16, 0x14, 0x54, 248 + }, 249 + }, 250 + { 251 + .data_len = 4224, 252 + .digest = { 253 + 0xb5, 0xa5, 0x3e, 0x86, 0x39, 0x20, 0x49, 0x4c, 254 + 0xcd, 0xb6, 0xdd, 0x03, 0xfe, 0x36, 0x6e, 0xa6, 255 + 0xfc, 0xff, 0x19, 0x33, 0x0c, 0x52, 0xea, 0x37, 256 + 0x94, 0xda, 0x5b, 0x27, 0xd1, 0x99, 0x5a, 0x89, 257 + 0x40, 0x78, 0xfa, 0x96, 0xb9, 0x2f, 0xa0, 0x48, 258 + 0xc9, 0xf8, 0x5c, 0xf0, 0x95, 0xf4, 0xea, 0x61, 259 + }, 260 + }, 261 + { 262 + .data_len = 16384, 263 + .digest = { 264 + 0x6f, 0x48, 0x6f, 0x21, 0xb9, 0xc1, 0xcc, 0x92, 265 + 0x4e, 0xed, 0x6b, 0xef, 0x51, 0x88, 0xdf, 0xfd, 266 + 0xcb, 0x3d, 0x44, 0x9c, 0x37, 0x85, 0xb4, 0xc5, 267 + 0xeb, 0x60, 0x55, 0x58, 0x01, 0x47, 0xbf, 0x75, 268 + 0x9b, 0xa8, 0x82, 0x8c, 0xec, 0xe8, 0x0e, 0x58, 269 + 0xc1, 0x26, 0xa2, 0x45, 0x87, 0x3e, 0xfb, 0x8d, 270 + }, 271 + }, 272 + }; 273 + 274 + static const u8 hash_testvec_consolidated[SHA384_DIGEST_SIZE] = { 275 + 0xfc, 0xcb, 0xe6, 0x42, 0xf0, 0x9e, 0x2b, 0x77, 276 + 0x7b, 0x62, 0xe8, 0x70, 0x86, 0xbf, 0xaf, 0x3c, 277 + 0xbb, 0x02, 0xd9, 0x86, 0xdc, 0xba, 0xd3, 0xa4, 278 + 0x0d, 0x8d, 0xb3, 0x2d, 0x0b, 0xa3, 0x84, 0x04, 279 + 0x7c, 0x16, 0x37, 0xaf, 0xba, 0x1e, 0xd4, 0x2f, 280 + 0x4c, 0x57, 0x55, 0x86, 0x52, 0x47, 0x9a, 0xec, 281 + }; 282 + 283 + static const u8 hmac_testvec_consolidated[SHA384_DIGEST_SIZE] = { 284 + 0x82, 0xcf, 0x7d, 0x80, 0x71, 0xdb, 0x91, 0x09, 285 + 0x67, 0xe8, 0x44, 0x4a, 0x0d, 0x03, 0xb1, 0xf9, 286 + 0x62, 0xde, 0x4e, 0xbb, 0x1f, 0x41, 0xcd, 0x62, 287 + 0x39, 0x6b, 0x2d, 0x44, 0x0e, 0xde, 0x98, 0x73, 288 + 0xdd, 0xeb, 0x9d, 0x53, 0xfb, 0xee, 0xd1, 0xc3, 289 + 0x96, 0xdb, 0xfc, 0x2a, 0x38, 0x90, 0x02, 0x53, 290 + };
+39
lib/crypto/tests/sha384_kunit.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2025 Google LLC 4 + */ 5 + #include <crypto/sha2.h> 6 + #include "sha384-testvecs.h" 7 + 8 + #define HASH sha384 9 + #define HASH_CTX sha384_ctx 10 + #define HASH_SIZE SHA384_DIGEST_SIZE 11 + #define HASH_INIT sha384_init 12 + #define HASH_UPDATE sha384_update 13 + #define HASH_FINAL sha384_final 14 + #define HMAC_KEY hmac_sha384_key 15 + #define HMAC_CTX hmac_sha384_ctx 16 + #define HMAC_PREPAREKEY hmac_sha384_preparekey 17 + #define HMAC_INIT hmac_sha384_init 18 + #define HMAC_UPDATE hmac_sha384_update 19 + #define HMAC_FINAL hmac_sha384_final 20 + #define HMAC hmac_sha384 21 + #define HMAC_USINGRAWKEY hmac_sha384_usingrawkey 22 + #include "hash-test-template.h" 23 + 24 + static struct kunit_case hash_test_cases[] = { 25 + HASH_KUNIT_CASES, 26 + KUNIT_CASE(benchmark_hash), 27 + {}, 28 + }; 29 + 30 + static struct kunit_suite hash_test_suite = { 31 + .name = "sha384", 32 + .test_cases = hash_test_cases, 33 + .suite_init = hash_suite_init, 34 + .suite_exit = hash_suite_exit, 35 + }; 36 + kunit_test_suite(hash_test_suite); 37 + 38 + MODULE_DESCRIPTION("KUnit tests and benchmark for SHA-384 and HMAC-SHA384"); 39 + MODULE_LICENSE("GPL");
+342
lib/crypto/tests/sha512-testvecs.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 + /* This file was generated by: ./scripts/crypto/gen-hash-testvecs.py sha512 */ 3 + 4 + static const struct { 5 + size_t data_len; 6 + u8 digest[SHA512_DIGEST_SIZE]; 7 + } hash_testvecs[] = { 8 + { 9 + .data_len = 0, 10 + .digest = { 11 + 0xcf, 0x83, 0xe1, 0x35, 0x7e, 0xef, 0xb8, 0xbd, 12 + 0xf1, 0x54, 0x28, 0x50, 0xd6, 0x6d, 0x80, 0x07, 13 + 0xd6, 0x20, 0xe4, 0x05, 0x0b, 0x57, 0x15, 0xdc, 14 + 0x83, 0xf4, 0xa9, 0x21, 0xd3, 0x6c, 0xe9, 0xce, 15 + 0x47, 0xd0, 0xd1, 0x3c, 0x5d, 0x85, 0xf2, 0xb0, 16 + 0xff, 0x83, 0x18, 0xd2, 0x87, 0x7e, 0xec, 0x2f, 17 + 0x63, 0xb9, 0x31, 0xbd, 0x47, 0x41, 0x7a, 0x81, 18 + 0xa5, 0x38, 0x32, 0x7a, 0xf9, 0x27, 0xda, 0x3e, 19 + }, 20 + }, 21 + { 22 + .data_len = 1, 23 + .digest = { 24 + 0x12, 0xf2, 0xb6, 0xec, 0x84, 0xa0, 0x8e, 0xcf, 25 + 0x0d, 0xec, 0x17, 0xfd, 0x1f, 0x91, 0x15, 0x69, 26 + 0xd2, 0xb9, 0x89, 0xff, 0x89, 0x9d, 0xd9, 0x0b, 27 + 0x7a, 0x0f, 0x82, 0x94, 0x57, 0x5b, 0xf3, 0x08, 28 + 0x42, 0x45, 0x23, 0x08, 0x44, 0x54, 0x35, 0x36, 29 + 0xed, 0x4b, 0xb3, 0xa5, 0xbf, 0x17, 0xc1, 0x3c, 30 + 0xdd, 0x25, 0x4a, 0x30, 0x64, 0xed, 0x66, 0x06, 31 + 0x72, 0x05, 0xc2, 0x71, 0x5a, 0x6c, 0xd0, 0x75, 32 + }, 33 + }, 34 + { 35 + .data_len = 2, 36 + .digest = { 37 + 0x01, 0x37, 0x97, 0xcc, 0x0a, 0xcb, 0x61, 0xa4, 38 + 0x93, 0x26, 0x36, 0x4b, 0xd2, 0x27, 0xea, 0xaf, 39 + 0xda, 0xfa, 0x8f, 0x86, 0x12, 0x99, 0x7b, 0xc8, 40 + 0x94, 0xa9, 0x1c, 0x70, 0x3f, 0x43, 0xf3, 0x9a, 41 + 0x02, 0xc5, 0x0d, 0x8e, 0x01, 0xf8, 0x3a, 0xa6, 42 + 0xec, 0xaa, 0xc5, 0xc7, 0x9d, 0x3d, 0x7f, 0x9d, 43 + 0x47, 0x0e, 0x58, 0x2d, 0x9a, 0x2d, 0x51, 0x1d, 44 + 0xc3, 0x77, 0xb2, 0x7f, 0x69, 0x9a, 0xc3, 0x50, 45 + }, 46 + }, 47 + { 48 + .data_len = 3, 49 + .digest = { 50 + 0xd4, 0xa3, 0xc2, 0x50, 0xa0, 0x33, 0xc6, 0xe4, 51 + 0x50, 0x08, 0xea, 0xc9, 0xb8, 0x35, 0x55, 0x34, 52 + 0x61, 0xb8, 0x2e, 0xa2, 0xe5, 0xdc, 0x04, 0x70, 53 + 0x99, 0x86, 0x5f, 0xee, 0x2e, 0x1e, 0xd4, 0x40, 54 + 0xf8, 0x88, 0x01, 0x84, 0x97, 0x16, 0x6a, 0xd3, 55 + 0x0a, 0xb4, 0xe2, 0x34, 0xca, 0x1f, 0xfc, 0x6b, 56 + 0x61, 0xf3, 0x7f, 0x72, 0xfa, 0x8d, 0x22, 0xcf, 57 + 0x7f, 0x2d, 0x87, 0x9d, 0xbb, 0x59, 0xac, 0x53, 58 + }, 59 + }, 60 + { 61 + .data_len = 16, 62 + .digest = { 63 + 0x3b, 0xae, 0x66, 0x48, 0x0f, 0x35, 0x3c, 0xcd, 64 + 0x92, 0xa9, 0xb6, 0xb9, 0xfe, 0x19, 0x90, 0x92, 65 + 0x52, 0xa5, 0x02, 0xd1, 0x89, 0xcf, 0x98, 0x86, 66 + 0x29, 0x28, 0xab, 0xc4, 0x9e, 0xcc, 0x75, 0x38, 67 + 0x95, 0xa7, 0x59, 0x43, 0xef, 0x8c, 0x3a, 0xeb, 68 + 0x40, 0xa3, 0xbe, 0x2b, 0x75, 0x0d, 0xfd, 0xc3, 69 + 0xaf, 0x69, 0x08, 0xad, 0x9f, 0xc9, 0xf4, 0x96, 70 + 0xa9, 0xc2, 0x2b, 0x1b, 0x66, 0x6f, 0x1d, 0x28, 71 + }, 72 + }, 73 + { 74 + .data_len = 32, 75 + .digest = { 76 + 0x9c, 0xfb, 0x3c, 0x40, 0xd5, 0x3b, 0xc4, 0xff, 77 + 0x07, 0xa7, 0xf0, 0x24, 0xb7, 0xd6, 0x5e, 0x12, 78 + 0x5b, 0x85, 0xb5, 0xa5, 0xe0, 0x82, 0xa6, 0xda, 79 + 0x30, 0x13, 0x2f, 0x1a, 0xe3, 0xd0, 0x55, 0xcb, 80 + 0x14, 0x19, 0xe2, 0x09, 0x91, 0x96, 0x26, 0xf9, 81 + 0x38, 0xd7, 0xfa, 0x4a, 0xfb, 0x2f, 0x6f, 0xc0, 82 + 0xf4, 0x95, 0xc3, 0x40, 0xf6, 0xdb, 0xe7, 0xc2, 83 + 0x79, 0x23, 0xa4, 0x20, 0x96, 0x3a, 0x00, 0xbb, 84 + }, 85 + }, 86 + { 87 + .data_len = 48, 88 + .digest = { 89 + 0x92, 0x1a, 0x21, 0x06, 0x6e, 0x08, 0x84, 0x09, 90 + 0x23, 0x8d, 0x63, 0xec, 0xd6, 0x72, 0xd3, 0x21, 91 + 0x51, 0xe8, 0x65, 0x94, 0xf8, 0x1f, 0x5f, 0xa7, 92 + 0xab, 0x6b, 0xae, 0x1c, 0x2c, 0xaf, 0xf9, 0x0c, 93 + 0x7c, 0x5a, 0x74, 0x1d, 0x90, 0x26, 0x4a, 0xc3, 94 + 0xa1, 0x60, 0xf4, 0x1d, 0xd5, 0x3c, 0x86, 0xe8, 95 + 0x00, 0xb3, 0x99, 0x27, 0xb8, 0x9d, 0x3e, 0x17, 96 + 0x32, 0x5a, 0x34, 0x3e, 0xc2, 0xb2, 0x6e, 0xbd, 97 + }, 98 + }, 99 + { 100 + .data_len = 49, 101 + .digest = { 102 + 0x5a, 0x1f, 0x40, 0x5f, 0xee, 0xf2, 0xdd, 0x67, 103 + 0x01, 0xcb, 0x26, 0x58, 0xf5, 0x1b, 0xe8, 0x7e, 104 + 0xeb, 0x7d, 0x9d, 0xef, 0xd3, 0x55, 0xd6, 0x89, 105 + 0x2e, 0xfc, 0x14, 0xe2, 0x98, 0x4c, 0x31, 0xaa, 106 + 0x69, 0x00, 0xf9, 0x4e, 0xb0, 0x75, 0x1b, 0x71, 107 + 0x93, 0x60, 0xdf, 0xa1, 0xaf, 0xba, 0xc2, 0xd3, 108 + 0x6a, 0x22, 0xa0, 0xff, 0xb5, 0x66, 0x15, 0x66, 109 + 0xd2, 0x24, 0x9a, 0x7e, 0xe4, 0xe5, 0x84, 0xdb, 110 + }, 111 + }, 112 + { 113 + .data_len = 63, 114 + .digest = { 115 + 0x32, 0xbd, 0xcf, 0x72, 0xa9, 0x74, 0x87, 0xe6, 116 + 0x2a, 0x53, 0x7e, 0x6d, 0xac, 0xc2, 0xdd, 0x2c, 117 + 0x87, 0xb3, 0xf7, 0x90, 0x29, 0xc9, 0x16, 0x59, 118 + 0xd2, 0x7e, 0x6e, 0x84, 0x1d, 0xa6, 0xaf, 0x3c, 119 + 0xca, 0xd6, 0x1a, 0x24, 0xa4, 0xcd, 0x59, 0x44, 120 + 0x20, 0xd7, 0xd2, 0x5b, 0x97, 0xda, 0xd5, 0xa9, 121 + 0x23, 0xb1, 0xa4, 0x60, 0xb8, 0x05, 0x98, 0xdc, 122 + 0xef, 0x89, 0x81, 0xe3, 0x3a, 0xf9, 0x24, 0x37, 123 + }, 124 + }, 125 + { 126 + .data_len = 64, 127 + .digest = { 128 + 0x96, 0x3a, 0x1a, 0xdd, 0x1b, 0xeb, 0x1a, 0x55, 129 + 0x24, 0x52, 0x3d, 0xec, 0x9d, 0x52, 0x2e, 0xa6, 130 + 0xfe, 0x81, 0xd6, 0x98, 0xac, 0xcc, 0x60, 0x56, 131 + 0x04, 0x9d, 0xa3, 0xf3, 0x56, 0x05, 0xe4, 0x8a, 132 + 0x61, 0xaf, 0x6f, 0x6e, 0x8e, 0x75, 0x67, 0x3a, 133 + 0xd2, 0xb0, 0x85, 0x2d, 0x17, 0xd2, 0x86, 0x8c, 134 + 0x50, 0x4b, 0xdd, 0xef, 0x35, 0x00, 0xde, 0x29, 135 + 0x3d, 0x4b, 0x04, 0x12, 0x8a, 0x81, 0xe2, 0xcc, 136 + }, 137 + }, 138 + { 139 + .data_len = 65, 140 + .digest = { 141 + 0x9c, 0x6e, 0xf0, 0x6f, 0x71, 0x77, 0xd5, 0xd0, 142 + 0xbb, 0x70, 0x1f, 0xcb, 0xbd, 0xd3, 0xfe, 0x23, 143 + 0x71, 0x78, 0xad, 0x3a, 0xd2, 0x1e, 0x34, 0xf4, 144 + 0x6d, 0xb4, 0xa2, 0x0a, 0x24, 0xcb, 0xe1, 0x99, 145 + 0x07, 0xd0, 0x79, 0x8f, 0x7e, 0x69, 0x31, 0x68, 146 + 0x29, 0xb5, 0x85, 0x82, 0x67, 0xdc, 0x4a, 0x8d, 147 + 0x44, 0x04, 0x02, 0xc0, 0xfb, 0xd2, 0x19, 0x66, 148 + 0x1e, 0x25, 0x8b, 0xd2, 0x5a, 0x59, 0x68, 0xc0, 149 + }, 150 + }, 151 + { 152 + .data_len = 127, 153 + .digest = { 154 + 0xb8, 0x8f, 0xa8, 0x29, 0x4d, 0xcf, 0x5f, 0x73, 155 + 0x3c, 0x55, 0x43, 0xd9, 0x1c, 0xbc, 0x0c, 0x17, 156 + 0x75, 0x0b, 0xc7, 0xb1, 0x1d, 0x9f, 0x7b, 0x2f, 157 + 0x4c, 0x3d, 0x2a, 0x71, 0xfb, 0x1b, 0x0e, 0xca, 158 + 0x4e, 0x96, 0xa0, 0x95, 0xee, 0xf4, 0x93, 0x76, 159 + 0x36, 0xfb, 0x5d, 0xd3, 0x46, 0xc4, 0x1d, 0x41, 160 + 0x32, 0x92, 0x9d, 0xed, 0xdb, 0x7f, 0xfa, 0xb3, 161 + 0x91, 0x61, 0x3e, 0xd6, 0xb2, 0xca, 0x8d, 0x81, 162 + }, 163 + }, 164 + { 165 + .data_len = 128, 166 + .digest = { 167 + 0x54, 0xac, 0x1a, 0xa1, 0xa6, 0xa3, 0x47, 0x2a, 168 + 0x5a, 0xac, 0x1a, 0x3a, 0x4b, 0xa1, 0x11, 0x08, 169 + 0xa7, 0x90, 0xec, 0x52, 0xcb, 0xaf, 0x68, 0x41, 170 + 0x38, 0x44, 0x53, 0x94, 0x93, 0x30, 0xaf, 0x3a, 171 + 0xec, 0x99, 0x3a, 0x7d, 0x2a, 0xd5, 0xb6, 0x05, 172 + 0xf5, 0xa6, 0xbb, 0x9b, 0x82, 0xc2, 0xbd, 0x98, 173 + 0x28, 0x62, 0x98, 0x3e, 0xe4, 0x27, 0x9b, 0xaa, 174 + 0xce, 0x0a, 0x6f, 0xab, 0x1b, 0x16, 0xf3, 0xdd, 175 + }, 176 + }, 177 + { 178 + .data_len = 129, 179 + .digest = { 180 + 0x04, 0x37, 0x60, 0xbc, 0xb3, 0xb1, 0xc6, 0x2d, 181 + 0x42, 0xc5, 0xd7, 0x7e, 0xd9, 0x86, 0x82, 0xe0, 182 + 0xf4, 0x62, 0xad, 0x75, 0x68, 0x0b, 0xc7, 0xa8, 183 + 0xd6, 0x9a, 0x76, 0xe5, 0x29, 0xb8, 0x37, 0x30, 184 + 0x0f, 0xc0, 0xbc, 0x81, 0x94, 0x7c, 0x13, 0xf4, 185 + 0x9c, 0x27, 0xbc, 0x59, 0xa1, 0x70, 0x6a, 0x87, 186 + 0x20, 0x12, 0x0a, 0x2a, 0x62, 0x5e, 0x6f, 0xca, 187 + 0x91, 0x6b, 0x34, 0x7e, 0x4c, 0x0d, 0xf0, 0x6c, 188 + }, 189 + }, 190 + { 191 + .data_len = 256, 192 + .digest = { 193 + 0x4b, 0x7c, 0x1f, 0x53, 0x52, 0xcc, 0x30, 0xed, 194 + 0x91, 0x44, 0x6f, 0x0d, 0xb5, 0x41, 0x79, 0x99, 195 + 0xaf, 0x82, 0x65, 0x52, 0x03, 0xf8, 0x55, 0x74, 196 + 0x7c, 0xd9, 0x41, 0xd6, 0xe8, 0x91, 0xa4, 0x85, 197 + 0xcb, 0x0a, 0x60, 0x08, 0x76, 0x07, 0x60, 0x99, 198 + 0x89, 0x76, 0xba, 0x84, 0xbd, 0x0b, 0xf2, 0xb3, 199 + 0xdc, 0xf3, 0x33, 0xd1, 0x9b, 0x0b, 0x2e, 0x5d, 200 + 0xf6, 0x9d, 0x0f, 0x67, 0xf4, 0x86, 0xb3, 0xd5, 201 + }, 202 + }, 203 + { 204 + .data_len = 511, 205 + .digest = { 206 + 0x7d, 0x83, 0x78, 0x6a, 0x5d, 0x52, 0x42, 0x2a, 207 + 0xb1, 0x97, 0xc6, 0x62, 0xa2, 0x2a, 0x7c, 0x8b, 208 + 0xcd, 0x4f, 0xa4, 0x86, 0x19, 0xa4, 0x5b, 0x1d, 209 + 0xc7, 0x6f, 0x2f, 0x9c, 0x03, 0xc3, 0x45, 0x2e, 210 + 0xa7, 0x8e, 0x38, 0xf2, 0x57, 0x55, 0x89, 0x47, 211 + 0xed, 0xeb, 0x81, 0xe2, 0xe0, 0x55, 0x9f, 0xe6, 212 + 0xca, 0x03, 0x59, 0xd3, 0xd4, 0xba, 0xc9, 0x2d, 213 + 0xaf, 0xbb, 0x62, 0x2e, 0xe6, 0x89, 0xe4, 0x11, 214 + }, 215 + }, 216 + { 217 + .data_len = 513, 218 + .digest = { 219 + 0xe9, 0x14, 0xe7, 0x01, 0xd0, 0x81, 0x09, 0x51, 220 + 0x78, 0x1c, 0x8e, 0x6c, 0x00, 0xd3, 0x28, 0xa0, 221 + 0x2a, 0x7b, 0xd6, 0x25, 0xca, 0xd0, 0xf9, 0xb8, 222 + 0xd8, 0xcf, 0xd0, 0xb7, 0x48, 0x25, 0xb7, 0x6a, 223 + 0x53, 0x8e, 0xf8, 0x52, 0x9c, 0x1f, 0x7d, 0xae, 224 + 0x4c, 0x22, 0xd5, 0x9d, 0xf0, 0xaf, 0x98, 0x91, 225 + 0x19, 0x1f, 0x99, 0xbd, 0xa6, 0xc2, 0x0f, 0x05, 226 + 0xa5, 0x9f, 0x3e, 0x87, 0xed, 0xc3, 0xab, 0x92, 227 + }, 228 + }, 229 + { 230 + .data_len = 1000, 231 + .digest = { 232 + 0x2e, 0xf4, 0x72, 0xd2, 0xd9, 0x4a, 0xd5, 0xf9, 233 + 0x20, 0x03, 0x4a, 0xad, 0xed, 0xa9, 0x1b, 0x64, 234 + 0x73, 0x38, 0xc6, 0x30, 0xa8, 0x7f, 0xf9, 0x3b, 235 + 0x8c, 0xbc, 0xa1, 0x2d, 0x22, 0x7b, 0x84, 0x37, 236 + 0xf5, 0xba, 0xee, 0xf0, 0x80, 0x9d, 0xe3, 0x82, 237 + 0xbd, 0x07, 0x68, 0x15, 0x01, 0x22, 0xf6, 0x88, 238 + 0x07, 0x0b, 0xfd, 0xb7, 0xb1, 0xc0, 0x68, 0x4b, 239 + 0x8d, 0x05, 0xec, 0xfb, 0xcd, 0xde, 0xa4, 0x2a, 240 + }, 241 + }, 242 + { 243 + .data_len = 3333, 244 + .digest = { 245 + 0x73, 0xe3, 0xe5, 0x87, 0x01, 0x0a, 0x29, 0x4d, 246 + 0xad, 0x92, 0x67, 0x64, 0xc7, 0x71, 0x0b, 0x22, 247 + 0x80, 0x8a, 0x6e, 0x8b, 0x20, 0x73, 0xb2, 0xd7, 248 + 0x98, 0x20, 0x35, 0x42, 0x42, 0x5d, 0x85, 0x12, 249 + 0xb0, 0x06, 0x69, 0x63, 0x5f, 0x5b, 0xe7, 0x63, 250 + 0x6f, 0xe6, 0x18, 0xa6, 0xc1, 0xa6, 0xae, 0x27, 251 + 0xa7, 0x6a, 0x73, 0x6b, 0x27, 0xd5, 0x47, 0xe1, 252 + 0xa2, 0x7d, 0xe4, 0x0d, 0xbd, 0x23, 0x7b, 0x7a, 253 + }, 254 + }, 255 + { 256 + .data_len = 4096, 257 + .digest = { 258 + 0x11, 0x5b, 0x77, 0x36, 0x6b, 0x3b, 0xe4, 0x42, 259 + 0xe4, 0x92, 0x23, 0xcb, 0x0c, 0x06, 0xff, 0xb7, 260 + 0x0c, 0x71, 0x64, 0xd9, 0x8a, 0x57, 0x75, 0x7b, 261 + 0xa2, 0xd2, 0x17, 0x19, 0xbb, 0xb5, 0x3c, 0xb3, 262 + 0x5f, 0xae, 0x35, 0x75, 0x8e, 0xa8, 0x97, 0x43, 263 + 0xce, 0xfe, 0x41, 0x84, 0xfe, 0xcb, 0x18, 0x70, 264 + 0x68, 0x2e, 0x16, 0x19, 0xd5, 0x10, 0x0d, 0x2f, 265 + 0x61, 0x87, 0x79, 0xee, 0x5f, 0x24, 0xdd, 0x76, 266 + }, 267 + }, 268 + { 269 + .data_len = 4128, 270 + .digest = { 271 + 0x9e, 0x96, 0xe1, 0x0a, 0xb2, 0xd5, 0xba, 0xcf, 272 + 0x27, 0xba, 0x6f, 0x85, 0xe9, 0xbf, 0x96, 0xb9, 273 + 0x5a, 0x00, 0x00, 0x06, 0xdc, 0xb7, 0xaf, 0x0a, 274 + 0x8f, 0x1d, 0x31, 0xf6, 0xce, 0xc3, 0x50, 0x2e, 275 + 0x61, 0x3a, 0x8b, 0x28, 0xaf, 0xb2, 0x50, 0x0d, 276 + 0x00, 0x98, 0x02, 0x11, 0x6b, 0xfa, 0x51, 0xc1, 277 + 0xde, 0xe1, 0x34, 0x9f, 0xda, 0x11, 0x63, 0xfa, 278 + 0x0a, 0xa0, 0xa2, 0x67, 0x39, 0xeb, 0x9b, 0xf1, 279 + }, 280 + }, 281 + { 282 + .data_len = 4160, 283 + .digest = { 284 + 0x46, 0x4e, 0x81, 0xd1, 0x08, 0x2a, 0x46, 0x12, 285 + 0x4e, 0xae, 0x1f, 0x5d, 0x57, 0xe5, 0x19, 0xbc, 286 + 0x76, 0x38, 0xb6, 0xa7, 0xe3, 0x72, 0x6d, 0xaf, 287 + 0x80, 0x3b, 0xd0, 0xbc, 0x06, 0xe8, 0xab, 0xab, 288 + 0x86, 0x4b, 0x0b, 0x7a, 0x61, 0xa6, 0x13, 0xff, 289 + 0x64, 0x47, 0x89, 0xb7, 0x63, 0x8a, 0xa5, 0x4c, 290 + 0x9f, 0x52, 0x70, 0xeb, 0x21, 0xe5, 0x2d, 0xe9, 291 + 0xe7, 0xab, 0x1c, 0x0e, 0x74, 0xf5, 0x72, 0xec, 292 + }, 293 + }, 294 + { 295 + .data_len = 4224, 296 + .digest = { 297 + 0xfa, 0x6e, 0xff, 0x3c, 0xc1, 0x98, 0x49, 0x42, 298 + 0x34, 0x67, 0xd4, 0xd3, 0xfa, 0xae, 0x27, 0xe4, 299 + 0x77, 0x11, 0x84, 0xd2, 0x57, 0x99, 0xf8, 0xfd, 300 + 0x41, 0x50, 0x84, 0x80, 0x7f, 0xf7, 0xb2, 0xd3, 301 + 0x88, 0x21, 0x9c, 0xe8, 0xb9, 0x05, 0xd3, 0x48, 302 + 0x64, 0xc5, 0xb7, 0x29, 0xd9, 0x21, 0x17, 0xad, 303 + 0x89, 0x9c, 0x79, 0x55, 0x51, 0x0b, 0x96, 0x3e, 304 + 0x10, 0x40, 0xe1, 0xdd, 0x7b, 0x39, 0x40, 0x86, 305 + }, 306 + }, 307 + { 308 + .data_len = 16384, 309 + .digest = { 310 + 0x41, 0xb3, 0xd2, 0x93, 0xcd, 0x79, 0x84, 0xc2, 311 + 0xf5, 0xea, 0xf3, 0xb3, 0x94, 0x23, 0xaa, 0x76, 312 + 0x87, 0x5f, 0xe3, 0xd2, 0x03, 0xd8, 0x00, 0xbb, 313 + 0xa1, 0x55, 0xe4, 0xcb, 0x16, 0x04, 0x5b, 0xdf, 314 + 0xf8, 0xd2, 0x63, 0x51, 0x02, 0x22, 0xc6, 0x0f, 315 + 0x98, 0x2b, 0x12, 0x52, 0x25, 0x64, 0x93, 0xd9, 316 + 0xab, 0xe9, 0x4d, 0x16, 0x4b, 0xf6, 0x09, 0x83, 317 + 0x5c, 0x63, 0x1c, 0x41, 0x19, 0xf6, 0x76, 0xe3, 318 + }, 319 + }, 320 + }; 321 + 322 + static const u8 hash_testvec_consolidated[SHA512_DIGEST_SIZE] = { 323 + 0x5b, 0x9d, 0xf9, 0xab, 0x8c, 0x8e, 0x52, 0xdb, 324 + 0x02, 0xa0, 0x4c, 0x24, 0x2d, 0xc4, 0xa8, 0x4e, 325 + 0x9c, 0x93, 0x2f, 0x72, 0xa8, 0x75, 0xfb, 0xb5, 326 + 0xdb, 0xef, 0x52, 0xc6, 0xa3, 0xfe, 0xeb, 0x6b, 327 + 0x92, 0x79, 0x18, 0x05, 0xf6, 0xd7, 0xaf, 0x7b, 328 + 0x36, 0xfc, 0x83, 0x2c, 0x7e, 0x7b, 0x59, 0x8b, 329 + 0xf9, 0x81, 0xaa, 0x98, 0x38, 0x11, 0x97, 0x56, 330 + 0x34, 0xe5, 0x2a, 0x4b, 0xf2, 0x9e, 0xf3, 0xdb, 331 + }; 332 + 333 + static const u8 hmac_testvec_consolidated[SHA512_DIGEST_SIZE] = { 334 + 0x40, 0xe7, 0xbc, 0x03, 0xdf, 0x22, 0xd4, 0x76, 335 + 0x66, 0x45, 0xf8, 0x1d, 0x25, 0xdf, 0xbe, 0xa2, 336 + 0x93, 0x06, 0x8c, 0x1d, 0x14, 0x23, 0x9b, 0x5c, 337 + 0xfa, 0xac, 0xdf, 0xbd, 0xa2, 0x24, 0xe5, 0xf7, 338 + 0xdc, 0xf7, 0xae, 0x96, 0xc1, 0x34, 0xe5, 0x24, 339 + 0x16, 0x24, 0xdc, 0xee, 0x4f, 0x62, 0x1c, 0x67, 340 + 0x4e, 0x02, 0x31, 0x4b, 0x9b, 0x65, 0x25, 0xeb, 341 + 0x32, 0x2e, 0x24, 0xfb, 0xcd, 0x2b, 0x59, 0xd8, 342 + };
+39
lib/crypto/tests/sha512_kunit.c
··· 1 + // SPDX-License-Identifier: GPL-2.0-or-later 2 + /* 3 + * Copyright 2025 Google LLC 4 + */ 5 + #include <crypto/sha2.h> 6 + #include "sha512-testvecs.h" 7 + 8 + #define HASH sha512 9 + #define HASH_CTX sha512_ctx 10 + #define HASH_SIZE SHA512_DIGEST_SIZE 11 + #define HASH_INIT sha512_init 12 + #define HASH_UPDATE sha512_update 13 + #define HASH_FINAL sha512_final 14 + #define HMAC_KEY hmac_sha512_key 15 + #define HMAC_CTX hmac_sha512_ctx 16 + #define HMAC_PREPAREKEY hmac_sha512_preparekey 17 + #define HMAC_INIT hmac_sha512_init 18 + #define HMAC_UPDATE hmac_sha512_update 19 + #define HMAC_FINAL hmac_sha512_final 20 + #define HMAC hmac_sha512 21 + #define HMAC_USINGRAWKEY hmac_sha512_usingrawkey 22 + #include "hash-test-template.h" 23 + 24 + static struct kunit_case hash_test_cases[] = { 25 + HASH_KUNIT_CASES, 26 + KUNIT_CASE(benchmark_hash), 27 + {}, 28 + }; 29 + 30 + static struct kunit_suite hash_test_suite = { 31 + .name = "sha512", 32 + .test_cases = hash_test_cases, 33 + .suite_init = hash_suite_init, 34 + .suite_exit = hash_suite_exit, 35 + }; 36 + kunit_test_suite(hash_test_suite); 37 + 38 + MODULE_DESCRIPTION("KUnit tests and benchmark for SHA-512 and HMAC-SHA512"); 39 + MODULE_LICENSE("GPL");