示例#1
0
文件: ca.c 项目: vanElden/burp
int ca_server_setup(struct conf **confs)
{
	int ret=-1;
	char *ca_dir=NULL;
	const char *ca_conf=get_string(confs[OPT_CA_CONF]);

	if(!ca_conf)
	{
		ret=0;
		goto end;
	}

	/* Need to read CA_DIR from ca_conf. */
	if(!(ca_dir=get_ca_dir(confs)))
		goto end;

	if(maybe_make_dhfile(confs, ca_dir))
		goto end;

	if(burp_ca_init(confs, ca_dir))
	{
		recursive_delete(ca_dir);
		goto end;
	}

	if(maybe_make_crl(confs, ca_dir, ca_conf))
		goto end;

	ret=0;
end:
	// Keeping it in gca_dir for later.
	//free_w(&ca_dir);
	if(setup_stuff_done)
	{
		if(ret) logp("CA setup failed\n");
		else logp("CA setup succeeded\n");
	}
	return ret;
}
示例#2
0
文件: ca.c 项目: Kalimeiro/burp
int ca_server_setup(struct conf *conf)
{
	int ret=0;
	char *ca_dir=NULL;

	if(!conf->ca_conf) return 0;

	/* Need to read CA_DIR from ca_conf. */
	if(!(ca_dir=get_ca_dir(conf)))
	{
		ret=-1;
		goto end;
	}

	if(maybe_make_dhfile(conf, ca_dir))
	{
		ret=-1;
		goto end;
	}

	if(burp_ca_init(conf, ca_dir))
	{
		recursive_delete(ca_dir, "", 1);
		ret=-1;
		goto end;
	}

end:
	// Keeping it in gca_dir for later.
	//if(ca_dir) free(ca_dir);
	if(setup_stuff_done)
	{
		if(ret) logp("CA setup failed\n");
		else logp("CA setup succeeded\n");
	}
	return ret;
}