Remove superfluous PRNG self tests.
[openssl.git] / fips / fips_test_suite.c
index 64452bae3ca20b06e86575851a2ea98cfc680211..2f9333c35c37b9e7a0d3e863667968b5614835f7 100644 (file)
@@ -718,6 +718,9 @@ static int post_cb(int op, int id, int subid, void *ex)
        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:
@@ -807,19 +810,40 @@ static int post_cb(int op, int id, int subid, void *ex)
        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:
@@ -847,7 +871,6 @@ int main(int argc,char **argv)
     int do_drbg_stick = 0;
     int no_exit = 0;
 
-    fips_algtest_init_nofips();
 
     FIPS_post_set_callback(post_cb);
 
@@ -910,6 +933,8 @@ int main(int argc,char **argv)
            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;
@@ -919,6 +944,7 @@ int main(int argc,char **argv)
             exit(1);
         }
        if (!no_exit) {
+               fips_algtest_init_nofips();
                if (!FIPS_mode_set(1)) {
                    printf("Power-up self test failed\n");
                    exit(1);
@@ -928,6 +954,8 @@ int main(int argc,char **argv)
        }
     }
 
+    fips_algtest_init_nofips();
+
     /* Non-Approved cryptographic operation
     */
     printf("1. Non-Approved cryptographic operation test...\n");