Пример #1
0
session_t *session_new(size_t session_data_size, void (*data_cleanup)(session_t *))
{
    union Key k;
    // Must be hex binary
    int err = gen_random_data(&k.u64, 8);
    if (err != 0) {
        return NULL;
    }
    qlock(&session_map_mutex);
    session_t **sessionpp = (session_t**)mapinsert(&session_map, k);
    if (sessionpp == NULL) {
        return NULL;
    }
    *sessionpp = malloc(sizeof(session_t) + session_data_size);
    if (*sessionpp == NULL) {
        return NULL;
    }
    memset(*sessionpp, 0, sizeof(session_t) + session_data_size);
    qunlock(&session_map_mutex);
   //(*sessionpp)->tls_enabled = tls_enabled;
    (*sessionpp)->id = k.u64;
    (*sessionpp)->status = SESSION_ACTIVE;
    (*sessionpp)->refcount = 1;
    (*sessionpp)->data_cleanup = data_cleanup;
    return *sessionpp;
}
Пример #2
0
void random_test(regression::regression_base& p, float x, float y, size_t dim) {
  jubatus::util::math::random::mtrand rand_r(0);
  // learn with 1000 random data
  for (size_t i = 0; i < 1000; ++i) {
    std::pair<float, std::vector<double> > tfv = gen_random_data(x, x, dim);
    p.train(convert(tfv.second), tfv.first);
  }

  size_t ok = 0;
  for (size_t i = 0; i < 100; ++i) {
    std::pair<float, std::vector<double> > tfv = gen_random_data(x, x, dim);
    if (std::fabs(p.estimate(convert(tfv.second)) - tfv.first) < 2.0 * y * x)
      ++ok;
  }
  EXPECT_GT(ok, 90u);
}
Пример #3
0
END_TEST


START_TEST(check_ec_sha_signatures)
{
	EC_KEY *key;

	unsigned char *rdata, *sigdata;
	size_t dlens[] = { 16, 128, 1024, 65535 };
	size_t rsize, siglen, last_min = 1;
	unsigned int shabits;
	int res;

	res = crypto_init();
	ck_assert_msg(!res, "Crypto initialization routine failed.\n");

	key = generate_ec_keypair(0);
	ck_assert_msg((key != NULL), "EC SHA signature/verification check failed: could not generate key pair.\n");

	for (size_t i = 0; i < (sizeof(dlens) / sizeof(dlens[0])); i++) {

		for (size_t j = 0; j < N_SIGNATURE_TIER_TESTS; j++) {

			for (size_t k = 0; k < 3; k++) {

				if (!k) {
					shabits = 160;
				} else if (k == 1) {
					shabits = 256;
				} else {
					shabits = 512;
				}

				rdata = gen_random_data(last_min, dlens[i], &rsize);
				ck_assert_msg((rdata != NULL), "EC SHA signature/verification check failed: could not generate random data.\n");
				sigdata = ec_sign_sha_data(rdata, rsize, shabits, key, &siglen);
				ck_assert_msg((sigdata != NULL), "EC SHA signature/verification check failed: could not sign data.\n");
				ck_assert_msg((siglen > 0), "EC SHA signature/verification check failed: signature result had bad length.\n");

				res = verify_ec_sha_signature(rdata, rsize, shabits, sigdata, siglen, key);
				ck_assert_msg((res == 1), "EC SHA signature/verification check failed: signature verification failed (%d).\n", res);

				free(sigdata);
				free(rdata);
			}

			last_min = dlens[i];
		}

	}


	free_ec_key(key);

	fprintf(stderr, "EC SHA signature/verification check completed.\n");
}
Пример #4
0
TYPED_TEST_P(classifier_test, random) {
  local_storage s;
  TypeParam p(&s);

  srand(0);
  for (size_t i = 0; i < 1000; ++i) {
    pair<string, vector<double> > d = gen_random_data();
    p.train(convert(d.second), d.first);
  }

  size_t correct = 0;
  for (size_t i = 0; i < 100; ++i) {
    pair<string, vector<double> > d = gen_random_data();
    if (d.first == p.classify(convert(d.second))) {
      ++correct;
    }
  }
  EXPECT_GT(correct, 95u);
}
Пример #5
0
END_TEST





START_TEST(check_ed25519_signatures)
{
	ED25519_KEY *key;
	ed25519_signature sigbuf;
	unsigned char *rdata;
	size_t dlens[] = { 16, 128, 1024, 65535 };
	size_t rsize, last_min = 1;
	int res;

	res = crypto_init();
	ck_assert_msg(!res, "Crypto initialization routine failed.\n");

	key = generate_ed25519_keypair();
	ck_assert_msg((key != NULL), "ed25519 signature/verification check failed: could not generate key pair.\n");

	for (size_t i = 0; i < (sizeof(dlens) / sizeof(dlens[0])); i++) {

		for (size_t j = 0; j < N_SIGNATURE_TIER_TESTS; j++) {
			rdata = gen_random_data(last_min, dlens[i], &rsize);
			memset(sigbuf, 0, sizeof(sigbuf));
			ck_assert_msg((rdata != NULL), "ed25519 signature/verification check failed: could not generate random data.\n");
			ed25519_sign_data(rdata, rsize, key, sigbuf);

			res = ed25519_verify_sig(rdata, rsize, key, sigbuf);
			ck_assert_msg((res == 1), "ed25519 signature/verification check failed: signature verification failed (%d).\n", res);

			free(rdata);
		}

		last_min = dlens[i];
	}

	free_ed25519_key(key);

	fprintf(stderr, "ed25519 signature/verification check completed.\n");
}
Пример #6
0
void make_random_data(vector<pair<string, datum> >& data, size_t size) {
   for (size_t i = 0; i < size; ++i) {
     pair<string, vector<double> > p = gen_random_data();
     data.push_back(make_pair(p.first, convert_vector(p.second)));
   }
 }