1818#define crypto_sign_keypair_internal MLD_API_NAMESPACE(keypair_internal)
1919#define crypto_sign_signature_internal MLD_API_NAMESPACE(signature_internal)
2020
21- #define NWARMUP 3
22- #define NITERATIONS 5
23- #define NTESTS 1000
21+ #ifndef MLD_BENCHMARK_NWARMUP
22+ #define MLD_BENCHMARK_NWARMUP 3
23+ #endif
24+ #ifndef MLD_BENCHMARK_NITERATIONS
25+ #define MLD_BENCHMARK_NITERATIONS 5
26+ #endif
27+ #ifndef MLD_BENCHMARK_NTESTS
28+ #define MLD_BENCHMARK_NTESTS 1000
29+ #endif
2430#define MLEN 59
2531#define CTXLEN 1
2632
@@ -41,15 +47,15 @@ static int cmp_uint64_t(const void *a, const void *b)
4147 return (int )((* ((const uint64_t * )a )) - (* ((const uint64_t * )b )));
4248}
4349
44- static void print_avg (const char * txt , uint64_t cyc [NTESTS ])
50+ static void print_avg (const char * txt , uint64_t cyc [MLD_BENCHMARK_NTESTS ])
4551{
4652 uint64_t avg = 0 ;
4753 int i ;
48- for (i = 0 ; i < NTESTS ; i ++ )
54+ for (i = 0 ; i < MLD_BENCHMARK_NTESTS ; i ++ )
4955 {
5056 avg += cyc [i ];
5157 }
52- avg /= (NTESTS * NITERATIONS );
58+ avg /= (MLD_BENCHMARK_NTESTS * MLD_BENCHMARK_NITERATIONS );
5359 printf ("%10s cycles (avg) = %" PRIu64 "\n" , txt , avg );
5460}
5561
@@ -62,18 +68,20 @@ static void print_percentile_legend(void)
6268 printf ("%21s" , "percentile" );
6369 for (i = 0 ; i < sizeof (percentiles ) / sizeof (percentiles [0 ]); i ++ )
6470 {
65- printf ("%7d " , percentiles [i ]);
71+ printf ("%9d " , percentiles [i ]);
6672 }
6773 printf ("\n" );
6874}
6975
70- static void print_percentiles (const char * txt , uint64_t cyc [NTESTS ])
76+ static void print_percentiles (const char * txt ,
77+ uint64_t cyc [MLD_BENCHMARK_NTESTS ])
7178{
7279 unsigned i ;
7380 printf ("%10s percentiles:" , txt );
7481 for (i = 0 ; i < sizeof (percentiles ) / sizeof (percentiles [0 ]); i ++ )
7582 {
76- printf ("%7" PRIu64 , (cyc )[NTESTS * percentiles [i ] / 100 ] / NITERATIONS );
83+ printf ("%9" PRIu64 , (cyc )[MLD_BENCHMARK_NTESTS * percentiles [i ] / 100 ] /
84+ MLD_BENCHMARK_NITERATIONS );
7785 }
7886 printf ("\n" );
7987}
@@ -91,24 +99,25 @@ static int bench(void)
9199 unsigned i , j ;
92100 uint64_t t0 , t1 ;
93101
94- uint64_t cycles_kg [NTESTS ], cycles_sign [NTESTS ], cycles_verify [NTESTS ];
102+ uint64_t cycles_kg [MLD_BENCHMARK_NTESTS ], cycles_sign [MLD_BENCHMARK_NTESTS ],
103+ cycles_verify [MLD_BENCHMARK_NTESTS ];
95104 unsigned char pre [CTXLEN + 2 ];
96105
97- for (i = 0 ; i < NTESTS ; i ++ )
106+ for (i = 0 ; i < MLD_BENCHMARK_NTESTS ; i ++ )
98107 {
99108 int ret = 0 ;
100109 CHECK (mld_randombytes (kg_rand , sizeof (kg_rand )) == 0 );
101110 CHECK (mld_randombytes (sig_rand , sizeof (sig_rand )) == 0 );
102111
103112
104113 /* Key-pair generation */
105- for (j = 0 ; j < NWARMUP ; j ++ )
114+ for (j = 0 ; j < MLD_BENCHMARK_NWARMUP ; j ++ )
106115 {
107116 ret |= crypto_sign_keypair_internal (pk , sk , kg_rand );
108117 }
109118
110119 t0 = get_cyclecounter ();
111- for (j = 0 ; j < NITERATIONS ; j ++ )
120+ for (j = 0 ; j < MLD_BENCHMARK_NITERATIONS ; j ++ )
112121 {
113122 ret |= crypto_sign_keypair_internal (pk , sk , kg_rand );
114123 }
@@ -125,13 +134,13 @@ static int bench(void)
125134 memcpy (pre + 2 , ctx , CTXLEN );
126135
127136
128- for (j = 0 ; j < NWARMUP ; j ++ )
137+ for (j = 0 ; j < MLD_BENCHMARK_NWARMUP ; j ++ )
129138 {
130139 ret |= crypto_sign_signature_internal (sig , & siglen , m , MLEN , pre ,
131140 CTXLEN + 2 , sig_rand , sk , 0 );
132141 }
133142 t0 = get_cyclecounter ();
134- for (j = 0 ; j < NITERATIONS ; j ++ )
143+ for (j = 0 ; j < MLD_BENCHMARK_NITERATIONS ; j ++ )
135144 {
136145 ret |= crypto_sign_signature_internal (sig , & siglen , m , MLEN , pre ,
137146 CTXLEN + 2 , sig_rand , sk , 0 );
@@ -140,12 +149,12 @@ static int bench(void)
140149 cycles_sign [i ] = t1 - t0 ;
141150
142151 /* Verification */
143- for (j = 0 ; j < NWARMUP ; j ++ )
152+ for (j = 0 ; j < MLD_BENCHMARK_NWARMUP ; j ++ )
144153 {
145154 ret |= crypto_sign_verify (sig , siglen , m , MLEN , ctx , CTXLEN , pk );
146155 }
147156 t0 = get_cyclecounter ();
148- for (j = 0 ; j < NITERATIONS ; j ++ )
157+ for (j = 0 ; j < MLD_BENCHMARK_NITERATIONS ; j ++ )
149158 {
150159 ret |= crypto_sign_verify (sig , siglen , m , MLEN , ctx , CTXLEN , pk );
151160 }
@@ -161,9 +170,9 @@ static int bench(void)
161170
162171 printf ("\n" );
163172
164- qsort (cycles_kg , NTESTS , sizeof (uint64_t ), cmp_uint64_t );
165- qsort (cycles_sign , NTESTS , sizeof (uint64_t ), cmp_uint64_t );
166- qsort (cycles_verify , NTESTS , sizeof (uint64_t ), cmp_uint64_t );
173+ qsort (cycles_kg , MLD_BENCHMARK_NTESTS , sizeof (uint64_t ), cmp_uint64_t );
174+ qsort (cycles_sign , MLD_BENCHMARK_NTESTS , sizeof (uint64_t ), cmp_uint64_t );
175+ qsort (cycles_verify , MLD_BENCHMARK_NTESTS , sizeof (uint64_t ), cmp_uint64_t );
167176
168177
169178 print_percentile_legend ();
0 commit comments