/*
- * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
*
- * Licensed under the OpenSSL license (the "License"). You may not use
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
#include <string.h>
#include "testutil.h"
-#include "test_main_custom.h"
-
-#ifdef __VMS
-# pragma names save
-# pragma names as_is,shortened
-#endif
-
#include "internal/poly1305.h"
-
-#ifdef __VMS
-# pragma names restore
-#endif
-
#include "../crypto/poly1305/poly1305_local.h"
-#include "e_os.h"
+#include "internal/nelem.h"
typedef struct {
size_t size;
*
***/
-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
-}
-
static TESTDATA tests[] = {
/*
* RFC7539
Poly1305_Final(&poly1305, out);
if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
- TEST_info("Poly1305 test #%d/%" OSSLzu "+%" OSSLzu " failed.",
+ TEST_info("Poly1305 test #%d/%zu+%zu failed.",
idx, half, inlen-half);
return 0;
}
return 1;
}
-int test_main(int argc, char **argv)
+int setup_tests(void)
{
- int result = 0;
- int iter_argv;
- int benchmark = 0;
-
- for (iter_argv = 1; iter_argv < argc; iter_argv++) {
- if (strcmp(argv[iter_argv], "-b") == 0)
- benchmark = 1;
- else if (strcmp(argv[iter_argv], "-h") == 0)
- goto help;
- }
-
ADD_ALL_TESTS(test_poly1305, OSSL_NELEM(tests));
-
- result = run_tests(argv[0]);
-
- if (benchmark)
- benchmark_poly1305();
-
- return result;
-
- help:
- printf("-h\tThis help\n");
- printf("-b\tBenchmark in addition to the tests\n");
-
- return 0;
+ return 1;
}