亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ca.c

?? mediastreamer2是開源的網絡傳輸媒體流的庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
	     const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,	     BIGNUM *serial, char *subj,unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,	     long days, int batch, char *ext_sect, CONF *lconf, int verbose,	     unsigned long certopt, unsigned long nameopt, int default_op,	     int ext_copy, int selfsign)	{	X509_REQ *req=NULL;	BIO *in=NULL;	EVP_PKEY *pktmp=NULL;	int ok= -1,i;	in=BIO_new(BIO_s_file());	if (BIO_read_filename(in,infile) <= 0)		{		perror(infile);		goto err;		}	if ((req=PEM_read_bio_X509_REQ(in,NULL,NULL,NULL)) == NULL)		{		BIO_printf(bio_err,"Error reading certificate request in %s\n",			infile);		goto err;		}	if (verbose)		X509_REQ_print(bio_err,req);	BIO_printf(bio_err,"Check that the request matches the signature\n");	if (selfsign && !X509_REQ_check_private_key(req,pkey))		{		BIO_printf(bio_err,"Certificate request and CA private key do not match\n");		ok=0;		goto err;		}	if ((pktmp=X509_REQ_get_pubkey(req)) == NULL)		{		BIO_printf(bio_err,"error unpacking public key\n");		goto err;		}	i=X509_REQ_verify(req,pktmp);	EVP_PKEY_free(pktmp);	if (i < 0)		{		ok=0;		BIO_printf(bio_err,"Signature verification problems....\n");		goto err;		}	if (i == 0)		{		ok=0;		BIO_printf(bio_err,"Signature did not match the certificate request\n");		goto err;		}	else		BIO_printf(bio_err,"Signature ok\n");	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn, email_dn,		startdate,enddate,days,batch,verbose,req,ext_sect,lconf,		certopt, nameopt, default_op, ext_copy, selfsign);err:	if (req != NULL) X509_REQ_free(req);	if (in != NULL) BIO_free(in);	return(ok);	}static int certify_cert(X509 **xret, char *infile, EVP_PKEY *pkey, X509 *x509,	     const EVP_MD *dgst, STACK_OF(CONF_VALUE) *policy, CA_DB *db,	     BIGNUM *serial, char *subj, unsigned long chtype, int multirdn, int email_dn, char *startdate, char *enddate,	     long days, int batch, char *ext_sect, CONF *lconf, int verbose,	     unsigned long certopt, unsigned long nameopt, int default_op,	     int ext_copy, ENGINE *e)	{	X509 *req=NULL;	X509_REQ *rreq=NULL;	EVP_PKEY *pktmp=NULL;	int ok= -1,i;	if ((req=load_cert(bio_err, infile, FORMAT_PEM, NULL, e, infile)) == NULL)		goto err;	if (verbose)		X509_print(bio_err,req);	BIO_printf(bio_err,"Check that the request matches the signature\n");	if ((pktmp=X509_get_pubkey(req)) == NULL)		{		BIO_printf(bio_err,"error unpacking public key\n");		goto err;		}	i=X509_verify(req,pktmp);	EVP_PKEY_free(pktmp);	if (i < 0)		{		ok=0;		BIO_printf(bio_err,"Signature verification problems....\n");		goto err;		}	if (i == 0)		{		ok=0;		BIO_printf(bio_err,"Signature did not match the certificate\n");		goto err;		}	else		BIO_printf(bio_err,"Signature ok\n");	if ((rreq=X509_to_X509_REQ(req,NULL,EVP_md5())) == NULL)		goto err;	ok=do_body(xret,pkey,x509,dgst,policy,db,serial,subj,chtype,multirdn,email_dn,startdate,enddate,		days,batch,verbose,rreq,ext_sect,lconf, certopt, nameopt, default_op,		ext_copy, 0);err:	if (rreq != NULL) X509_REQ_free(rreq);	if (req != NULL) X509_free(req);	return(ok);	}static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, const EVP_MD *dgst,	     STACK_OF(CONF_VALUE) *policy, CA_DB *db, BIGNUM *serial, char *subj,	     unsigned long chtype, int multirdn,	     int email_dn, char *startdate, char *enddate, long days, int batch,	     int verbose, X509_REQ *req, char *ext_sect, CONF *lconf,	     unsigned long certopt, unsigned long nameopt, int default_op,	     int ext_copy, int selfsign)	{	X509_NAME *name=NULL,*CAname=NULL,*subject=NULL, *dn_subject=NULL;	ASN1_UTCTIME *tm,*tmptm;	ASN1_STRING *str,*str2;	ASN1_OBJECT *obj;	X509 *ret=NULL;	X509_CINF *ci;	X509_NAME_ENTRY *ne;	X509_NAME_ENTRY *tne,*push;	EVP_PKEY *pktmp;	int ok= -1,i,j,last,nid;	const char *p;	CONF_VALUE *cv;	char *row[DB_NUMBER],**rrow=NULL,**irow=NULL;	char buf[25];	tmptm=ASN1_UTCTIME_new();	if (tmptm == NULL)		{		BIO_printf(bio_err,"malloc error\n");		return(0);		}	for (i=0; i<DB_NUMBER; i++)		row[i]=NULL;	if (subj)		{		X509_NAME *n = parse_name(subj, chtype, multirdn);		if (!n)			{			ERR_print_errors(bio_err);			goto err;			}		X509_REQ_set_subject_name(req,n);		req->req_info->enc.modified = 1;		X509_NAME_free(n);		}	if (default_op)		BIO_printf(bio_err,"The Subject's Distinguished Name is as follows\n");	name=X509_REQ_get_subject_name(req);	for (i=0; i<X509_NAME_entry_count(name); i++)		{		ne= X509_NAME_get_entry(name,i);		str=X509_NAME_ENTRY_get_data(ne);		obj=X509_NAME_ENTRY_get_object(ne);		if (msie_hack)			{			/* assume all type should be strings */			nid=OBJ_obj2nid(ne->object);			if (str->type == V_ASN1_UNIVERSALSTRING)				ASN1_UNIVERSALSTRING_to_string(str);			if ((str->type == V_ASN1_IA5STRING) &&				(nid != NID_pkcs9_emailAddress))				str->type=V_ASN1_T61STRING;			if ((nid == NID_pkcs9_emailAddress) &&				(str->type == V_ASN1_PRINTABLESTRING))				str->type=V_ASN1_IA5STRING;			}		/* If no EMAIL is wanted in the subject */		if ((OBJ_obj2nid(obj) == NID_pkcs9_emailAddress) && (!email_dn))			continue;		/* check some things */		if ((OBJ_obj2nid(obj) == NID_pkcs9_emailAddress) &&			(str->type != V_ASN1_IA5STRING))			{			BIO_printf(bio_err,"\nemailAddress type needs to be of type IA5STRING\n");			goto err;			}		if ((str->type != V_ASN1_BMPSTRING) && (str->type != V_ASN1_UTF8STRING))			{			j=ASN1_PRINTABLE_type(str->data,str->length);			if (	((j == V_ASN1_T61STRING) &&				 (str->type != V_ASN1_T61STRING)) ||				((j == V_ASN1_IA5STRING) &&				 (str->type == V_ASN1_PRINTABLESTRING)))				{				BIO_printf(bio_err,"\nThe string contains characters that are illegal for the ASN.1 type\n");				goto err;				}			}		if (default_op)			old_entry_print(bio_err, obj, str);		}	/* Ok, now we check the 'policy' stuff. */	if ((subject=X509_NAME_new()) == NULL)		{		BIO_printf(bio_err,"Memory allocation failure\n");		goto err;		}	/* take a copy of the issuer name before we mess with it. */	if (selfsign)		CAname=X509_NAME_dup(name);	else		CAname=X509_NAME_dup(x509->cert_info->subject);	if (CAname == NULL) goto err;	str=str2=NULL;	for (i=0; i<sk_CONF_VALUE_num(policy); i++)		{		cv=sk_CONF_VALUE_value(policy,i); /* get the object id */		if ((j=OBJ_txt2nid(cv->name)) == NID_undef)			{			BIO_printf(bio_err,"%s:unknown object type in 'policy' configuration\n",cv->name);			goto err;			}		obj=OBJ_nid2obj(j);		last= -1;		for (;;)			{			/* lookup the object in the supplied name list */			j=X509_NAME_get_index_by_OBJ(name,obj,last);			if (j < 0)				{				if (last != -1) break;				tne=NULL;				}			else				{				tne=X509_NAME_get_entry(name,j);				}			last=j;			/* depending on the 'policy', decide what to do. */			push=NULL;			if (strcmp(cv->value,"optional") == 0)				{				if (tne != NULL)					push=tne;				}			else if (strcmp(cv->value,"supplied") == 0)				{				if (tne == NULL)					{					BIO_printf(bio_err,"The %s field needed to be supplied and was missing\n",cv->name);					goto err;					}				else					push=tne;				}			else if (strcmp(cv->value,"match") == 0)				{				int last2;				if (tne == NULL)					{					BIO_printf(bio_err,"The mandatory %s field was missing\n",cv->name);					goto err;					}				last2= -1;again2:				j=X509_NAME_get_index_by_OBJ(CAname,obj,last2);				if ((j < 0) && (last2 == -1))					{					BIO_printf(bio_err,"The %s field does not exist in the CA certificate,\nthe 'policy' is misconfigured\n",cv->name);					goto err;					}				if (j >= 0)					{					push=X509_NAME_get_entry(CAname,j);					str=X509_NAME_ENTRY_get_data(tne);					str2=X509_NAME_ENTRY_get_data(push);					last2=j;					if (ASN1_STRING_cmp(str,str2) != 0)						goto again2;					}				if (j < 0)					{					BIO_printf(bio_err,"The %s field needed to be the same in the\nCA certificate (%s) and the request (%s)\n",cv->name,((str2 == NULL)?"NULL":(char *)str2->data),((str == NULL)?"NULL":(char *)str->data));					goto err;					}				}			else				{				BIO_printf(bio_err,"%s:invalid type in 'policy' configuration\n",cv->value);				goto err;				}			if (push != NULL)				{				if (!X509_NAME_add_entry(subject,push, -1, 0))					{					if (push != NULL)						X509_NAME_ENTRY_free(push);					BIO_printf(bio_err,"Memory allocation failure\n");					goto err;					}				}			if (j < 0) break;			}		}	if (preserve)		{		X509_NAME_free(subject);		/* subject=X509_NAME_dup(X509_REQ_get_subject_name(req)); */		subject=X509_NAME_dup(name);		if (subject == NULL) goto err;		}	if (verbose)		BIO_printf(bio_err,"The subject name appears to be ok, checking data base for clashes\n");	/* Build the correct Subject if no e-mail is wanted in the subject */	/* and add it later on because of the method extensions are added (altName) */	 	if (email_dn)		dn_subject = subject;	else		{		X509_NAME_ENTRY *tmpne;		/* Its best to dup the subject DN and then delete any email		 * addresses because this retains its structure.		 */		if (!(dn_subject = X509_NAME_dup(subject)))			{			BIO_printf(bio_err,"Memory allocation failure\n");			goto err;			}		while((i = X509_NAME_get_index_by_NID(dn_subject,					NID_pkcs9_emailAddress, -1)) >= 0)			{			tmpne = X509_NAME_get_entry(dn_subject, i);			X509_NAME_delete_entry(dn_subject, i);			X509_NAME_ENTRY_free(tmpne);			}		}	if (BN_is_zero(serial))		row[DB_serial]=BUF_strdup("00");	else		row[DB_serial]=BN_bn2hex(serial);	if (row[DB_serial] == NULL)		{		BIO_printf(bio_err,"Memory allocation failure\n");		goto err;		}	if (db->attributes.unique_subject)		{		rrow=TXT_DB_get_by_index(db->db,DB_name,row);		if (rrow != NULL)			{			BIO_printf(bio_err,				"ERROR:There is already a certificate for %s\n",				row[DB_name]);			}		}	if (rrow == NULL)		{		rrow=TXT_DB_get_by_index(db->db,DB_serial,row);		if (rrow != NULL)			{			BIO_printf(bio_err,"ERROR:Serial number %s has already been issued,\n",				row[DB_serial]);			BIO_printf(bio_err,"      check the database/serial_file for corruption\n");			}		}	if (rrow != NULL)		{		BIO_printf(bio_err,			"The matching entry has the following details\n");		if (rrow[DB_type][0] == 'E')			p="Expired";		else if (rrow[DB_type][0] == 'R')			p="Revoked";		else if (rrow[DB_type][0] == 'V')			p="Valid";		else			p="\ninvalid type, Data base error\n";		BIO_printf(bio_err,"Type	  :%s\n",p);;		if (rrow[DB_type][0] == 'R')			{			p=rrow[DB_exp_date]; if (p == NULL) p="undef";			BIO_printf(bio_err,"Was revoked on:%s\n",p);			}		p=rrow[DB_exp_date]; if (p == NULL) p="undef";		BIO_printf(bio_err,"Expires on    :%s\n",p);		p=rrow[DB_serial]; if (p == NULL) p="undef";		BIO_printf(bio_err,"Serial Number :%s\n",p);		p=rrow[DB_file]; if (p == NULL) p="undef";		BIO_printf(bio_err,"File name     :%s\n",p);		p=rrow[DB_name]; if (p == NULL) p="undef";		BIO_printf(bio_err,"Subject Name  :%s\n",p);		ok= -1; /* This is now a 'bad' error. */		goto err;		}	/* We are now totally happy, lets make and sign the certificate */	if (verbose)		BIO_printf(bio_err,"Everything appears to be ok, creating and signing the certificate\n");	if ((ret=X509_new()) == NULL) goto err;	ci=ret->cert_info;#ifdef X509_V3	/* Make it an X509 v3 certificate. */	if (!X509_set_version(ret,2)) goto err;#endif	if (BN_to_ASN1_INTEGER(serial,ci->serialNumber) == NULL)		goto err;	if (selfsign)		{		if (!X509_set_issuer_name(ret,subject))			goto err;		}	else		{		if (!X509_set_issuer_name(ret,X509_get_subject_name(x509)))			goto err;		}	if (strcmp(startdate,"today") == 0)		X509_gmtime_adj(X509_get_notBefore(ret),0);	else ASN1_UTCTIME_set_string(X509_get_notBefore(ret),startdate);	if (enddate == NULL)		X509_gmtime_adj(X509_get_notAfter(ret),(long)60*60*24*days);	else ASN1_UTCTIME_set_string(X509_get_notAfter(ret),enddate);	if (!X509_set_subject_name(ret,subject)) goto err;	pktmp=X509_REQ_get_pubkey(req);	i = X509_set_pubkey(ret,pktmp);	EVP_PKEY_free(pktmp);	if (!i) goto err;	/* Lets add the extensions, if there are any */	if (ext_sect)		{		X509V3_CTX ctx;		if (ci->version == NULL)			if ((ci->version=ASN1_INTEGER_new()) == NULL)				goto err;		ASN1_INTEGER_set(ci->version,2); /* version 3 certificate */		/* Free the current entries if any, there should not		 * be any I believe */		if (ci->extensions != NULL)			sk_X509_EXTENSION_pop_free(ci->extensions,						   X509_EXTENSION_free);		ci->extensions = NULL;		/* Initialize the context structure */		if (selfsign)			X509V3_set_ctx(&ctx, ret, ret, req, NULL, 0);		else			X509V3_set_ctx(&ctx, x509, ret, req, NULL, 0);		if (extconf)			{			if (verbose)				BIO_printf(bio_err, "Extra configuration file found\n"); 			/* Use the extconf configuration db LHASH */			X509V3_set_nconf(&ctx, extconf); 			/* Test the structure (needed?) */			/* X509V3_set_ctx_test(&ctx); */			/* Adds exts contained in the configuration file */			if (!X509V3_EXT_add_nconf(extconf, &ctx, ext_sect,ret))				{				BIO_printf(bio_err,				    "ERROR: adding extensions in section %s\n",

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区忘忧草| 99久久亚洲一区二区三区青草| 亚洲黄色小视频| 一区在线中文字幕| 一区在线观看视频| 亚洲免费观看高清完整版在线| 日韩美女视频一区二区| 一区二区三区 在线观看视频| 亚洲欧洲色图综合| 香蕉乱码成人久久天堂爱免费| 首页国产欧美久久| 麻豆久久久久久久| 99久久777色| 7777精品伊人久久久大香线蕉| 久久精品人人做人人爽97| 亚洲天堂2014| 国内精品免费**视频| 成人免费视频播放| 日韩一区二区不卡| 亚洲精品国产精华液| 国产精品综合av一区二区国产馆| 成人做爰69片免费看网站| 欧美美女直播网站| 亚洲欧洲精品天堂一级| 久久精品国产第一区二区三区| www.色综合.com| 欧美国产一区二区在线观看| 污片在线观看一区二区| 成年人午夜久久久| 久久久精品2019中文字幕之3| 亚洲国产欧美一区二区三区丁香婷| 免费看欧美女人艹b| 91麻豆精品国产综合久久久久久| 国产精品白丝在线| 成人一区二区三区| 久久久精品国产免费观看同学| 免费的成人av| 2020国产成人综合网| 久久99精品国产.久久久久久 | 成人性色生活片| 国产欧美日韩不卡免费| 国模冰冰炮一区二区| 日韩免费电影一区| 麻豆国产欧美日韩综合精品二区| 4hu四虎永久在线影院成人| 日本91福利区| 久久久亚洲欧洲日产国码αv| 激情深爱一区二区| 国产精品女上位| 在线观看日韩av先锋影音电影院| 亚洲欧美电影院| 制服视频三区第一页精品| 精品亚洲porn| 亚洲三级免费观看| 777xxx欧美| 99r国产精品| 毛片av中文字幕一区二区| 国产精品午夜免费| 在线免费观看不卡av| 日本不卡一区二区三区| 中文欧美字幕免费| 欧美日本一区二区三区四区| 国产一区视频在线看| 亚洲一区二区视频在线| 久久精品亚洲一区二区三区浴池 | 国产视频在线观看一区二区三区| 成人午夜视频在线| 久久不见久久见免费视频1| 国产精品国产三级国产专播品爱网 | 日韩电影在线免费观看| 日本一区二区三区高清不卡| 欧美一级高清片在线观看| av网站免费线看精品| 激情亚洲综合在线| 蜜桃av一区二区| 亚洲国产精品久久久久秋霞影院| 国产丝袜在线精品| 欧美国产精品一区二区三区| 日韩欧美中文字幕制服| 欧美一区二区视频在线观看| 色噜噜狠狠色综合中国| www.66久久| 91在线视频网址| 色综合中文综合网| 中文字幕巨乱亚洲| 久久嫩草精品久久久久| 欧美mv日韩mv亚洲| 精品国产污网站| 久久久综合激的五月天| 日本一区二区三区电影| 国产欧美日韩三级| 亚洲欧洲色图综合| 一区二区三区四区不卡在线| 一区二区三区在线免费视频 | 91啪亚洲精品| 欧美日韩高清一区二区不卡| 欧美一级在线观看| 国产亚洲福利社区一区| 亚洲欧美综合网| 日韩精品成人一区二区三区| 久草这里只有精品视频| 国产91精品在线观看| 欧美性做爰猛烈叫床潮| 欧美成人aa大片| 亚洲免费观看高清| 久久激情综合网| 91麻豆国产自产在线观看| 日韩视频一区在线观看| 中文字幕一区免费在线观看| 日日夜夜免费精品视频| 国产大片一区二区| 欧美一级片在线看| 亚洲色图视频网| 国产精品资源在线| 91精品国产aⅴ一区二区| 日韩毛片在线免费观看| 久久99这里只有精品| 欧美网站大全在线观看| 1000部国产精品成人观看| 极品少妇xxxx精品少妇| 欧美一级二级三级蜜桃| 亚洲成a天堂v人片| 欧美性猛片aaaaaaa做受| 国产日韩欧美在线一区| 久久av老司机精品网站导航| 欧美日韩精品一区二区三区| 亚洲欧洲av在线| 92国产精品观看| 亚洲激情综合网| 欧美日韩一区二区三区不卡| 亚洲精品国产精华液| 欧美性xxxxxxxx| 亚洲午夜激情av| 欧美性大战xxxxx久久久| 亚洲黄色免费网站| 欧美日韩久久不卡| 精彩视频一区二区三区| 国产午夜精品一区二区| 成人一区二区三区在线观看| 亚洲免费在线电影| 678五月天丁香亚洲综合网| 午夜亚洲福利老司机| 久久久久久综合| 91老师国产黑色丝袜在线| 亚洲一区在线观看免费观看电影高清| 欧美精品乱人伦久久久久久| 蜜臀av国产精品久久久久| 国产精品三级av| 欧美日韩国产另类不卡| 国产麻豆91精品| 一区二区三区中文字幕在线观看| 3751色影院一区二区三区| 国产.精品.日韩.另类.中文.在线.播放 | 日韩一区二区三区免费看 | 亚洲第一综合色| 精品国产髙清在线看国产毛片| 成人av资源下载| 麻豆精品视频在线观看| 亚洲精品成a人| 国产欧美一区二区精品久导航| 在线观看日韩国产| 99在线热播精品免费| 久久精品国产99国产| 亚洲一区自拍偷拍| 国产精品国产三级国产aⅴ无密码| 欧美电影一区二区三区| 91小视频在线观看| av中文字幕亚洲| 粗大黑人巨茎大战欧美成人| 国产一本一道久久香蕉| 另类综合日韩欧美亚洲| 婷婷中文字幕综合| 日韩电影免费一区| 日本sm残虐另类| 久久超级碰视频| 韩国三级在线一区| 国产99久久久国产精品潘金| 国产真实乱偷精品视频免| 九九**精品视频免费播放| 久久机这里只有精品| 国产制服丝袜一区| 91在线视频官网| 欧美日韩高清在线| 国产亚洲一区字幕| 91精品国产综合久久蜜臀| 国产激情精品久久久第一区二区| 最新成人av在线| 欧美日韩一区在线| 国产又粗又猛又爽又黄91精品| 亚洲综合色视频| 美女视频黄久久| 成人一区二区三区视频在线观看| 不卡的看片网站| 欧美一区二区三区免费大片 | 国产欧美一区二区精品秋霞影院| 国产女同互慰高潮91漫画| 亚洲综合精品自拍| 久久精品国产成人一区二区三区 | 久久不见久久见中文字幕免费| 99视频精品在线|