3 #include <sys/resource.h>
7 int keep_going, count, alternate, seconds, iters;
8 struct rusage prior, now;
19 main(int argc, char *argv[])
24 if (argc < 2 || sscanf(argv[1], "%d", &seconds) != 1)
27 if (argc < 3 || sscanf(argv[2], "%d", &iters) != 1)
30 printf ("Running des_cipher( , , 0L, %d) for %d seconds of vtime...\n",
33 bzero(&itv, sizeof (itv));
34 signal (SIGVTALRM, finish);
35 itv.it_value.tv_sec = seconds;
36 itv.it_value.tv_usec = 0;
37 setitimer(ITIMER_VIRTUAL, &itv, NULL);
40 if (getrusage(0, &prior) < 0) {
46 (void)des_setkey(blk);
47 for (count = 0; keep_going; count++)
48 (void) des_cipher(blk, blk, 0, iters);
50 if (getrusage(0, &now) < 0) {
55 msecs = (now.ru_utime.tv_sec - prior.ru_utime.tv_sec) * 1000
56 + (now.ru_utime.tv_usec - prior.ru_utime.tv_usec) / 1000;
57 printf ("Did %d encryptions per second, each of %d iteration(s).\n",
58 1000 * count / msecs, iters);
59 printf ("\tTotal %d blocks per second.\n", (1000*iters*count)/msecs);