Esempio n. 1
0
int
main(int argc, char **argv)
{
    struct alg *alg = NULL;
    int count = 1;
    int sizes[128], nsizes = 0;
    u_long cmd = CIOCGSESSION2;
    int testall = 0;
    int maxthreads = 1;
    int profile = 0;
    int i, ch;

    while ((ch = getopt(argc, argv, "cpzsva:bd:t:")) != -1) {
        switch (ch) {
#ifdef CIOCGSSESSION
        case 's':
            cmd = CIOCGSSESSION;
            break;
#endif
        case 'v':
            verbose++;
            break;
        case 'a':
            alg = getalgbyname(optarg);
            if (alg == NULL) {
                if (streq(optarg, "rijndael"))
                    alg = getalgbyname("aes");
                else
                    usage(argv[0]);
            }
            break;
        case 'd':
            crid = crlookup(optarg);
            break;
        case 't':
            maxthreads = atoi(optarg);
            break;
        case 'z':
            testall = 1;
            break;
        case 'p':
            profile = 1;
            break;
        case 'b':
            opflags |= COP_F_BATCH;
            break;
        case 'c':
            verify = 1;
            break;
        default:
            usage(argv[0]);
        }
    }
    argc -= optind, argv += optind;
    if (argc > 0)
        count = atoi(argv[0]);
    while (argc > 1) {
        int s = atoi(argv[1]);
        if (nsizes < N(sizes)) {
            sizes[nsizes++] = s;
        } else {
            printf("Too many sizes, ignoring %u\n", s);
        }
        argc--, argv++;
    }
    if (nsizes == 0) {
        if (alg)
            sizes[nsizes++] = alg->blocksize;
        else
            sizes[nsizes++] = 8;
        if (testall) {
            while (sizes[nsizes-1] < 8*1024) {
                sizes[nsizes] = sizes[nsizes-1]<<1;
                nsizes++;
            }
        }
    }

    if (testall) {
        for (i = 0; i < N(algorithms); i++) {
            int j;
            alg = &algorithms[i];
            for (j = 0; j < nsizes; j++)
                runtests(alg, count, sizes[j], cmd, maxthreads, profile);
        }
    } else {
        if (alg == NULL)
            alg = getalgbycode(CRYPTO_3DES_CBC);
        for (i = 0; i < nsizes; i++)
            runtests(alg, count, sizes[i], cmd, maxthreads, profile);
    }

    return (0);
}
Esempio n. 2
0
int
main(int argc, char **argv)
{
	struct alg *alg = NULL;
	int count = 1;
	int sizes[128], nsizes = 0;
	u_long cmd = CIOCGSESSION2;
	int testall = 0;
	int maxthreads = 1;
	int profile = 0;
	int i, ch;

	srandom(time(0));

	while ((ch = getopt(argc, argv, "cpzsva:bd:t:S:VKD")) != -1) {
		switch (ch) {
		case 'V': swap_iv = 1; break;
		case 'K': swap_key = 1; break;
		case 'D': swap_data = 1; break;
#ifdef CIOCGSSESSION
		case 's':
			cmd = CIOCGSSESSION;
			break;
#endif
		case 'v':
			verbose++;
			break;
		case 'a':
			alg = getalgbyname(optarg);
			if (alg == NULL) {
				if (streq(optarg, "rijndael"))
					alg = getalgbyname("aes");
				else
					usage(argv[0]);
			}
			break;
		case 'S':
			srandom(atoi(optarg));
			break;
		case 'd':
			crid = crlookup(optarg);
			break;
		case 't':
			maxthreads = atoi(optarg);
			break;
		case 'z':
			testall = 1;
			break;
		case 'p':
			profile = 1;
			break;
		case 'b':
			opflags |= COP_F_BATCH;
			break;
		case 'c':
			verify = 1;
			break;
		default:
			usage(argv[0]);
		}
	}
	argc -= optind, argv += optind;
	if (argc > 0)
		count = atoi(argv[0]);
	while (argc > 1) {
		int s = atoi(argv[1]);
		if (nsizes < N(sizes)) {
			sizes[nsizes++] = s;
		} else {
			printf("Too many sizes, ignoring %u\n", s);
		}
		argc--, argv++;
	}
	if (nsizes == 0) {
		if (alg)
			sizes[nsizes++] = alg->blocksize;
		else
			sizes[nsizes++] = 8;
		if (testall) {
			/*
			 * OCF is limited to CRYPTO_MAX_DATA_LEN, so make it 256 bytes less
			 * for safety sakes.
			 */
			while (sizes[nsizes-1] < (CRYPTO_MAX_DATA_LEN - 256)) {
				sizes[nsizes] = sizes[nsizes-1]<<1;
				if (sizes[nsizes] > CRYPTO_MAX_DATA_LEN)
					sizes[nsizes] -= 256;
				nsizes++;
			}
		}
	}

	if (testall) {
		for (i = 0; i < N(algorithms); i++) {
			int j;
			alg = &algorithms[i];
			for (j = 0; j < nsizes; j++)
				runtests(alg, count, sizes[j], cmd, maxthreads, profile);
		}
	} else {
		if (alg == NULL)
			alg = getalgbycode(CRYPTO_3DES_CBC);
		for (i = 0; i < nsizes; i++)
			runtests(alg, count, sizes[i], cmd, maxthreads, profile);
	}

	return (0);
}