|
22 | 22 |
|
23 | 23 | /* |
24 | 24 | * Copyright 2013 Saso Kiselkov. All rights reserved. |
| 25 | + * Copyright (c) 2026, TrueNAS. |
25 | 26 | */ |
26 | 27 |
|
27 | 28 | /* |
@@ -142,15 +143,15 @@ main(int argc, char *argv[]) |
142 | 143 | if (!sha512) |
143 | 144 | return (1); |
144 | 145 |
|
145 | | -#define SHA2_ALGO_TEST(_m, mode, diglen, testdigest) \ |
| 146 | +#define SHA2_ALGO_TEST(_m, mode, diglen, testdigest, name) \ |
146 | 147 | do { \ |
147 | 148 | SHA2_CTX ctx; \ |
148 | 149 | uint8_t digest[diglen / 8]; \ |
149 | 150 | SHA2Init(mode, &ctx); \ |
150 | 151 | SHA2Update(&ctx, _m, strlen(_m)); \ |
151 | 152 | SHA2Final(digest, &ctx); \ |
152 | | - (void) printf("SHA%-9sMessage: " #_m \ |
153 | | - "\tResult: ", #mode); \ |
| 153 | + (void) printf("%-11s %-9s Message: " #_m \ |
| 154 | + "\tResult: ", #mode, name); \ |
154 | 155 | if (memcmp(digest, testdigest, diglen / 8) == 0) { \ |
155 | 156 | (void) printf("OK\n"); \ |
156 | 157 | } else { \ |
@@ -181,22 +182,38 @@ main(int argc, char *argv[]) |
181 | 182 | cpb = (cpu_mhz * 1e6 * ((double)delta / \ |
182 | 183 | 1000000)) / (8192 * 128 * 1024); \ |
183 | 184 | } \ |
184 | | - (void) printf("sha%s-%-9s%7llu us (%.02f CPB)\n", #mode,\ |
| 185 | + (void) printf("%s-%-9s %9llu us (%.02f CPB)\n", #mode, \ |
185 | 186 | name, (u_longlong_t)delta, cpb); \ |
186 | 187 | } while (0) |
187 | 188 |
|
188 | 189 | (void) printf("Running algorithm correctness tests:\n"); |
189 | | - SHA2_ALGO_TEST(test_msg0, SHA256, 256, sha256_test_digests[0]); |
190 | | - SHA2_ALGO_TEST(test_msg1, SHA256, 256, sha256_test_digests[1]); |
191 | | - SHA2_ALGO_TEST(test_msg0, SHA512, 512, sha512_test_digests[0]); |
192 | | - SHA2_ALGO_TEST(test_msg2, SHA512, 512, sha512_test_digests[2]); |
193 | | - SHA2_ALGO_TEST(test_msg0, SHA512_256, 256, sha512_256_test_digests[0]); |
194 | | - SHA2_ALGO_TEST(test_msg2, SHA512_256, 256, sha512_256_test_digests[2]); |
| 190 | + |
| 191 | + for (id = 0; id < sha256->getcnt(); id++) { |
| 192 | + sha256->setid(id); |
| 193 | + const char *name = sha256->getname(); |
| 194 | + SHA2_ALGO_TEST(test_msg0, SHA256, 256, |
| 195 | + sha256_test_digests[0], name); |
| 196 | + SHA2_ALGO_TEST(test_msg1, SHA256, 256, |
| 197 | + sha256_test_digests[1], name); |
| 198 | + } |
| 199 | + |
| 200 | + for (id = 0; id < sha512->getcnt(); id++) { |
| 201 | + sha512->setid(id); |
| 202 | + const char *name = sha512->getname(); |
| 203 | + SHA2_ALGO_TEST(test_msg0, SHA512, 512, |
| 204 | + sha512_test_digests[0], name); |
| 205 | + SHA2_ALGO_TEST(test_msg2, SHA512, 512, |
| 206 | + sha512_test_digests[2], name); |
| 207 | + SHA2_ALGO_TEST(test_msg0, SHA512_256, 256, |
| 208 | + sha512_256_test_digests[0], name); |
| 209 | + SHA2_ALGO_TEST(test_msg2, SHA512_256, 256, |
| 210 | + sha512_256_test_digests[2], name); |
| 211 | + } |
195 | 212 |
|
196 | 213 | if (failed) |
197 | 214 | return (1); |
198 | 215 |
|
199 | | - (void) printf("Running performance tests (hashing 1024 MiB of " |
| 216 | + (void) printf("\nRunning performance tests (hashing 1024 MiB of " |
200 | 217 | "data):\n"); |
201 | 218 |
|
202 | 219 | for (id = 0; id < sha256->getcnt(); id++) { |
|
0 commit comments