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

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

?? pkcs12.c

?? pkcs12格式文件的編解碼軟件
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* pkcs12.c */#if !defined(NO_DES) && !defined(NO_SHA1)/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL * project 1999. *//* ==================================================================== * Copyright (c) 1999 The OpenSSL Project.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer.  * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. All advertising materials mentioning features or use of this *    software must display the following acknowledgment: *    "This product includes software developed by the OpenSSL Project *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" * * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to *    endorse or promote products derived from this software without *    prior written permission. For written permission, please contact *    licensing@OpenSSL.org. * * 5. Products derived from this software may not be called "OpenSSL" *    nor may "OpenSSL" appear in their names without prior written *    permission of the OpenSSL Project. * * 6. Redistributions of any form whatsoever must retain the following *    acknowledgment: *    "This product includes software developed by the OpenSSL Project *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" * * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This product includes cryptographic software written by Eric Young * (eay@cryptsoft.com).  This product includes software written by Tim * Hudson (tjh@cryptsoft.com). * */#include <stdio.h>#include <stdlib.h>#include <string.h>#include "apps.h"#include <openssl/crypto.h>#include <openssl/err.h>#include <openssl/pem.h>#include <openssl/pkcs12.h>#define PROG pkcs12_mainEVP_CIPHER *enc;#define NOKEYS		0x1#define NOCERTS 	0x2#define INFO		0x4#define CLCERTS		0x8#define CACERTS		0x10int get_cert_chain (X509 *cert, X509_STORE *store, STACK_OF(X509) **chain);int dump_certs_keys_p12(BIO *out, PKCS12 *p12, char *pass, int passlen, int options, char *pempass);int dump_certs_pkeys_bags(BIO *out, STACK_OF(PKCS12_SAFEBAG) *bags, char *pass,			  int passlen, int options, char *pempass);int dump_certs_pkeys_bag(BIO *out, PKCS12_SAFEBAG *bags, char *pass, int passlen, int options, char *pempass);int print_attribs(BIO *out, STACK_OF(X509_ATTRIBUTE) *attrlst, char *name);void hex_prin(BIO *out, unsigned char *buf, int len);int alg_print(BIO *x, X509_ALGOR *alg);int cert_load(BIO *in, STACK_OF(X509) *sk);int MAIN(int, char **);int MAIN(int argc, char **argv){    char *infile=NULL, *outfile=NULL, *keyname = NULL;	    char *certfile=NULL;    BIO *in=NULL, *out = NULL, *inkey = NULL, *certsin = NULL;    char **args;    char *name = NULL;    PKCS12 *p12 = NULL;    char pass[50], macpass[50];    int export_cert = 0;    int options = 0;    int chain = 0;    int badarg = 0;    int iter = PKCS12_DEFAULT_ITER;    int maciter = PKCS12_DEFAULT_ITER;    int twopass = 0;    int keytype = 0;    int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;    int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;    int ret = 1;    int macver = 1;    int noprompt = 0;    STACK *canames = NULL;    char *cpass = NULL, *mpass = NULL;    char *passargin = NULL, *passargout = NULL, *passarg = NULL;    char *passin = NULL, *passout = NULL;    char *inrand = NULL;    char *CApath = NULL, *CAfile = NULL;    apps_startup();    enc = EVP_des_ede3_cbc();    if (bio_err == NULL ) bio_err = BIO_new_fp (stderr, BIO_NOCLOSE);    args = argv + 1;    while (*args) {	if (*args[0] == '-') {		if (!strcmp (*args, "-nokeys")) options |= NOKEYS;		else if (!strcmp (*args, "-keyex")) keytype = KEY_EX;		else if (!strcmp (*args, "-keysig")) keytype = KEY_SIG;		else if (!strcmp (*args, "-nocerts")) options |= NOCERTS;		else if (!strcmp (*args, "-clcerts")) options |= CLCERTS;		else if (!strcmp (*args, "-cacerts")) options |= CACERTS;		else if (!strcmp (*args, "-noout")) options |= (NOKEYS|NOCERTS);		else if (!strcmp (*args, "-info")) options |= INFO;		else if (!strcmp (*args, "-chain")) chain = 1;		else if (!strcmp (*args, "-twopass")) twopass = 1;		else if (!strcmp (*args, "-nomacver")) macver = 0;		else if (!strcmp (*args, "-descert"))    			cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;		else if (!strcmp (*args, "-export")) export_cert = 1;		else if (!strcmp (*args, "-des")) enc=EVP_des_cbc();#ifndef NO_IDEA		else if (!strcmp (*args, "-idea")) enc=EVP_idea_cbc();#endif		else if (!strcmp (*args, "-des3")) enc = EVP_des_ede3_cbc();		else if (!strcmp (*args, "-noiter")) iter = 1;		else if (!strcmp (*args, "-maciter"))					 maciter = PKCS12_DEFAULT_ITER;		else if (!strcmp (*args, "-nomaciter"))					 maciter = 1;		else if (!strcmp (*args, "-nodes")) enc=NULL;		else if (!strcmp (*args, "-certpbe")) {			if (args[1]) {				args++;				cert_pbe=OBJ_txt2nid(*args);				if(cert_pbe == NID_undef) {					BIO_printf(bio_err,						 "Unknown PBE algorithm %s\n", *args);					badarg = 1;				}			} else badarg = 1;		} else if (!strcmp (*args, "-keypbe")) {			if (args[1]) {				args++;				key_pbe=OBJ_txt2nid(*args);				if(key_pbe == NID_undef) {					BIO_printf(bio_err,						 "Unknown PBE algorithm %s\n", *args);					badarg = 1;				}			} else badarg = 1;		} else if (!strcmp (*args, "-rand")) {		    if (args[1]) {			args++;				inrand = *args;		    } else badarg = 1;		} else if (!strcmp (*args, "-inkey")) {		    if (args[1]) {			args++;				keyname = *args;		    } else badarg = 1;		} else if (!strcmp (*args, "-certfile")) {		    if (args[1]) {			args++;				certfile = *args;		    } else badarg = 1;		} else if (!strcmp (*args, "-name")) {		    if (args[1]) {			args++;				name = *args;		    } else badarg = 1;		} else if (!strcmp (*args, "-caname")) {		    if (args[1]) {			args++;				if (!canames) canames = sk_new_null();			sk_push(canames, *args);		    } else badarg = 1;		} else if (!strcmp (*args, "-in")) {		    if (args[1]) {			args++;				infile = *args;		    } else badarg = 1;		} else if (!strcmp (*args, "-out")) {		    if (args[1]) {			args++;				outfile = *args;		    } else badarg = 1;		} else if (!strcmp(*args,"-passin")) {		    if (args[1]) {			args++;				passargin = *args;		    } else badarg = 1;		} else if (!strcmp(*args,"-passout")) {		    if (args[1]) {			args++;				passargout = *args;		    } else badarg = 1;		} else if (!strcmp (*args, "-password")) {		    if (args[1]) {			args++;				passarg = *args;		    	noprompt = 1;		    } else badarg = 1;		} else if (!strcmp(*args,"-CApath")) {		    if (args[1]) {			args++;				CApath = *args;		    } else badarg = 1;		} else if (!strcmp(*args,"-CAfile")) {		    if (args[1]) {			args++;				CAfile = *args;		    } else badarg = 1;		} else badarg = 1;	} else badarg = 1;	args++;    }    if (badarg) {	BIO_printf (bio_err, "Usage: pkcs12 [options]\n");	BIO_printf (bio_err, "where options are\n");	BIO_printf (bio_err, "-export       output PKCS12 file\n");	BIO_printf (bio_err, "-chain        add certificate chain\n");	BIO_printf (bio_err, "-inkey file   private key if not infile\n");	BIO_printf (bio_err, "-certfile f   add all certs in f\n");	BIO_printf (bio_err, "-CApath arg   - PEM format directory of CA's\n");	BIO_printf (bio_err, "-CAfile arg   - PEM format file of CA's\n");	BIO_printf (bio_err, "-name \"name\"  use name as friendly name\n");	BIO_printf (bio_err, "-caname \"nm\"  use nm as CA friendly name (can be used more than once).\n");	BIO_printf (bio_err, "-in  infile   input filename\n");	BIO_printf (bio_err, "-out outfile  output filename\n");	BIO_printf (bio_err, "-noout        don't output anything, just verify.\n");	BIO_printf (bio_err, "-nomacver     don't verify MAC.\n");	BIO_printf (bio_err, "-nocerts      don't output certificates.\n");	BIO_printf (bio_err, "-clcerts      only output client certificates.\n");	BIO_printf (bio_err, "-cacerts      only output CA certificates.\n");	BIO_printf (bio_err, "-nokeys       don't output private keys.\n");	BIO_printf (bio_err, "-info         give info about PKCS#12 structure.\n");	BIO_printf (bio_err, "-des          encrypt private keys with DES\n");	BIO_printf (bio_err, "-des3         encrypt private keys with triple DES (default)\n");#ifndef NO_IDEA	BIO_printf (bio_err, "-idea         encrypt private keys with idea\n");#endif	BIO_printf (bio_err, "-nodes        don't encrypt private keys\n");	BIO_printf (bio_err, "-noiter       don't use encryption iteration\n");	BIO_printf (bio_err, "-maciter      use MAC iteration\n");	BIO_printf (bio_err, "-twopass      separate MAC, encryption passwords\n");	BIO_printf (bio_err, "-descert      encrypt PKCS#12 certificates with triple DES (default RC2-40)\n");	BIO_printf (bio_err, "-certpbe alg  specify certificate PBE algorithm (default RC2-40)\n");	BIO_printf (bio_err, "-keypbe alg   specify private key PBE algorithm (default 3DES)\n");	BIO_printf (bio_err, "-keyex        set MS key exchange type\n");	BIO_printf (bio_err, "-keysig       set MS key signature type\n");	BIO_printf (bio_err, "-password p   set import/export password source\n");	BIO_printf (bio_err, "-passin p     input file pass phrase source\n");	BIO_printf (bio_err, "-passout p    output file pass phrase source\n");	BIO_printf(bio_err,  "-rand file%cfile%c...\n", LIST_SEPARATOR_CHAR, LIST_SEPARATOR_CHAR);	BIO_printf(bio_err,  "              load the file (or the files in the directory) into\n");	BIO_printf(bio_err,  "              the random number generator\n");    	goto end;    }    if(passarg) {	if(export_cert) passargout = passarg;	else passargin = passarg;    }    if(!app_passwd(bio_err, passargin, passargout, &passin, &passout)) {	BIO_printf(bio_err, "Error getting passwords\n");	goto end;    }    if(!cpass) {    	if(export_cert) cpass = passout;    	else cpass = passin;    }    if(cpass) {	mpass = cpass;	noprompt = 1;    } else {	cpass = pass;	mpass = macpass;    }    if(export_cert || inrand) {    	app_RAND_load_file(NULL, bio_err, (inrand != NULL));        if (inrand != NULL)		BIO_printf(bio_err,"%ld semi-random bytes loaded\n",			app_RAND_load_files(inrand));    }    ERR_load_crypto_strings();#ifdef CRYPTO_MDEBUG    CRYPTO_push_info("read files");#endif    if (!infile) in = BIO_new_fp(stdin, BIO_NOCLOSE);    else in = BIO_new_file(infile, "rb");    if (!in) {	    BIO_printf(bio_err, "Error opening input file %s\n",						infile ? infile : "<stdin>");	    perror (infile);	    goto end;   }   if (certfile) {    	if(!(certsin = BIO_new_file(certfile, "r"))) {	    BIO_printf(bio_err, "Can't open certificate file %s\n", certfile);	    perror (certfile);	    goto end;	}    }    if (keyname) {    	if(!(inkey = BIO_new_file(keyname, "r"))) {	    BIO_printf(bio_err, "Can't key certificate file %s\n", keyname);	    perror (keyname);	    goto end;	}     }#ifdef CRYPTO_MDEBUG    CRYPTO_pop_info();    CRYPTO_push_info("write files");#endif    if (!outfile) {	out = BIO_new_fp(stdout, BIO_NOCLOSE);#ifdef VMS	{	    BIO *tmpbio = BIO_new(BIO_f_linebuffer());	    out = BIO_push(tmpbio, out);	}#endif    } else out = BIO_new_file(outfile, "wb");    if (!out) {	BIO_printf(bio_err, "Error opening output file %s\n",						outfile ? outfile : "<stdout>");	perror (outfile);	goto end;    }    if (twopass) {#ifdef CRYPTO_MDEBUG    CRYPTO_push_info("read MAC password");#endif	if(EVP_read_pw_string (macpass, 50, "Enter MAC Password:", export_cert))	{    	    BIO_printf (bio_err, "Can't read Password\n");    	    goto end;       	}#ifdef CRYPTO_MDEBUG    CRYPTO_pop_info();#endif    }    if (export_cert) {	EVP_PKEY *key = NULL;	STACK_OF(PKCS12_SAFEBAG) *bags = NULL;	STACK_OF(PKCS7) *safes = NULL;	PKCS12_SAFEBAG *bag = NULL;	PKCS8_PRIV_KEY_INFO *p8 = NULL;	PKCS7 *authsafe = NULL;	X509 *ucert = NULL;	STACK_OF(X509) *certs=NULL;	char *catmp = NULL;	int i;	unsigned char keyid[EVP_MAX_MD_SIZE];	unsigned int keyidlen = 0;#ifdef CRYPTO_MDEBUG	CRYPTO_push_info("process -export_cert");	CRYPTO_push_info("reading private key");#endif	key = PEM_read_bio_PrivateKey(inkey ? inkey : in, NULL, NULL, passin);	if (!inkey) (void) BIO_reset(in);	else BIO_free(inkey);	if (!key) {		BIO_printf (bio_err, "Error loading private key\n");		ERR_print_errors(bio_err);		goto export_end;	}#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("reading certs from input");#endif	certs = sk_X509_new_null();	/* Load in all certs in input file */	if(!cert_load(in, certs)) {		BIO_printf(bio_err, "Error loading certificates from input\n");		ERR_print_errors(bio_err);		goto export_end;	}#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("reading certs from input 2");#endif	for(i = 0; i < sk_X509_num(certs); i++) {		ucert = sk_X509_value(certs, i);		if(X509_check_private_key(ucert, key)) {			X509_digest(ucert, EVP_sha1(), keyid, &keyidlen);			break;		}	}	if(!keyidlen) {		ucert = NULL;		BIO_printf(bio_err, "No certificate matches private key\n");		goto export_end;	}	#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();	CRYPTO_push_info("reading certs from certfile");#endif	bags = sk_PKCS12_SAFEBAG_new_null ();	/* Add any more certificates asked for */	if (certsin) {		if(!cert_load(certsin, certs)) {			BIO_printf(bio_err, "Error loading certificates from certfile\n");			ERR_print_errors(bio_err);			goto export_end;		}	    	BIO_free(certsin); 	}#ifdef CRYPTO_MDEBUG	CRYPTO_pop_info();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区影院| 国产精品不卡一区| 在线综合视频播放| 在线视频中文字幕一区二区| 99久久免费视频.com| 99国产欧美久久久精品| 色婷婷久久99综合精品jk白丝| 成人午夜免费av| 丁香婷婷综合网| 国产综合久久久久久鬼色| 成人毛片在线观看| 欧美午夜寂寞影院| 日韩精品中文字幕在线一区| 色婷婷久久久亚洲一区二区三区| 色猫猫国产区一区二在线视频| 国产一区二区电影| 在线视频一区二区三| 亚洲欧洲成人精品av97| 亚洲国产精品成人综合| 麻豆91小视频| 欧美一区二区三区成人| 一区二区三区鲁丝不卡| 99re亚洲国产精品| 国产精品国产三级国产普通话蜜臀 | 亚洲一区二区三区在线看| 成a人片亚洲日本久久| 中文字幕一区在线| 色综合天天在线| 一区二区三区中文字幕精品精品| 国产在线观看免费一区| 久久久亚洲午夜电影| 国产一区二区三区| 欧美国产精品专区| 一本色道久久加勒比精品 | 精品精品国产高清一毛片一天堂| 日韩电影一区二区三区四区| 成人小视频在线观看| 一区二区三区色| 欧美一区二区三区四区久久| 国产精品中文欧美| 一区二区三区精品久久久| 91.麻豆视频| 国产精品99久久久久| 成人欧美一区二区三区黑人麻豆| 91亚洲精品乱码久久久久久蜜桃| 自拍偷在线精品自拍偷无码专区 | 日韩avvvv在线播放| 中文av一区特黄| 91麻豆精品国产自产在线| 成人免费福利片| 国内精品第一页| 午夜精品久久久久久久| 亚洲日本丝袜连裤袜办公室| 欧美群妇大交群的观看方式| 成人午夜免费av| 成人免费视频网站在线观看| 精品在线免费视频| 另类成人小视频在线| 午夜av一区二区三区| 国产精品久久一卡二卡| 久久九九国产精品| 久久伊人蜜桃av一区二区| 欧美不卡一区二区三区| 欧美精品丝袜久久久中文字幕| zzijzzij亚洲日本少妇熟睡| 国产成人在线观看| 国产91精品久久久久久久网曝门| 极品尤物av久久免费看| 老司机午夜精品| 不卡欧美aaaaa| 91在线精品一区二区| 99国产麻豆精品| 国产精品一区二区久久精品爱涩| 国产精品小仙女| 91官网在线免费观看| 91精品国产色综合久久不卡蜜臀 | 制服丝袜亚洲色图| 精品99999| 亚洲精品国产一区二区三区四区在线 | 亚洲精品在线一区二区| 中文字幕制服丝袜成人av | 成人午夜激情在线| 91精品综合久久久久久| 精品福利在线导航| 一区二区三区日韩欧美| 久久精品国产**网站演员| 一本色道久久加勒比精品| 欧美xxxx老人做受| 亚洲精品国产第一综合99久久| 美国毛片一区二区| 91久久奴性调教| 国产午夜精品美女毛片视频| 亚洲一二三四区| 成+人+亚洲+综合天堂| 日韩欧美亚洲一区二区| 婷婷久久综合九色综合伊人色| www.色精品| 国产人伦精品一区二区| 国内精品久久久久影院一蜜桃| 色菇凉天天综合网| 成人欧美一区二区三区1314| 免费观看一级欧美片| 国产精品88av| 亚洲国产成人在线| 成人精品电影在线观看| 国产亚洲精品7777| 不卡的av网站| 亚洲一区二区在线观看视频| 99久久777色| 亚洲自拍欧美精品| 91麻豆精品秘密| 午夜精品免费在线| 欧美高清视频不卡网| 美女mm1313爽爽久久久蜜臀| 日韩精品一区二区在线| 国产一区二区看久久| 亚洲欧美日韩国产综合在线| 在线亚洲人成电影网站色www| 日本成人在线一区| 久久超碰97中文字幕| 精品少妇一区二区三区免费观看| 久久国产福利国产秒拍| 久久影院视频免费| 免费三级欧美电影| 免费精品视频在线| 成人h精品动漫一区二区三区| 99久久国产免费看| 欧美一区二区三区在| 欧美国产日本韩| 最新国产の精品合集bt伙计| 亚洲成a天堂v人片| 成人午夜免费av| 欧美精品 日韩| 亚洲另类春色校园小说| 日韩国产欧美在线观看| 久久国产夜色精品鲁鲁99| 色94色欧美sute亚洲13| 久久久久久免费毛片精品| 性做久久久久久久久| 国产成人一区二区精品非洲| 欧美日韩国产另类一区| 亚洲欧美怡红院| 99久久婷婷国产综合精品| 久久人人97超碰com| 五月综合激情婷婷六月色窝| 色综合久久中文字幕综合网| 国产欧美日韩在线观看| 精品制服美女久久| 欧美福利一区二区| 日韩精品免费专区| 国产成人av一区二区| 欧美色视频在线| 国产精品18久久久久久久久 | 日韩欧美一级二级| 另类小说综合欧美亚洲| 9191国产精品| 日韩精品亚洲专区| 色天天综合久久久久综合片| 亚洲黄色av一区| 在线不卡的av| 久久99精品国产麻豆不卡| 国产日韩精品一区二区浪潮av | 91精品国产91久久久久久一区二区| 洋洋av久久久久久久一区| 欧美一区二区三区在线看| 精彩视频一区二区三区| 一区二区三区在线不卡| 精品av久久707| 欧美日韩一区二区三区高清 | 精品国产乱子伦一区| 色先锋aa成人| 综合电影一区二区三区| 久久国产精品第一页| 精品国产污污免费网站入口| 日韩欧美视频在线| 久久精品欧美日韩精品| 欧美精品一区男女天堂| 日韩一区国产二区欧美三区| 欧美人与禽zozo性伦| 色av成人天堂桃色av| 色综合久久88色综合天天6 | 国产美女在线观看一区| 亚洲电影在线免费观看| 一区二区不卡在线视频 午夜欧美不卡在 | 久久精品国产99久久6| 一区av在线播放| 日本视频在线一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 蜜臀91精品一区二区三区 | 国产精品亚洲专一区二区三区 | 日韩一级免费观看| 久久理论电影网| 一区二区三区.www| 精品一区二区三区免费| 99热这里都是精品| 欧美不卡一区二区| 国产精品久久久久aaaa| 国产亚洲欧美日韩俺去了| 日韩三级免费观看| 欧美日韩国产123区|