コード例 #1
0
ファイル: BankTool.cpp プロジェクト: brownie/cashlib
bool BankTool::verifyIdentity(ProofMessage* idProof, const ZZ &userPK) const {
	// check user's PoK of sk_u such that pk_u = g^sk_u
	InterpreterVerifier verifier;
	group_map g;
	g["G"] = bankParameters->getCashGroup();
	verifier.check(CommonFunctions::getZKPDir()+"/userid.txt", input_map(), g);
	variable_map v;
	v["pk_u"] = userPK;
	verifier.compute(v, idProof->publics);
	return verifier.verify(idProof->proof, stat);
}
コード例 #2
0
ファイル: brain.c プロジェクト: lp0/sqlhal
int main(int argc, char *argv[]) {
	char *action;
	char *name;
	char *prefix;
	int ret;
	int fail = 0;
	char *state;

	if (argc != 4 || (strcmp(argv[1], "load") && strcmp(argv[1], "save") && strcmp(argv[1], "save+"))) {
		printf("Brain manipulation\n");
		printf("Usage: %s load  <name> <filename prefix>\n", argv[0]);
		printf("       %s save  <name> <filename prefix>\n", argv[0]);
		printf("       %s save+ <name> <filename prefix>\n", argv[0]);
		return 1;
	}

	action = argv[1];
	name = argv[2];
	prefix = argv[3];

	state = "db_connect";
	ret = db_connect();
	if (ret) goto fail;
	else log_info("brain", ret, state);

	state = "db_begin";
	ret = db_begin();
	if (ret) goto fail;
	else log_info("brain", ret, state);

	if (!strcmp(action, "load")) {
		state = "input_list aux";
		ret = input_list(name, prefix, "aux", LIST_AUX);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "input_list ban";
		ret = input_list(name, prefix, "ban", LIST_BAN);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "input_list grt";
		ret = input_list(name, prefix, "grt", LIST_GREET);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "input_map swp";
		ret = input_map(name, prefix, "swp", MAP_SWAP);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "input_brain";
		ret = input_brain(name, prefix);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);
	} else if (!strcmp(action, "save") || !strcmp(action, "save+")) {
		enum file_type type = FILETYPE_MEGAHAL8;
		if (!strcmp(action, "save+"))
			type = FILETYPE_SQLHAL0;

		state = "output_list aux";
		ret = output_list(name, prefix, "aux", LIST_AUX);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "output_list ban";
		ret = output_list(name, prefix, "ban", LIST_BAN);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "output_list grt";
		ret = output_list(name, prefix, "grt", LIST_GREET);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "output_map swp";
		ret = output_map(name, prefix, "swp", MAP_SWAP);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);

		state = "output_brain";
		ret = output_brain(name, type, prefix);
		if (ret) { log_warn("brain", ret, state); fail = 1; }
		else log_info("brain", ret, state);
	} else {
		fail = 1;
	}

	if (fail) {
		state = "db_rollback";
		ret = db_rollback();
		if (ret) goto fail;
		else log_info("brain", ret, state);
	} else {
		state = "db_commit";
		ret = db_commit();
		if (ret) goto fail;
		else log_info("brain", ret, state);
	}

	state = "db_disconnect";
	ret = db_disconnect();
	if (ret) goto fail;
	else log_info("brain", ret, state);

	return 0;

fail:
	log_fatal("brain", ret, state);
	return 1;
}