|
148 | 148 | #define BUFSIZE (1024*16+1) |
149 | 149 | #define MAX_MISALIGNMENT 63 |
150 | 150 |
|
151 | | -#define ALGOR_NUM 33 |
| 151 | +#define ALGOR_NUM 34 |
152 | 152 | #define SIZE_NUM 6 |
153 | 153 | #define PRIME_NUM 3 |
154 | 154 | #define RSA_NUM 7 |
@@ -297,7 +297,7 @@ static const char *names[ALGOR_NUM] = { |
297 | 297 | "camellia-128 cbc", "camellia-192 cbc", "camellia-256 cbc", |
298 | 298 | "evp", "sha256", "sha512", "whirlpool", |
299 | 299 | "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash", |
300 | | - "sm3", "sms4 cbc", "zuc" |
| 300 | + "sm3", "sms4 cbc", "zuc", "zuc256" |
301 | 301 | }; |
302 | 302 |
|
303 | 303 | static double results[ALGOR_NUM][SIZE_NUM]; |
@@ -483,6 +483,7 @@ OPTIONS speed_options[] = { |
483 | 483 | #define D_SM3 30 |
484 | 484 | #define D_CBC_SMS4 31 |
485 | 485 | #define D_ZUC 32 |
| 486 | +#define D_ZUC256 33 |
486 | 487 | static OPT_PAIR doit_choices[] = { |
487 | 488 | #ifndef OPENSSL_NO_MD2 |
488 | 489 | {"md2", D_MD2}, |
@@ -561,6 +562,7 @@ static OPT_PAIR doit_choices[] = { |
561 | 562 | #endif |
562 | 563 | #ifndef OPENSSL_NO_ZUC |
563 | 564 | {"zuc", D_ZUC}, |
| 565 | + {"zuc256", D_ZUC256}, |
564 | 566 | #endif |
565 | 567 | {NULL} |
566 | 568 | }; |
@@ -1504,6 +1506,7 @@ int speed_main(int argc, char **argv) |
1504 | 1506 | #endif |
1505 | 1507 | #ifndef OPENSSL_NO_ZUC |
1506 | 1508 | ZUC_KEY zuc_ks; |
| 1509 | + ZUC256_KEY zuc256_ks; |
1507 | 1510 | #endif |
1508 | 1511 | #ifndef OPENSSL_NO_BF |
1509 | 1512 | BF_KEY bf_ks; |
@@ -1998,6 +2001,7 @@ int speed_main(int argc, char **argv) |
1998 | 2001 | #endif |
1999 | 2002 | #ifndef OPENSSL_NO_ZUC |
2000 | 2003 | ZUC_set_key(&zuc_ks, key16, iv); |
| 2004 | + ZUC256_set_key(&zuc256_ks, key32, iv); |
2001 | 2005 | #endif |
2002 | 2006 | #ifndef OPENSSL_NO_RC4 |
2003 | 2007 | RC4_set_key(&rc4_ks, 16, key16); |
@@ -2060,6 +2064,7 @@ int speed_main(int argc, char **argv) |
2060 | 2064 | c[D_SM3][0] = count; |
2061 | 2065 | c[D_CBC_SMS4][0] = count; |
2062 | 2066 | c[D_ZUC][0] = count; |
| 2067 | + c[D_ZUC256][0] = count; |
2063 | 2068 |
|
2064 | 2069 | for (i = 1; i < SIZE_NUM; i++) { |
2065 | 2070 | long l0, l1; |
@@ -2102,6 +2107,7 @@ int speed_main(int argc, char **argv) |
2102 | 2107 | c[D_IGE_256_AES][i] = c[D_IGE_256_AES][i - 1] * l0 / l1; |
2103 | 2108 | c[D_CBC_SMS4][i] = c[D_CBC_SMS4][i - 1] * l0 / l1; |
2104 | 2109 | c[D_ZUC][i] = c[D_ZUC][i - 1] * l0 / l1; |
| 2110 | + c[D_ZUC256][i] = c[D_ZUC256][i - 1] * l0 / l1; |
2105 | 2111 | } |
2106 | 2112 |
|
2107 | 2113 | # ifndef OPENSSL_NO_RSA |
@@ -2621,6 +2627,22 @@ int speed_main(int argc, char **argv) |
2621 | 2627 | print_result(D_ZUC, testnum, count, d); |
2622 | 2628 | } |
2623 | 2629 | } |
| 2630 | + if (doit[D_ZUC256]) { |
| 2631 | + if (async_jobs > 0) { |
| 2632 | + BIO_printf(bio_err, "Async mode is not supported with %s\n", |
| 2633 | + names[D_ZUC256]); |
| 2634 | + doit[D_ZUC256] = 0; |
| 2635 | + } |
| 2636 | + for (testnum = 0; testnum < SIZE_NUM && async_init == 0; testnum++) { |
| 2637 | + print_message(names[D_ZUC256], c[D_ZUC256][testnum], lengths[testnum]); |
| 2638 | + Time_F(START); |
| 2639 | + for (count = 0, run = 1; COND(c[D_ZUC256][testnum]); count++) |
| 2640 | + ZUC256_generate_keystream(&zuc256_ks, lengths[testnum]/4, |
| 2641 | + (unsigned int *)loopargs[0].buf); |
| 2642 | + d = Time_F(STOP); |
| 2643 | + print_result(D_ZUC256, testnum, count, d); |
| 2644 | + } |
| 2645 | + } |
2624 | 2646 | #endif |
2625 | 2647 | #ifndef OPENSSL_NO_RC2 |
2626 | 2648 | if (doit[D_CBC_RC2]) { |
|
0 commit comments