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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? p12_mutl.c

?? openssl包含TLS
?? C
字號:
/* p12_mutl.c *//* 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). * */#ifndef OPENSSL_NO_HMAC#include <stdio.h>#include "cryptlib.h"#include <openssl/hmac.h>#include <openssl/rand.h>#include <openssl/pkcs12.h>/* Generate a MAC */int PKCS12_gen_mac (PKCS12 *p12, const char *pass, int passlen,		    unsigned char *mac, unsigned int *maclen){	const EVP_MD *md_type;	HMAC_CTX hmac;	unsigned char key[PKCS12_MAC_KEY_LENGTH], *salt;	int saltlen, iter;	if (!PKCS7_type_is_data(p12->authsafes))		{		PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_CONTENT_TYPE_NOT_DATA);		return 0;		}	salt = p12->mac->salt->data;	saltlen = p12->mac->salt->length;	if (!p12->mac->iter) iter = 1;	else iter = ASN1_INTEGER_get (p12->mac->iter);    	if(!(md_type =		 EVP_get_digestbyobj (p12->mac->dinfo->algor->algorithm))) {		PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_UNKNOWN_DIGEST_ALGORITHM);		return 0;	}	if(!PKCS12_key_gen (pass, passlen, salt, saltlen, PKCS12_MAC_ID, iter,				 PKCS12_MAC_KEY_LENGTH, key, md_type)) {		PKCS12err(PKCS12_F_PKCS12_GEN_MAC,PKCS12_R_KEY_GEN_ERROR);		return 0;	}	HMAC_CTX_init(&hmac);	HMAC_Init_ex(&hmac, key, PKCS12_MAC_KEY_LENGTH, md_type, NULL);    	HMAC_Update(&hmac, p12->authsafes->d.data->data,					 p12->authsafes->d.data->length);    	HMAC_Final(&hmac, mac, maclen);    	HMAC_CTX_cleanup(&hmac);	return 1;}/* Verify the mac */int PKCS12_verify_mac (PKCS12 *p12, const char *pass, int passlen){	unsigned char mac[EVP_MAX_MD_SIZE];	unsigned int maclen;	if(p12->mac == NULL) {		PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_ABSENT);		return 0;	}	if (!PKCS12_gen_mac (p12, pass, passlen, mac, &maclen)) {		PKCS12err(PKCS12_F_VERIFY_MAC,PKCS12_R_MAC_GENERATION_ERROR);		return 0;	}	if ((maclen != (unsigned int)p12->mac->dinfo->digest->length)	|| memcmp (mac, p12->mac->dinfo->digest->data, maclen)) return 0;	return 1;}/* Set a mac */int PKCS12_set_mac (PKCS12 *p12, const char *pass, int passlen,	     unsigned char *salt, int saltlen, int iter, const EVP_MD *md_type){	unsigned char mac[EVP_MAX_MD_SIZE];	unsigned int maclen;	if (!md_type) md_type = EVP_sha1();	if (PKCS12_setup_mac (p12, iter, salt, saltlen, md_type) ==				 	PKCS12_ERROR) {		PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_SETUP_ERROR);		return 0;	}	if (!PKCS12_gen_mac (p12, pass, passlen, mac, &maclen)) {		PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_GENERATION_ERROR);		return 0;	}	if (!(M_ASN1_OCTET_STRING_set (p12->mac->dinfo->digest, mac, maclen))) {		PKCS12err(PKCS12_F_PKCS12_SET_MAC,PKCS12_R_MAC_STRING_SET_ERROR);						return 0;	}	return 1;}/* Set up a mac structure */int PKCS12_setup_mac (PKCS12 *p12, int iter, unsigned char *salt, int saltlen,	     const EVP_MD *md_type){	if (!(p12->mac = PKCS12_MAC_DATA_new())) return PKCS12_ERROR;	if (iter > 1) {		if(!(p12->mac->iter = M_ASN1_INTEGER_new())) {			PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);			return 0;		}		if (!ASN1_INTEGER_set(p12->mac->iter, iter)) {			PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);			return 0;		}	}	if (!saltlen) saltlen = PKCS12_SALT_LEN;	p12->mac->salt->length = saltlen;	if (!(p12->mac->salt->data = OPENSSL_malloc (saltlen))) {		PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);		return 0;	}	if (!salt) {		if (RAND_pseudo_bytes (p12->mac->salt->data, saltlen) < 0)			return 0;	}	else memcpy (p12->mac->salt->data, salt, saltlen);	p12->mac->dinfo->algor->algorithm = OBJ_nid2obj(EVP_MD_type(md_type));	if (!(p12->mac->dinfo->algor->parameter = ASN1_TYPE_new())) {		PKCS12err(PKCS12_F_PKCS12_SETUP_MAC, ERR_R_MALLOC_FAILURE);		return 0;	}	p12->mac->dinfo->algor->parameter->type = V_ASN1_NULL;		return 1;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品一区二区三区忘忧草 | 偷偷要91色婷婷| 国产在线精品一区在线观看麻豆| 成人免费看视频| 日韩欧美一区在线观看| **欧美大码日韩| 久久99国产精品久久99| 在线中文字幕一区二区| 国产精品网曝门| 麻豆91精品91久久久的内涵| 色94色欧美sute亚洲线路二| 国产午夜亚洲精品理论片色戒 | 精品一区二区综合| 欧美日韩一级片在线观看| 国产精品国产成人国产三级 | 日韩av在线发布| 色婷婷国产精品| 国产精品看片你懂得| 国内精品嫩模私拍在线| 91精品国产乱| 日韩av电影免费观看高清完整版 | 91麻豆产精品久久久久久| 久久久久久麻豆| 国内欧美视频一区二区 | 91官网在线免费观看| 国产精品午夜在线观看| 国产精品一区在线观看乱码| 精品国产在天天线2019| 久久精品国产一区二区| 欧美成人video| 国模无码大尺度一区二区三区| 欧美一级搡bbbb搡bbbb| 日韩电影一区二区三区| 56国语精品自产拍在线观看| 偷拍亚洲欧洲综合| 91精品黄色片免费大全| 免费精品视频最新在线| 日韩免费观看2025年上映的电影| 日本欧美在线观看| 欧美本精品男人aⅴ天堂| 激情综合一区二区三区| 久久亚洲影视婷婷| 国产成人午夜视频| 最近日韩中文字幕| 欧美日韩视频在线观看一区二区三区| 亚洲观看高清完整版在线观看 | 欧美午夜电影在线播放| 亚洲国产cao| 欧美不卡在线视频| 成人免费视频免费观看| 亚洲美女区一区| 日韩欧美精品在线视频| 成人激情黄色小说| 亚洲成人www| 欧美mv日韩mv亚洲| av一本久道久久综合久久鬼色| 有坂深雪av一区二区精品| 91精品国产欧美一区二区18| 国产精品性做久久久久久| 亚洲精品乱码久久久久久黑人| 欧美日韩在线播放一区| 激情另类小说区图片区视频区| 欧美国产综合一区二区| 在线视频欧美精品| 韩国一区二区三区| 亚洲日本成人在线观看| 欧美日韩一区二区三区高清| 国产精品18久久久久久久网站| 亚洲精品一二三| 欧美tk—视频vk| 欧美亚日韩国产aⅴ精品中极品| 麻豆精品新av中文字幕| 亚洲乱码国产乱码精品精的特点 | 国产精品综合网| 一区二区高清在线| 国产区在线观看成人精品| 欧美日韩一级片在线观看| 国产精品亚洲专一区二区三区 | 欧美一区二区三区四区五区| www.欧美日韩| 精品一区二区三区视频在线观看| 国产精品久久久久影院老司 | 国产一区二区三区日韩| 亚洲综合图片区| 中文字幕欧美国产| 欧美电影免费观看完整版| 色av成人天堂桃色av| 国产999精品久久久久久绿帽| 日韩av高清在线观看| 亚洲一二三专区| 亚洲图片另类小说| 国产精品欧美久久久久无广告 | 亚洲一区二区三区国产| 国产精品久久久久aaaa樱花| 精品国产亚洲在线| 欧美一区二区成人| 欧美日韩久久久| 色嗨嗨av一区二区三区| 波多野结衣亚洲| 国产成人av资源| 国产九色sp调教91| 韩国在线一区二区| 激情综合网av| 激情六月婷婷综合| 久久99九九99精品| 开心九九激情九九欧美日韩精美视频电影| 一片黄亚洲嫩模| 亚洲精品国久久99热| 悠悠色在线精品| 一区二区三区四区不卡视频| 亚洲天堂中文字幕| 一区二区中文视频| 日韩毛片精品高清免费| 亚洲欧美日韩国产一区二区三区| 亚洲欧洲av另类| 亚洲婷婷国产精品电影人久久| 亚洲日本va午夜在线电影| 亚洲欧美日韩国产另类专区| 亚洲精品老司机| 亚洲mv大片欧洲mv大片精品| 婷婷六月综合网| 免费一级片91| 国产一本一道久久香蕉| 国产成人在线影院| 成人av在线影院| 色老汉av一区二区三区| 欧美日韩国产电影| 精品国一区二区三区| 国产日韩在线不卡| 国产精品国产三级国产| 亚洲综合区在线| 奇米精品一区二区三区在线观看| 国产在线一区二区综合免费视频| 国产裸体歌舞团一区二区| 成人91在线观看| 欧美午夜宅男影院| 日韩欧美的一区二区| 国产精品久久久久久久裸模| 亚洲色图在线视频| 午夜久久久久久| 国产传媒一区在线| 91免费视频网| 欧美一区二区啪啪| 国产女同互慰高潮91漫画| 亚洲精品五月天| 麻豆成人综合网| 色综合一个色综合亚洲| 欧美一区二区三区人| 国产精品美女久久久久久久久久久| 一区二区三区 在线观看视频| 美女mm1313爽爽久久久蜜臀| 波多野结衣精品在线| 日韩三级精品电影久久久| 国产精品久线在线观看| 麻豆国产91在线播放| 一本大道久久a久久综合| 亚洲精品一区二区三区四区高清| 国产精品成人免费| 秋霞国产午夜精品免费视频| 99麻豆久久久国产精品免费 | 久久99热99| 在线免费观看成人短视频| 久久久亚洲欧洲日产国码αv| 亚洲国产日产av| 粉嫩aⅴ一区二区三区四区 | 九九国产精品视频| 在线观看亚洲一区| 国产精品无码永久免费888| 看电视剧不卡顿的网站| 欧美精品日韩综合在线| 亚洲精品国产品国语在线app| 91麻豆福利精品推荐| 91精品国产一区二区人妖| 亚洲精品自拍动漫在线| 豆国产96在线|亚洲| 精品久久一区二区| 青青草97国产精品免费观看| 91丨porny丨户外露出| 337p粉嫩大胆色噜噜噜噜亚洲| 一级日本不卡的影视| 亚洲精品国产第一综合99久久 | 亚洲一区二区五区| 成人深夜福利app| 欧美一区二区三区四区五区 | 国产电影精品久久禁18| 欧美日韩成人一区二区| 亚洲久草在线视频| 成人app在线观看| 久久久夜色精品亚洲| 午夜精品福利在线| 亚洲成在人线免费| bt欧美亚洲午夜电影天堂| 欧美精品一区二区三| 国产一区999| 日韩一区二区三区在线视频| 亚洲综合自拍偷拍| 欧美日韩久久不卡| 亚洲一区av在线| 一本色道a无线码一区v| 国产欧美精品区一区二区三区|