const char *idstr, *exstr = "";
char asctmp[20];
int keytype = -1;
+#ifdef FIPS_POST_TIME
+ static struct timespec start, end, tstart, tend;
+#endif
switch(id)
{
case FIPS_TEST_INTEGRITY:
switch(op)
{
case FIPS_POST_BEGIN:
+#ifdef FIPS_POST_TIME
+ clock_getres(CLOCK_REALTIME, &tstart);
+ printf("\tTimer resolution %ld s, %ld ns\n",
+ (long)tstart.tv_sec, (long)tstart.tv_nsec);
+ clock_gettime(CLOCK_REALTIME, &tstart);
+#endif
printf("\tPOST started\n");
break;
case FIPS_POST_END:
printf("\tPOST %s\n", id ? "Success" : "Failed");
+#ifdef FIPS_POST_TIME
+ clock_gettime(CLOCK_REALTIME, &tend);
+ printf("\t\tTook %f seconds\n",
+ (double)((tend.tv_sec+tend.tv_nsec*1e-9)
+ - (tstart.tv_sec+tstart.tv_nsec*1e-9)));
+#endif
break;
case FIPS_POST_STARTED:
printf("\t\t%s %s test started\n", idstr, exstr);
+#ifdef FIPS_POST_TIME
+ clock_gettime(CLOCK_REALTIME, &start);
+#endif
break;
case FIPS_POST_SUCCESS:
printf("\t\t%s %s test OK\n", idstr, exstr);
+#ifdef FIPS_POST_TIME
+ clock_gettime(CLOCK_REALTIME, &end);
+ printf("\t\t\tTook %f seconds\n",
+ (double)((end.tv_sec+end.tv_nsec*1e-9)
+ - (start.tv_sec+start.tv_nsec*1e-9)));
+#endif
break;
case FIPS_POST_FAIL:
int do_drbg_stick = 0;
int no_exit = 0;
- fips_algtest_init_nofips();
FIPS_post_set_callback(post_cb);
- printf("\tFIPS-mode test application\n\n");
+ printf("\tFIPS-mode test application\n");
+
+ printf("\t%s\n\n", FIPS_module_version_text());
if (argv[1]) {
/* Corrupted KAT tests */
do_rng_stick = 1;
no_exit = 1;
printf("RNG test with stuck continuous test...\n");
+ } else if (!strcmp(argv[1], "drbgentstick")) {
+ do_entropy_stick();
} else if (!strcmp(argv[1], "drbgstick")) {
do_drbg_stick = 1;
no_exit = 1;
exit(1);
}
if (!no_exit) {
- if (!FIPS_mode_set(1)) {
+ fips_algtest_init_nofips();
+ if (!FIPS_module_mode_set(1)) {
printf("Power-up self test failed\n");
exit(1);
}
}
}
+ fips_algtest_init_nofips();
+
/* Non-Approved cryptographic operation
*/
printf("1. Non-Approved cryptographic operation test...\n");
/* Power-up self test
*/
ERR_clear_error();
- test_msg("2. Automatic power-up self test", FIPS_mode_set(1));
- if (!FIPS_mode())
+ test_msg("2. Automatic power-up self test", FIPS_module_mode_set(1));
+ if (!FIPS_module_mode())
exit(1);
if (do_drbg_stick)
FIPS_drbg_stick();