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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? pkcs12.c

?? pkcs12格式文件的編解碼軟件
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	CRYPTO_push_info("building chain");#endif	/* If chaining get chain from user cert */	if (chain) {        	int vret;		STACK_OF(X509) *chain2;		X509_STORE *store = X509_STORE_new();		if (!store)			{			BIO_printf (bio_err, "Memory allocation error\n");			goto export_end;			}		if (!X509_STORE_load_locations(store, CAfile, CApath))			X509_STORE_set_default_paths (store);		vret = get_cert_chain (ucert, store, &chain2);		X509_STORE_free(store);		if (!vret) {		    /* Exclude verified certificate */		    for (i = 1; i < sk_X509_num (chain2) ; i++) 			sk_X509_push(certs, sk_X509_value (chain2, i));		    /* Free first certificate */		    X509_free(sk_X509_value(chain2, 0));		    sk_X509_free(chain2);		} else {			BIO_printf (bio_err, "Error %s getting chain.\n",					X509_verify_cert_error_string(vret));			goto export_end;		}			    	}#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("building bags");#endif	/* We now have loads of certificates: include them all */	for(i = 0; i < sk_X509_num(certs); i++) {		X509 *cert = NULL;		cert = sk_X509_value(certs, i);		bag = M_PKCS12_x5092certbag(cert);		/* If it matches private key set id */		if(cert == ucert) {			if(name) PKCS12_add_friendlyname(bag, name, -1);			PKCS12_add_localkeyid(bag, keyid, keyidlen);		} else if((catmp = sk_shift(canames))) 				PKCS12_add_friendlyname(bag, catmp, -1);		sk_PKCS12_SAFEBAG_push(bags, bag);	}	sk_X509_pop_free(certs, X509_free);	certs = NULL;#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("encrypting bags");#endif	if(!noprompt &&		EVP_read_pw_string(pass, 50, "Enter Export Password:", 1)) {	    BIO_printf (bio_err, "Can't read Password\n");	    goto export_end;        }	if (!twopass) strcpy(macpass, pass);	/* Turn certbags into encrypted authsafe */	authsafe = PKCS12_pack_p7encdata(cert_pbe, cpass, -1, NULL, 0,								 iter, bags);	sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);	bags = NULL;	if (!authsafe) {		ERR_print_errors (bio_err);		goto export_end;	}	safes = sk_PKCS7_new_null ();	sk_PKCS7_push (safes, authsafe);#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("building shrouded key bag");#endif	/* Make a shrouded key bag */	p8 = EVP_PKEY2PKCS8 (key);	if(keytype) PKCS8_add_keyusage(p8, keytype);	bag = PKCS12_MAKE_SHKEYBAG(key_pbe, cpass, -1, NULL, 0, iter, p8);	PKCS8_PRIV_KEY_INFO_free(p8);	p8 = NULL;        if (name) PKCS12_add_friendlyname (bag, name, -1);	PKCS12_add_localkeyid (bag, keyid, keyidlen);	bags = sk_PKCS12_SAFEBAG_new_null();	sk_PKCS12_SAFEBAG_push (bags, bag);#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("encrypting shrouded key bag");#endif	/* Turn it into unencrypted safe bag */	authsafe = PKCS12_pack_p7data (bags);	sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);	bags = NULL;	sk_PKCS7_push (safes, authsafe);#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("building pkcs12");#endif	p12 = PKCS12_init (NID_pkcs7_data);	M_PKCS12_pack_authsafes (p12, safes);	sk_PKCS7_pop_free(safes, PKCS7_free);	safes = NULL;	PKCS12_set_mac (p12, mpass, -1, NULL, 0, maciter, NULL);#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("writing pkcs12");#endif	i2d_PKCS12_bio (out, p12);	ret = 0;    export_end:#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_pop_info();	CRYPTO_push_info("process -export_cert: freeing");#endif	if (key) EVP_PKEY_free(key);	if (certs) sk_X509_pop_free(certs, X509_free);	if (safes) sk_PKCS7_pop_free(safes, PKCS7_free);	if (bags) sk_PKCS12_SAFEBAG_pop_free(bags, PKCS12_SAFEBAG_free);#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();#endif	goto end;	    }    if (!(p12 = d2i_PKCS12_bio (in, NULL))) {	ERR_print_errors(bio_err);	goto end;    }#ifdef CRYPTO_MDEBUG    CRYPTO_push_info("read import password");#endif    if(!noprompt && EVP_read_pw_string(pass, 50, "Enter Import Password:", 0)) {	BIO_printf (bio_err, "Can't read Password\n");	goto end;    }#ifdef CRYPTO_MDEBUG    CRYPTO_pop_info();#endif    if (!twopass) strcpy(macpass, pass);    if (options & INFO) BIO_printf (bio_err, "MAC Iteration %ld\n", p12->mac->iter ? ASN1_INTEGER_get (p12->mac->iter) : 1);    if(macver) {#ifdef CRYPTO_MDEBUG    CRYPTO_push_info("verify MAC");#endif	/* If we enter empty password try no password first */	if(!macpass[0] && PKCS12_verify_mac(p12, NULL, 0)) {		/* If mac and crypto pass the same set it to NULL too */		if(!twopass) cpass = NULL;	} else if (!PKCS12_verify_mac(p12, mpass, -1)) {	    BIO_printf (bio_err, "Mac verify error: invalid password?\n");	    ERR_print_errors (bio_err);	    goto end;	}	BIO_printf (bio_err, "MAC verified OK\n");#ifdef CRYPTO_MDEBUG    CRYPTO_pop_info();#endif    }#ifdef CRYPTO_MDEBUG    CRYPTO_push_info("output keys and certificates");#endif    if (!dump_certs_keys_p12 (out, p12, cpass, -1, options, passout)) {	BIO_printf(bio_err, "Error outputting keys and certificates\n");	ERR_print_errors (bio_err);	goto end;    }#ifdef CRYPTO_MDEBUG    CRYPTO_pop_info();#endif    ret = 0; end:    if (p12) PKCS12_free(p12);    if(export_cert || inrand) app_RAND_write_file(NULL, bio_err);#ifdef CRYPTO_MDEBUG    CRYPTO_remove_all_info();#endif    BIO_free(in);    BIO_free_all(out);    if (canames) sk_free(canames);    if(passin) OPENSSL_free(passin);    if(passout) OPENSSL_free(passout);    OPENSSL_EXIT(ret);}int dump_certs_keys_p12 (BIO *out, PKCS12 *p12, char *pass,	     int passlen, int options, char *pempass){	STACK_OF(PKCS7) *asafes;	STACK_OF(PKCS12_SAFEBAG) *bags;	int i, bagnid;	PKCS7 *p7;	if (!( asafes = M_PKCS12_unpack_authsafes (p12))) return 0;	for (i = 0; i < sk_PKCS7_num (asafes); i++) {		p7 = sk_PKCS7_value (asafes, i);		bagnid = OBJ_obj2nid (p7->type);		if (bagnid == NID_pkcs7_data) {			bags = M_PKCS12_unpack_p7data (p7);			if (options & INFO) BIO_printf (bio_err, "PKCS7 Data\n");		} else if (bagnid == NID_pkcs7_encrypted) {			if (options & INFO) {				BIO_printf (bio_err, "PKCS7 Encrypted data: ");				alg_print (bio_err, 					p7->d.encrypted->enc_data->algorithm);			}			bags = M_PKCS12_unpack_p7encdata (p7, pass, passlen);		} else continue;		if (!bags) return 0;	    	if (!dump_certs_pkeys_bags (out, bags, pass, passlen, 						 options, pempass)) {			sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free);			return 0;		}		sk_PKCS12_SAFEBAG_pop_free (bags, PKCS12_SAFEBAG_free);	}	sk_PKCS7_pop_free (asafes, PKCS7_free);	return 1;}int dump_certs_pkeys_bags (BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags,			   char *pass, int passlen, int options, char *pempass){	int i;	for (i = 0; i < sk_PKCS12_SAFEBAG_num (bags); i++) {		if (!dump_certs_pkeys_bag (out,					   sk_PKCS12_SAFEBAG_value (bags, i),					   pass, passlen,					   options, pempass))		    return 0;	}	return 1;}int dump_certs_pkeys_bag (BIO *out, PKCS12_SAFEBAG *bag, char *pass,	     int passlen, int options, char *pempass){	EVP_PKEY *pkey;	PKCS8_PRIV_KEY_INFO *p8;	X509 *x509;		switch (M_PKCS12_bag_type(bag))	{	case NID_keyBag:		if (options & INFO) BIO_printf (bio_err, "Key bag\n");		if (options & NOKEYS) return 1;		print_attribs (out, bag->attrib, "Bag Attributes");		p8 = bag->value.keybag;		if (!(pkey = EVP_PKCS82PKEY (p8))) return 0;		print_attribs (out, p8->attributes, "Key Attributes");		PEM_write_bio_PrivateKey (out, pkey, enc, NULL, 0, NULL, pempass);		EVP_PKEY_free(pkey);	break;	case NID_pkcs8ShroudedKeyBag:		if (options & INFO) {			BIO_printf (bio_err, "Shrouded Keybag: ");			alg_print (bio_err, bag->value.shkeybag->algor);		}		if (options & NOKEYS) return 1;		print_attribs (out, bag->attrib, "Bag Attributes");		if (!(p8 = M_PKCS12_decrypt_skey (bag, pass, passlen)))				return 0;		if (!(pkey = EVP_PKCS82PKEY (p8))) {			PKCS8_PRIV_KEY_INFO_free(p8);			return 0;		}		print_attribs (out, p8->attributes, "Key Attributes");		PKCS8_PRIV_KEY_INFO_free(p8);		PEM_write_bio_PrivateKey (out, pkey, enc, NULL, 0, NULL, pempass);		EVP_PKEY_free(pkey);	break;	case NID_certBag:		if (options & INFO) BIO_printf (bio_err, "Certificate bag\n");		if (options & NOCERTS) return 1;                if (PKCS12_get_attr(bag, NID_localKeyID)) {			if (options & CACERTS) return 1;		} else if (options & CLCERTS) return 1;		print_attribs (out, bag->attrib, "Bag Attributes");		if (M_PKCS12_cert_bag_type(bag) != NID_x509Certificate )								 return 1;		if (!(x509 = M_PKCS12_certbag2x509(bag))) return 0;		dump_cert_text (out, x509);		PEM_write_bio_X509 (out, x509);		X509_free(x509);	break;	case NID_safeContentsBag:		if (options & INFO) BIO_printf (bio_err, "Safe Contents bag\n");		print_attribs (out, bag->attrib, "Bag Attributes");		return dump_certs_pkeys_bags (out, bag->value.safes, pass,							    passlen, options, pempass);						default:		BIO_printf (bio_err, "Warning unsupported bag type: ");		i2a_ASN1_OBJECT (bio_err, bag->type);		BIO_printf (bio_err, "\n");		return 1;	break;	}	return 1;}/* Given a single certificate return a verified chain or NULL if error *//* Hope this is OK .... */int get_cert_chain (X509 *cert, X509_STORE *store, STACK_OF(X509) **chain){	X509_STORE_CTX store_ctx;	STACK_OF(X509) *chn;	int i;	X509_STORE_CTX_init(&store_ctx, store, cert, NULL);	if (X509_verify_cert(&store_ctx) <= 0) {		i = X509_STORE_CTX_get_error (&store_ctx);		goto err;	}	chn =  X509_STORE_CTX_get1_chain(&store_ctx);	i = 0;	*chain = chn;err:	X509_STORE_CTX_cleanup(&store_ctx);		return i;}	int alg_print (BIO *x, X509_ALGOR *alg){	PBEPARAM *pbe;	unsigned char *p;	p = alg->parameter->value.sequence->data;	pbe = d2i_PBEPARAM (NULL, &p, alg->parameter->value.sequence->length);	BIO_printf (bio_err, "%s, Iteration %d\n", 	OBJ_nid2ln(OBJ_obj2nid(alg->algorithm)), ASN1_INTEGER_get(pbe->iter));	PBEPARAM_free (pbe);	return 0;}/* Load all certificates from a given file */int cert_load(BIO *in, STACK_OF(X509) *sk){	int ret;	X509 *cert;	ret = 0;#ifdef CRYPTO_MDEBUG	CRYPTO_push_info("cert_load(): reading one cert");#endif	while((cert = PEM_read_bio_X509(in, NULL, NULL, NULL))) {#ifdef CRYPTO_MDEBUG		CRYPTO_pop_info();#endif		ret = 1;		sk_X509_push(sk, cert);#ifdef CRYPTO_MDEBUG		CRYPTO_push_info("cert_load(): reading one cert");#endif	}#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();#endif	if(ret) ERR_clear_error();	return ret;}/* Generalised attribute print: handle PKCS#8 and bag attributes */int print_attribs (BIO *out, STACK_OF(X509_ATTRIBUTE) *attrlst, char *name){	X509_ATTRIBUTE *attr;	ASN1_TYPE *av;	char *value;	int i, attr_nid;	if(!attrlst) {		BIO_printf(out, "%s: <No Attributes>\n", name);		return 1;	}	if(!sk_X509_ATTRIBUTE_num(attrlst)) {		BIO_printf(out, "%s: <Empty Attributes>\n", name);		return 1;	}	BIO_printf(out, "%s\n", name);	for(i = 0; i < sk_X509_ATTRIBUTE_num(attrlst); i++) {		attr = sk_X509_ATTRIBUTE_value(attrlst, i);		attr_nid = OBJ_obj2nid(attr->object);		BIO_printf(out, "    ");		if(attr_nid == NID_undef) {			i2a_ASN1_OBJECT (out, attr->object);			BIO_printf(out, ": ");		} else BIO_printf(out, "%s: ", OBJ_nid2ln(attr_nid));		if(sk_ASN1_TYPE_num(attr->value.set)) {			av = sk_ASN1_TYPE_value(attr->value.set, 0);			switch(av->type) {				case V_ASN1_BMPSTRING:        			value = uni2asc(av->value.bmpstring->data,                                	       av->value.bmpstring->length);				BIO_printf(out, "%s\n", value);				OPENSSL_free(value);				break;				case V_ASN1_OCTET_STRING:				hex_prin(out, av->value.octet_string->data,					av->value.octet_string->length);				BIO_printf(out, "\n");					break;				case V_ASN1_BIT_STRING:				hex_prin(out, av->value.bit_string->data,					av->value.bit_string->length);				BIO_printf(out, "\n");					break;				default:					BIO_printf(out, "<Unsupported tag %d>\n", av->type);				break;			}		} else BIO_printf(out, "<No Values>\n");	}	return 1;}void hex_prin(BIO *out, unsigned char *buf, int len){	int i;	for (i = 0; i < len; i++) BIO_printf (out, "%02X ", buf[i]);}#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品大片www| 精品国产免费视频| 91精品福利在线一区二区三区| 欧美人妖巨大在线| 精品剧情在线观看| 亚洲图片激情小说| 免费高清在线一区| 成人午夜电影久久影院| 在线观看中文字幕不卡| 欧美成人a∨高清免费观看| 国产精品色哟哟| 婷婷丁香久久五月婷婷| 国产精品18久久久久久久久| 色综合天天天天做夜夜夜夜做| 欧美日韩精品二区第二页| 久久久亚洲精品一区二区三区| 专区另类欧美日韩| 蜜桃视频一区二区| 色香蕉久久蜜桃| 久久婷婷成人综合色| 亚洲第一综合色| 成人精品国产福利| 欧美一区二区精品在线| 国产精品传媒视频| 久久99国产精品免费| 色综合久久中文综合久久牛| 26uuu欧美| 午夜精品久久久| 99在线精品免费| 精品国产免费人成电影在线观看四季| 亚洲精品成人在线| 国产中文字幕精品| 欧美二区三区的天堂| 国产精品国产三级国产aⅴ原创| 欧美aaa在线| 在线观看免费成人| 国产精品欧美一区喷水| 久久精品免费观看| 欧美午夜寂寞影院| 亚洲三级电影全部在线观看高清| 国内一区二区在线| 宅男噜噜噜66一区二区66| 亚洲欧美影音先锋| 国产成人在线免费观看| 日韩视频一区二区三区| 午夜视频在线观看一区二区三区| 99这里只有精品| 国产日韩精品久久久| 久久精品久久精品| 欧美一二三在线| 日韩高清在线不卡| 欧美在线免费播放| 亚洲欧美日韩成人高清在线一区| 国产精品88888| 26uuu精品一区二区在线观看| 奇米一区二区三区av| 7777精品久久久大香线蕉 | 蜜乳av一区二区三区| 欧美伊人久久大香线蕉综合69| 亚洲欧美日韩一区二区| caoporn国产精品| 中文字幕av资源一区| 国产剧情一区二区三区| www欧美成人18+| 国产精品影视网| 国产午夜精品久久久久久久| 国产剧情一区在线| 国产日韩欧美亚洲| 岛国精品在线播放| 国产色婷婷亚洲99精品小说| 国产麻豆午夜三级精品| 久久人人爽爽爽人久久久| 久久草av在线| 精品国产污污免费网站入口 | 日韩精品一区二区三区老鸭窝| 日本在线观看不卡视频| 欧美一区二区三区视频在线| 美女视频黄免费的久久| 亚洲精品一区二区在线观看| 激情综合网天天干| 国产亚洲一区二区在线观看| 国产69精品久久777的优势| 国产精品亲子伦对白| 91麻豆国产福利在线观看| 亚洲精品免费播放| 欧美日韩一区国产| 美日韩一区二区| 久久综合久久久久88| 粉嫩绯色av一区二区在线观看| 亚洲欧洲国产日本综合| 欧美在线综合视频| 蜜臀av性久久久久av蜜臀妖精| 日韩精品中文字幕一区二区三区 | 国产欧美日韩视频一区二区| 成人午夜精品一区二区三区| 亚洲免费观看高清| 欧美日韩国产综合久久| 久久99精品久久久久久| 久久久久久99精品| 91免费版在线| 日本欧美加勒比视频| 久久久久国产免费免费| 91视频观看免费| 午夜久久久久久电影| 亚洲精品在线网站| 99久久国产综合精品色伊| 午夜精品在线视频一区| 久久免费美女视频| 91玉足脚交白嫩脚丫在线播放| 日日摸夜夜添夜夜添精品视频| 欧美大片一区二区三区| jlzzjlzz亚洲女人18| 性久久久久久久久久久久| 久久蜜桃av一区精品变态类天堂| 91麻豆123| 免费视频最近日韩| 国产精品久久久久国产精品日日| 欧美日韩一区二区三区不卡| 国产精品77777| 亚洲国产cao| 国产日产欧产精品推荐色 | 日韩av高清在线观看| 国产精品你懂的在线欣赏| 欧美日韩视频在线一区二区| 国产麻豆成人精品| 亚洲成av人片观看| 国产女人水真多18毛片18精品视频 | 欧美一区二区私人影院日本| 成人国产精品免费| 免费高清不卡av| 一区二区三区四区国产精品| 2024国产精品| 欧美欧美欧美欧美首页| av毛片久久久久**hd| 美女mm1313爽爽久久久蜜臀| 一区二区在线观看免费| 久久婷婷国产综合精品青草| 欧美日韩国产综合一区二区三区| 成人av网站在线| 麻豆精品国产传媒mv男同| 亚洲免费观看高清完整| 国产欧美综合在线观看第十页| 在线不卡的av| 色94色欧美sute亚洲线路二| 国产精品69毛片高清亚洲| 日韩二区三区四区| 亚洲制服丝袜av| 国产精品区一区二区三区| 久久综合九色综合欧美亚洲| 91精品国产综合久久久蜜臀粉嫩 | 国产精品萝li| 精品国产一区二区三区久久影院| 欧美日韩精品一区二区| 91免费视频大全| 成人午夜精品在线| 国产精品一区一区三区| 男女男精品视频网| 日韩国产成人精品| 午夜精品久久久久久久99水蜜桃| 亚洲日本在线视频观看| 国产精品午夜春色av| 国产午夜精品一区二区三区嫩草 | 狠狠色综合日日| 日本午夜一本久久久综合| 亚洲午夜影视影院在线观看| 亚洲人精品午夜| 国产精品人人做人人爽人人添| 国产亚洲一区二区三区四区| 337p粉嫩大胆色噜噜噜噜亚洲| 91 com成人网| 欧美久久久久久久久久| 欧美日韩一区二区三区免费看| 欧洲av一区二区嗯嗯嗯啊| 欧美性受xxxx黑人xyx性爽| 欧美最猛性xxxxx直播| 91成人网在线| 欧美午夜理伦三级在线观看| 欧美性欧美巨大黑白大战| 欧美制服丝袜第一页| 欧美三区免费完整视频在线观看| 91成人看片片| 欧美美女bb生活片| 日韩一级高清毛片| 日韩欧美成人一区| 精品国产在天天线2019| 精品99一区二区| 国产女同性恋一区二区| 国产精品久久久久一区二区三区| 国产欧美日韩综合精品一区二区| 久久综合九色综合97婷婷女人 | 成人在线综合网站| 成人毛片老司机大片| 成人av在线观| 91一区二区在线| 91黄色激情网站| 欧美精选在线播放| 日韩一区二区在线看| 2021久久国产精品不只是精品| 国产亚洲精品7777| 中文字幕一区二区在线观看 |