-/* TODO : hex decoder / encoder should be implemented in testutil.c */
-static void hexdump(const unsigned char *a, size_t len)
-{
- size_t i;
-
- for (i = 0; i < len; i++)
- fprintf(stderr, "%02x", a[i]);
-}
-
-static void benchmark_poly1305()
-{
-# ifdef OPENSSL_CPUID_OBJ
- POLY1305 poly1305;
- unsigned char key[32];
- unsigned char buf[8192];
- unsigned long long stopwatch;
- unsigned long long OPENSSL_rdtsc();
- unsigned int i;
-
- memset (buf,0x55,sizeof(buf));
- memset (key,0xAA,sizeof(key));
-
- Poly1305_Init(&poly1305, key);
-
- for (i=0;i<100000;i++)
- Poly1305_Update(&poly1305,buf,sizeof(buf));
-
- stopwatch = OPENSSL_rdtsc();
- for (i=0;i<10000;i++)
- Poly1305_Update(&poly1305,buf,sizeof(buf));
- stopwatch = OPENSSL_rdtsc() - stopwatch;
-
- printf("%g\n",stopwatch/(double)(i*sizeof(buf)));
-
- stopwatch = OPENSSL_rdtsc();
- for (i=0;i<10000;i++) {
- Poly1305_Init(&poly1305, key);
- Poly1305_Update(&poly1305,buf,16);
- Poly1305_Final(&poly1305,buf);
- }
- stopwatch = OPENSSL_rdtsc() - stopwatch;
-
- printf("%g\n",stopwatch/(double)(i));
-# else
- fprintf(stderr,
- "Benchmarking of poly1305 isn't available on this platform\n");
-# endif
-}
-