On Tue, Dec 05 2017, Scott Cheloha <[email protected]> wrote:
> Hey,
>
> Sorry for the delay.
>
> On Sun, Nov 26, 2017 at 07:00:36PM +0100, Jeremie Courreges-Anglas wrote:
>> On Sun, Nov 26 2017, Jeremie Courreges-Anglas <[email protected]> wrote:
>> > On Sat, Nov 25 2017, Brent Cook <[email protected]> wrote:
>> >> Thanks guys. This will make enabling this on the odder platforms in
>> >> portable easier.
>> >
>> > NB: if we want to able to mix app_tminterval() for real and user time, the
>> > static storage used for "start" should be different. This is not the
>> > case for the Windows implementation, which *seems* to support only user
>> > time:
>> >
>> >
>> > https://github.com/libressl-portable/portable/blob/master/apps/openssl/apps_win.c
>> >
>> > Another approach, which would require more changes, would be to just
>> > provide two seperate functions, possibly named app_timer_real() and
>> > app_timer_user(). The Windows version of app_timer_real() could start
>> > as a simple copy of app_timer_user(), marked with XXX...
>>
>> So here's a diff similar to what Scott proposed in his first diff.
>>
>> The apps_win.c diff for portable would look like this
>> (untested):
>>
>> https://pbot.rmdir.de/sy3XxnKuTQHgotB35BJ6vQ
>
> That looks fine to me, but I prefer the names you gave above,
> "app_timer_real" and "app_timer_user".
Fine with me.
>> I resisted the temptation to make use of TM_START/TM_STOP instead of
>> local defines, this could be another TODO entry. I don't like the
>> TM_START/TM_STOP names btw, TM_STOP doesn't actually stop the timer,
>> it's just a "get" operation.
>
> Agreed re. the operation names. Can we call them TM_SET/TM_GET?
> One does "set" a timer.
I'd suggest TM_RESET and TM_GET, "GET" and "SET" don't look very
different when reading the code. Diff below.
>> Do you folks agree with this approach?
>
> Assuming you feel the same way about what you wrote two weeks ago,
> yeah I'm good with that.
>
> I'll send a pull request with a mix of your changes and an
> implementation for app_timer_user() on Windows to libressl-portable
> today or tomorrow and reply here with the same.
>
> A subsequent diff will expose the separate functions to the rest of
> the modules via apps.h, and later diffs in, e.g., speed and s_time,
> can make use of the now-distinct timer routines at their leisure.
I went ahead and committed the diff to make both functions available to
the cvs tree. LibreSSL development happens in base, LibreSSL-portable
then uses that code, so you need only provide a patch for apps_win.c.
Maybe discuss this with Brent (cc'd).
With the diff below you should be able to focus on reusing
app_timer_user/real.
Thoughts? oks?
Index: apps.h
===================================================================
--- apps.h.orig
+++ apps.h
@@ -277,8 +277,8 @@ unsigned char *next_protos_parse(unsigne
int app_isdir(const char *);
-#define TM_START 0
-#define TM_STOP 1
+#define TM_RESET 0
+#define TM_GET 1
double app_timer_real(int stop);
double app_timer_user(int stop);
Index: apps_posix.c
===================================================================
--- apps_posix.c.orig
+++ apps_posix.c
@@ -124,13 +124,13 @@
#include "apps.h"
double
-app_timer_real(int stop)
+app_timer_real(int op)
{
static struct timespec start;
struct timespec elapsed, now;
clock_gettime(CLOCK_MONOTONIC, &now);
- if (stop) {
+ if (op == TM_GET) {
timespecsub(&now, &start, &elapsed);
return elapsed.tv_sec + elapsed.tv_nsec / 1000000000.0;
}
@@ -139,14 +139,14 @@ app_timer_real(int stop)
}
double
-app_timer_user(int stop)
+app_timer_user(int op)
{
static struct timeval start;
struct timeval elapsed;
struct rusage now;
getrusage(RUSAGE_SELF, &now);
- if (stop) {
+ if (op == TM_GET) {
timersub(&now.ru_utime, &start, &elapsed);
return elapsed.tv_sec + elapsed.tv_usec / 1000000.0;
}
Index: s_time.c
===================================================================
--- s_time.c.orig
+++ s_time.c
@@ -229,9 +229,6 @@ s_time_usage(void)
/***********************************************************************
* TIME - time functions
*/
-#define START 0
-#define STOP 1
-
static double
tm_Time_F(int op)
{
@@ -331,7 +328,7 @@ s_time_main(int argc, char **argv)
bytes_read = 0;
finishtime = time(NULL) + s_time_config.maxtime;
- tm_Time_F(START);
+ tm_Time_F(TM_RESET);
for (;;) {
if (finishtime < time(NULL))
break;
@@ -377,7 +374,7 @@ s_time_main(int argc, char **argv)
SSL_free(scon);
scon = NULL;
}
- totalTime += tm_Time_F(STOP); /* Add the time for this iteration */
+ totalTime += tm_Time_F(TM_GET); /* Add the time for this iteration */
printf("\n\n%d connections in %.2fs; %.2f connections/user sec, bytes
read %ld\n",
nConn, totalTime, ((double) nConn / totalTime), bytes_read);
@@ -426,7 +423,7 @@ next:
printf("starting\n");
bytes_read = 0;
- tm_Time_F(START);
+ tm_Time_F(TM_RESET);
for (;;) {
if (finishtime < time(NULL))
@@ -470,7 +467,7 @@ next:
fputc(ver, stdout);
fflush(stdout);
}
- totalTime += tm_Time_F(STOP); /* Add the time for this iteration */
+ totalTime += tm_Time_F(TM_GET); /* Add the time for this iteration */
printf("\n\n%d connections in %.2fs; %.2f connections/user sec, bytes
read %ld\n", nConn, totalTime, ((double) nConn / totalTime), bytes_read);
printf("%d connections in %lld real seconds, %ld bytes read per
connection\n",
Index: speed.c
===================================================================
--- speed.c.orig
+++ speed.c
@@ -195,10 +195,6 @@ sig_done(int sig)
run = 0;
}
-#define START 0
-#define STOP 1
-
-
static double
Time_F(int s)
{
@@ -1007,10 +1003,10 @@ speed_main(int argc, char **argv)
if (doit[D_MD4]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_MD4], c[D_MD4][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_MD4][j]); count++)
EVP_Digest(&(buf[0]), (unsigned long)
lengths[j], &(md4[0]), NULL, EVP_md4(), NULL);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_MD4, j, count, d);
}
}
@@ -1020,10 +1016,10 @@ speed_main(int argc, char **argv)
if (doit[D_MD5]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_MD5], c[D_MD5][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_MD5][j]); count++)
EVP_Digest(&(buf[0]), (unsigned long)
lengths[j], &(md5[0]), NULL, EVP_get_digestbyname("md5"), NULL);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_MD5, j, count, d);
}
}
@@ -1039,13 +1035,13 @@ speed_main(int argc, char **argv)
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_HMAC], c[D_HMAC][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_HMAC][j]); count++) {
HMAC_Init_ex(&hctx, NULL, 0, NULL, NULL);
HMAC_Update(&hctx, buf, lengths[j]);
HMAC_Final(&hctx, &(hmac[0]), NULL);
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_HMAC, j, count, d);
}
HMAC_CTX_cleanup(&hctx);
@@ -1055,10 +1051,10 @@ speed_main(int argc, char **argv)
if (doit[D_SHA1]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_SHA1], c[D_SHA1][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_SHA1][j]); count++)
EVP_Digest(buf, (unsigned long) lengths[j],
&(sha[0]), NULL, EVP_sha1(), NULL);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_SHA1, j, count, d);
}
}
@@ -1066,10 +1062,10 @@ speed_main(int argc, char **argv)
if (doit[D_SHA256]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_SHA256], c[D_SHA256][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_SHA256][j]); count++)
SHA256(buf, lengths[j], sha256);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_SHA256, j, count, d);
}
}
@@ -1079,10 +1075,10 @@ speed_main(int argc, char **argv)
if (doit[D_SHA512]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_SHA512], c[D_SHA512][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_SHA512][j]); count++)
SHA512(buf, lengths[j], sha512);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_SHA512, j, count, d);
}
}
@@ -1093,10 +1089,10 @@ speed_main(int argc, char **argv)
if (doit[D_WHIRLPOOL]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_WHIRLPOOL], c[D_WHIRLPOOL][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_WHIRLPOOL][j]);
count++)
WHIRLPOOL(buf, lengths[j], whirlpool);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_WHIRLPOOL, j, count, d);
}
}
@@ -1106,10 +1102,10 @@ speed_main(int argc, char **argv)
if (doit[D_RMD160]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_RMD160], c[D_RMD160][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_RMD160][j]); count++)
EVP_Digest(buf, (unsigned long) lengths[j],
&(rmd160[0]), NULL, EVP_ripemd160(), NULL);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_RMD160, j, count, d);
}
}
@@ -1118,11 +1114,11 @@ speed_main(int argc, char **argv)
if (doit[D_RC4]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_RC4], c[D_RC4][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_RC4][j]); count++)
RC4(&rc4_ks, (unsigned int) lengths[j],
buf, buf);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_RC4, j, count, d);
}
}
@@ -1131,23 +1127,23 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_DES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_DES], c[D_CBC_DES][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_DES][j]); count++)
DES_ncbc_encrypt(buf, buf, lengths[j], &sch,
&DES_iv, DES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_DES, j, count, d);
}
}
if (doit[D_EDE3_DES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_EDE3_DES], c[D_EDE3_DES][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_EDE3_DES][j]);
count++)
DES_ede3_cbc_encrypt(buf, buf, lengths[j],
&sch, &sch2, &sch3,
&DES_iv, DES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_EDE3_DES, j, count, d);
}
}
@@ -1156,72 +1152,72 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_128_AES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_128_AES],
c[D_CBC_128_AES][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_128_AES][j]);
count++)
AES_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &aes_ks1,
iv, AES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_128_AES, j, count, d);
}
}
if (doit[D_CBC_192_AES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_192_AES],
c[D_CBC_192_AES][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_192_AES][j]);
count++)
AES_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &aes_ks2,
iv, AES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_192_AES, j, count, d);
}
}
if (doit[D_CBC_256_AES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_256_AES],
c[D_CBC_256_AES][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_256_AES][j]);
count++)
AES_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &aes_ks3,
iv, AES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_256_AES, j, count, d);
}
}
if (doit[D_IGE_128_AES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_IGE_128_AES],
c[D_IGE_128_AES][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_IGE_128_AES][j]);
count++)
AES_ige_encrypt(buf, buf2,
(unsigned long) lengths[j], &aes_ks1,
iv, AES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_IGE_128_AES, j, count, d);
}
}
if (doit[D_IGE_192_AES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_IGE_192_AES],
c[D_IGE_192_AES][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_IGE_192_AES][j]);
count++)
AES_ige_encrypt(buf, buf2,
(unsigned long) lengths[j], &aes_ks2,
iv, AES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_IGE_192_AES, j, count, d);
}
}
if (doit[D_IGE_256_AES]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_IGE_256_AES],
c[D_IGE_256_AES][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_IGE_256_AES][j]);
count++)
AES_ige_encrypt(buf, buf2,
(unsigned long) lengths[j], &aes_ks3,
iv, AES_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_IGE_256_AES, j, count, d);
}
}
@@ -1231,10 +1227,10 @@ speed_main(int argc, char **argv)
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_GHASH], c[D_GHASH][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_GHASH][j]); count++)
CRYPTO_gcm128_aad(ctx, buf, lengths[j]);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_GHASH, j, count, d);
}
CRYPTO_gcm128_release(ctx);
@@ -1251,11 +1247,11 @@ speed_main(int argc, char **argv)
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_AES_128_GCM],c[D_AES_128_GCM][j],lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_AES_128_GCM][j]);
count++)
EVP_AEAD_CTX_seal(&ctx, buf, &buf_len, BUFSIZE,
nonce,
nonce_len, buf, lengths[j], NULL, 0);
- d=Time_F(STOP);
+ d=Time_F(TM_GET);
print_result(D_AES_128_GCM,j,count,d);
}
EVP_AEAD_CTX_cleanup(&ctx);
@@ -1273,11 +1269,11 @@ speed_main(int argc, char **argv)
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_AES_256_GCM],c[D_AES_256_GCM][j],lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_AES_256_GCM][j]);
count++)
EVP_AEAD_CTX_seal(&ctx, buf, &buf_len, BUFSIZE,
nonce,
nonce_len, buf, lengths[j], NULL, 0);
- d=Time_F(STOP);
+ d=Time_F(TM_GET);
print_result(D_AES_256_GCM, j, count, d);
}
EVP_AEAD_CTX_cleanup(&ctx);
@@ -1297,11 +1293,11 @@ speed_main(int argc, char **argv)
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CHACHA20_POLY1305],
c[D_CHACHA20_POLY1305][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1;
COND(c[D_CHACHA20_POLY1305][j]); count++)
EVP_AEAD_CTX_seal(&ctx, buf, &buf_len, BUFSIZE,
nonce,
nonce_len, buf, lengths[j], NULL, 0);
- d=Time_F(STOP);
+ d=Time_F(TM_GET);
print_result(D_CHACHA20_POLY1305, j, count, d);
}
EVP_AEAD_CTX_cleanup(&ctx);
@@ -1311,36 +1307,36 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_128_CML]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_128_CML],
c[D_CBC_128_CML][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_128_CML][j]);
count++)
Camellia_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &camellia_ks1,
iv, CAMELLIA_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_128_CML, j, count, d);
}
}
if (doit[D_CBC_192_CML]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_192_CML],
c[D_CBC_192_CML][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_192_CML][j]);
count++)
Camellia_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &camellia_ks2,
iv, CAMELLIA_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_192_CML, j, count, d);
}
}
if (doit[D_CBC_256_CML]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_256_CML],
c[D_CBC_256_CML][j], lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_256_CML][j]);
count++)
Camellia_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &camellia_ks3,
iv, CAMELLIA_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_256_CML, j, count, d);
}
}
@@ -1349,12 +1345,12 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_IDEA]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_IDEA], c[D_CBC_IDEA][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_IDEA][j]);
count++)
idea_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &idea_ks,
iv, IDEA_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_IDEA, j, count, d);
}
}
@@ -1363,12 +1359,12 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_RC2]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_RC2], c[D_CBC_RC2][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_RC2][j]); count++)
RC2_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &rc2_ks,
iv, RC2_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_RC2, j, count, d);
}
}
@@ -1377,12 +1373,12 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_BF]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_BF], c[D_CBC_BF][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_BF][j]); count++)
BF_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &bf_ks,
iv, BF_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_BF, j, count, d);
}
}
@@ -1391,12 +1387,12 @@ speed_main(int argc, char **argv)
if (doit[D_CBC_CAST]) {
for (j = 0; j < SIZE_NUM; j++) {
print_message(names[D_CBC_CAST], c[D_CBC_CAST][j],
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(c[D_CBC_CAST][j]);
count++)
CAST_cbc_encrypt(buf, buf,
(unsigned long) lengths[j], &cast_ks,
iv, CAST_ENCRYPT);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
print_result(D_CBC_CAST, j, count, d);
}
}
@@ -1424,7 +1420,7 @@ speed_main(int argc, char **argv)
EVP_EncryptInit_ex(&ctx, evp_cipher,
NULL, key16, iv);
EVP_CIPHER_CTX_set_padding(&ctx, 0);
- Time_F(START);
+ Time_F(TM_RESET);
if (decrypt)
for (count = 0, run = 1;
COND(save_count * 4 * lengths[0] / lengths[j]); count++)
EVP_DecryptUpdate(&ctx, buf,
&outl, buf, lengths[j]);
@@ -1435,7 +1431,7 @@ speed_main(int argc, char **argv)
EVP_DecryptFinal_ex(&ctx, buf, &outl);
else
EVP_EncryptFinal_ex(&ctx, buf, &outl);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
EVP_CIPHER_CTX_cleanup(&ctx);
}
if (evp_md) {
@@ -1443,11 +1439,11 @@ speed_main(int argc, char **argv)
print_message(names[D_EVP], save_count,
lengths[j]);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(save_count * 4 *
lengths[0] / lengths[j]); count++)
EVP_Digest(buf, lengths[j], &(md[0]),
NULL, evp_md, NULL);
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
}
print_result(D_EVP, j, count, d);
}
@@ -1467,7 +1463,7 @@ speed_main(int argc, char **argv)
rsa_c[j][0], rsa_bits[j],
RSA_SECONDS);
/* RSA_blinding_on(rsa_key[j],NULL); */
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(rsa_c[j][0]); count++) {
ret = RSA_sign(NID_md5_sha1, buf, 36, buf2,
&rsa_num, rsa_key[j]);
@@ -1479,7 +1475,7 @@ speed_main(int argc, char **argv)
break;
}
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr ? "+R1:%ld:%d:%.2f\n"
: "%ld %d bit private RSA's in %.2fs\n",
count, rsa_bits[j], d);
@@ -1496,7 +1492,7 @@ speed_main(int argc, char **argv)
pkey_print_message("public", "rsa",
rsa_c[j][1], rsa_bits[j],
RSA_SECONDS);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(rsa_c[j][1]); count++) {
ret = RSA_verify(NID_md5_sha1, buf, 36, buf2,
rsa_num, rsa_key[j]);
@@ -1508,7 +1504,7 @@ speed_main(int argc, char **argv)
break;
}
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr ? "+R2:%ld:%d:%.2f\n"
: "%ld %d bit public RSA's in %.2fs\n",
count, rsa_bits[j], d);
@@ -1541,7 +1537,7 @@ speed_main(int argc, char **argv)
pkey_print_message("sign", "dsa",
dsa_c[j][0], dsa_bits[j],
DSA_SECONDS);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(dsa_c[j][0]); count++) {
ret = DSA_sign(EVP_PKEY_DSA, buf, 20, buf2,
&kk, dsa_key[j]);
@@ -1553,7 +1549,7 @@ speed_main(int argc, char **argv)
break;
}
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr ? "+R3:%ld:%d:%.2f\n"
: "%ld %d bit DSA signs in %.2fs\n",
count, dsa_bits[j], d);
@@ -1571,7 +1567,7 @@ speed_main(int argc, char **argv)
pkey_print_message("verify", "dsa",
dsa_c[j][1], dsa_bits[j],
DSA_SECONDS);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(dsa_c[j][1]); count++) {
ret = DSA_verify(EVP_PKEY_DSA, buf, 20, buf2,
kk, dsa_key[j]);
@@ -1583,7 +1579,7 @@ speed_main(int argc, char **argv)
break;
}
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr ? "+R4:%ld:%d:%.2f\n"
: "%ld %d bit DSA verify in %.2fs\n",
count, dsa_bits[j], d);
@@ -1624,7 +1620,7 @@ speed_main(int argc, char **argv)
test_curves_bits[j],
ECDSA_SECONDS);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(ecdsa_c[j][0]);
count++) {
ret = ECDSA_sign(0, buf, 20,
@@ -1637,7 +1633,7 @@ speed_main(int argc, char **argv)
break;
}
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr ? "+R5:%ld:%d:%.2f\n" :
"%ld %d bit ECDSA signs in %.2fs \n",
@@ -1658,7 +1654,7 @@ speed_main(int argc, char **argv)
ecdsa_c[j][1],
test_curves_bits[j],
ECDSA_SECONDS);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1; COND(ecdsa_c[j][1]);
count++) {
ret = ECDSA_verify(0, buf, 20,
ecdsasig, ecdsasiglen, ecdsa[j]);
if (ret != 1) {
@@ -1668,7 +1664,7 @@ speed_main(int argc, char **argv)
break;
}
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr ? "+R6:%ld:%d:%.2f\n"
: "%ld %d bit ECDSA verify in %.2fs\n",
count, test_curves_bits[j], d);
@@ -1745,7 +1741,7 @@ speed_main(int argc, char **argv)
ecdh_c[j][0],
test_curves_bits[j],
ECDH_SECONDS);
- Time_F(START);
+ Time_F(TM_RESET);
for (count = 0, run = 1;
COND(ecdh_c[j][0]); count++) {
ECDH_compute_key(secret_a,
@@ -1753,7 +1749,7 @@ speed_main(int argc, char **argv)
EC_KEY_get0_public_key(ecdh_b[j]),
ecdh_a[j], kdf);
}
- d = Time_F(STOP);
+ d = Time_F(TM_GET);
BIO_printf(bio_err, mr
? "+R7:%ld:%d:%.2f\n"
: "%ld %d-bit ECDH ops in %.2fs\n",
--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE