コード例 #1
0
ファイル: relic_ep_param.c プロジェクト: Gesine/relic
int ep_param_set_any_pairf() {
	int type = 0, degree = 0, r = STS_OK;
#if defined(EP_ENDOM)
#if FP_PRIME == 80
	ep_param_set(GLS_P160);
	type = EP_MTYPE;
	degree = 2;
#elif FP_PRIME == 158
	ep_param_set(BN_P158);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 254
	ep_param_set(BN_P254);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 256
	ep_param_set(BN_P256);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 477
	ep_param_set(B24_P477);
	type = EP_MTYPE;
	degree = 4;
#elif FP_PRIME == 508
	ep_param_set(KSS_P508);
	type = EP_DTYPE;
	degree = 3;
#elif FP_PRIME == 638
	ep_param_set(B12_P638);
	type = EP_MTYPE;
	degree = 2;
#elif FP_PRIME == 1536
	ep_param_set(SS_P1536);
	degree = 0;
#else
	r = STS_ERR;
#endif
#else
	r = STS_ERR;
#endif
#ifdef WITH_PP
	if (r == STS_OK) {
		if (degree == 0) {
			ep2_curve_set_twist(0);
		}
		if (degree == 2) {
			ep2_curve_set_twist(type);
		}
		if (degree == 3 || degree == 4) {
			r = STS_ERR;
		}
	}
#else
	(void)type;
	(void)degree;
#endif
	return r;
}
コード例 #2
0
ファイル: relic_ep_param.c プロジェクト: relic-toolkit/relic
int ep_param_set_any_pairf(void) {
	int type = 0, degree = 0, r = RLC_OK;
#if defined(EP_ENDOM)
#if FP_PRIME == 158
	ep_param_set(BN_P158);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 254
	ep_param_set(BN_P254);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 256
	ep_param_set(BN_P256);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 381
	ep_param_set(B12_P381);
	type = EP_MTYPE;
	degree = 2;
#elif FP_PRIME == 382
	ep_param_set(BN_P382);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 446
#ifdef FP_QNRES
	ep_param_set(B12_P446);
	type = EP_MTYPE;
	degree = 2;
#else
	ep_param_set(BN_P446);
	type = EP_DTYPE;
	degree = 2;
#endif
#elif FP_PRIME == 455
	ep_param_set(B12_P455);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 477
	ep_param_set(B24_P477);
	type = EP_MTYPE;
	degree = 4;
#elif FP_PRIME == 508
	ep_param_set(KSS_P508);
	type = EP_DTYPE;
	degree = 3;
#elif FP_PRIME == 511
	ep_param_set(OT8_P511);
	type = EP_DTYPE;
	degree = 2;
#elif FP_PRIME == 638
#ifdef FP_QNRES
	ep_param_set(B12_P638);
	type = EP_MTYPE;
	degree = 2;
#else
	ep_param_set(BN_P638);
	type = EP_DTYPE;
	degree = 2;
#endif
#elif FP_PRIME == 1536
	ep_param_set(SS_P1536);
	degree = 0;
#else
	r = RLC_ERR;
#endif
#else
	r = RLC_ERR;
#endif
#ifdef WITH_PP
	if (r == RLC_OK) {
		if (degree == 0) {
			ep2_curve_set_twist(0);
		}
		if (degree == 2) {
			ep2_curve_set_twist(type);
		}
		if (degree == 3 || degree == 4) {
			r = RLC_ERR;
		}
	}
#else
	(void)type;
	(void)degree;
#endif
	return r;
}