|
|
|
@ -37,7 +37,10 @@ int |
|
|
|
main(int argc, char * argv []) |
|
|
|
{ |
|
|
|
unsigned char data[16384]; |
|
|
|
unsigned char digest[20]; |
|
|
|
union { |
|
|
|
unsigned char bytes[20]; |
|
|
|
uint32_t ints[5]; |
|
|
|
} digest; |
|
|
|
size_t got; |
|
|
|
int i; |
|
|
|
clock_t start, stop; |
|
|
|
@ -56,16 +59,16 @@ main(int argc, char * argv []) |
|
|
|
|
|
|
|
SHA1_Init(&ctx); |
|
|
|
SHA1_Update(&ctx, data, got); |
|
|
|
SHA1_Final(digest, &ctx); |
|
|
|
SHA1_Final(digest.bytes, &ctx); |
|
|
|
} |
|
|
|
stop = clock(); |
|
|
|
printf( |
|
|
|
"done\nResult: %08x%08x%08x%08x%08x\n", |
|
|
|
htonl(((uint32_t *)&digest)[0]), |
|
|
|
htonl(((uint32_t *)&digest)[1]), |
|
|
|
htonl(((uint32_t *)&digest)[2]), |
|
|
|
htonl(((uint32_t *)&digest)[3]), |
|
|
|
htonl(((uint32_t *)&digest)[4])); |
|
|
|
htonl(digest.ints[0]), |
|
|
|
htonl(digest.ints[1]), |
|
|
|
htonl(digest.ints[2]), |
|
|
|
htonl(digest.ints[3]), |
|
|
|
htonl(digest.ints[4])); |
|
|
|
printf("CPU time OpenSSL: %f\n", |
|
|
|
(double)(stop - start) / CLOCKS_PER_SEC); |
|
|
|
|
|
|
|
@ -78,16 +81,16 @@ main(int argc, char * argv []) |
|
|
|
|
|
|
|
TR_SHA1_Init(&ctx); |
|
|
|
TR_SHA1_Update(&ctx, data, got); |
|
|
|
TR_SHA1_Final(digest, &ctx); |
|
|
|
TR_SHA1_Final(digest.bytes, &ctx); |
|
|
|
} |
|
|
|
stop = clock(); |
|
|
|
printf( |
|
|
|
"Done\nResult: %08x%08x%08x%08x%08x\n", |
|
|
|
htonl(((uint32_t *)&digest)[0]), |
|
|
|
htonl(((uint32_t *)&digest)[1]), |
|
|
|
htonl(((uint32_t *)&digest)[2]), |
|
|
|
htonl(((uint32_t *)&digest)[3]), |
|
|
|
htonl(((uint32_t *)&digest)[4])); |
|
|
|
htonl(digest.ints[0]), |
|
|
|
htonl(digest.ints[1]), |
|
|
|
htonl(digest.ints[2]), |
|
|
|
htonl(digest.ints[3]), |
|
|
|
htonl(digest.ints[4])); |
|
|
|
printf("CPU time Ours: %f\n", (double)(stop - start) / CLOCKS_PER_SEC); |
|
|
|
|
|
|
|
return 0; |
|
|
|
|