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

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

?? e_des3.c

?? OpenSSL 0.9.8k 最新版OpenSSL
?? C
字號:
/* crypto/evp/e_des3.c *//* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written * by Eric Young (eay@cryptsoft.com). * The implementation was written so as to conform with Netscapes SSL. *  * This library is free for commercial and non-commercial use as long as * the following conditions are aheared to.  The following conditions * apply to all code found in this distribution, be it the RC4, RSA, * lhash, DES, etc., code; not just the SSL code.  The SSL documentation * included with this distribution is covered by the same copyright terms * except that the holder is Tim Hudson (tjh@cryptsoft.com). *  * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. * If this package is used in a product, Eric Young should be given attribution * as the author of the parts of the library used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. *  * 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 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 acknowledgement: *    "This product includes cryptographic software written by *     Eric Young (eay@cryptsoft.com)" *    The word 'cryptographic' can be left out if the rouines from the library *    being used are not cryptographic related :-). * 4. If you include any Windows specific code (or a derivative thereof) from  *    the apps directory (application code) you must include an acknowledgement: *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" *  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS 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 AUTHOR OR 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. *  * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed.  i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */#include <stdio.h>#include "cryptlib.h"#ifndef OPENSSL_NO_DES#include <openssl/evp.h>#include <openssl/objects.h>#include "evp_locl.h"#include <openssl/des.h>#include <openssl/rand.h>static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,			    const unsigned char *iv,int enc);static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,			     const unsigned char *iv,int enc);static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr);typedef struct    {    DES_key_schedule ks1;/* key schedule */    DES_key_schedule ks2;/* key schedule (for ede) */    DES_key_schedule ks3;/* key schedule (for ede3) */    } DES_EDE_KEY;#define data(ctx) ((DES_EDE_KEY *)(ctx)->cipher_data)/* Because of various casts and different args can't use IMPLEMENT_BLOCK_CIPHER */static int des_ede_ecb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,			      const unsigned char *in, unsigned int inl){	BLOCK_CIPHER_ecb_loop()		DES_ecb3_encrypt((const_DES_cblock *)(in + i),				 (DES_cblock *)(out + i),				 &data(ctx)->ks1, &data(ctx)->ks2,				 &data(ctx)->ks3,				 ctx->encrypt);	return 1;}static int des_ede_ofb_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,			      const unsigned char *in, unsigned int inl){	DES_ede3_ofb64_encrypt(in, out, (long)inl,			       &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3,			       (DES_cblock *)ctx->iv, &ctx->num);	return 1;}static int des_ede_cbc_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,			      const unsigned char *in, unsigned int inl){#ifdef KSSL_DEBUG	{        int i;	printf("des_ede_cbc_cipher(ctx=%lx, buflen=%d)\n", (unsigned long)ctx, ctx->buf_len);	printf("\t iv= ");        for(i=0;i<8;i++)                printf("%02X",ctx->iv[i]);	printf("\n");	}#endif    /* KSSL_DEBUG */	DES_ede3_cbc_encrypt(in, out, (long)inl,			     &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3,			     (DES_cblock *)ctx->iv, ctx->encrypt);	return 1;}static int des_ede_cfb64_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,			      const unsigned char *in, unsigned int inl){	DES_ede3_cfb64_encrypt(in, out, (long)inl, 			       &data(ctx)->ks1, &data(ctx)->ks2, &data(ctx)->ks3,			       (DES_cblock *)ctx->iv, &ctx->num, ctx->encrypt);	return 1;}/* Although we have a CFB-r implementation for 3-DES, it doesn't pack the right   way, so wrap it here */static int des_ede3_cfb1_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,				const unsigned char *in, unsigned int inl)    {    unsigned int n;    unsigned char c[1],d[1];    for(n=0 ; n < inl ; ++n)	{	c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;	DES_ede3_cfb_encrypt(c,d,1,1,			     &data(ctx)->ks1,&data(ctx)->ks2,&data(ctx)->ks3,			     (DES_cblock *)ctx->iv,ctx->encrypt);	out[n/8]=(out[n/8]&~(0x80 >> (n%8)))|((d[0]&0x80) >> (n%8));	}    return 1;    }static int des_ede3_cfb8_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,				const unsigned char *in, unsigned int inl)    {    DES_ede3_cfb_encrypt(in,out,8,inl,			 &data(ctx)->ks1,&data(ctx)->ks2,&data(ctx)->ks3,			 (DES_cblock *)ctx->iv,ctx->encrypt);    return 1;    }BLOCK_CIPHER_defs(des_ede, DES_EDE_KEY, NID_des_ede, 8, 16, 8, 64,		EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1,			des_ede_init_key,			NULL, NULL, NULL,			des3_ctrl)#define des_ede3_cfb64_cipher des_ede_cfb64_cipher#define des_ede3_ofb_cipher des_ede_ofb_cipher#define des_ede3_cbc_cipher des_ede_cbc_cipher#define des_ede3_ecb_cipher des_ede_ecb_cipherBLOCK_CIPHER_defs(des_ede3, DES_EDE_KEY, NID_des_ede3, 8, 24, 8, 64,		EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1,			des_ede3_init_key,			NULL, NULL, NULL,			des3_ctrl)BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,1,		EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1,		     des_ede3_init_key,		     NULL, NULL, NULL,		     des3_ctrl)BLOCK_CIPHER_def_cfb(des_ede3,DES_EDE_KEY,NID_des_ede3,24,8,8,		EVP_CIPH_RAND_KEY|EVP_CIPH_FLAG_FIPS|EVP_CIPH_FLAG_DEFAULT_ASN1,		     des_ede3_init_key,		     NULL, NULL, NULL,		     des3_ctrl)static int des_ede_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,			    const unsigned char *iv, int enc)	{	DES_cblock *deskey = (DES_cblock *)key;#ifdef EVP_CHECK_DES_KEY	if (DES_set_key_checked(&deskey[0],&data(ctx)->ks1)		!! DES_set_key_checked(&deskey[1],&data(ctx)->ks2))		return 0;#else	DES_set_key_unchecked(&deskey[0],&data(ctx)->ks1);	DES_set_key_unchecked(&deskey[1],&data(ctx)->ks2);#endif	memcpy(&data(ctx)->ks3,&data(ctx)->ks1,	       sizeof(data(ctx)->ks1));	return 1;	}static int des_ede3_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,			     const unsigned char *iv, int enc)	{	DES_cblock *deskey = (DES_cblock *)key;#ifdef KSSL_DEBUG	{        int i;        printf("des_ede3_init_key(ctx=%lx)\n", (unsigned long)ctx);	printf("\tKEY= ");        for(i=0;i<24;i++) printf("%02X",key[i]); printf("\n");	printf("\t IV= ");        for(i=0;i<8;i++) printf("%02X",iv[i]); printf("\n");	}#endif	/* KSSL_DEBUG */#ifdef EVP_CHECK_DES_KEY	if (DES_set_key_checked(&deskey[0],&data(ctx)->ks1)		|| DES_set_key_checked(&deskey[1],&data(ctx)->ks2)		|| DES_set_key_checked(&deskey[2],&data(ctx)->ks3))		return 0;#else	DES_set_key_unchecked(&deskey[0],&data(ctx)->ks1);	DES_set_key_unchecked(&deskey[1],&data(ctx)->ks2);	DES_set_key_unchecked(&deskey[2],&data(ctx)->ks3);#endif	return 1;	}static int des3_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)	{	DES_cblock *deskey = ptr;	switch(type)		{	case EVP_CTRL_RAND_KEY:		if (RAND_bytes(ptr, c->key_len) <= 0)			return 0;		DES_set_odd_parity(deskey);		if (c->key_len >= 16)			DES_set_odd_parity(deskey + 1);		if (c->key_len >= 24)			DES_set_odd_parity(deskey + 2);		return 1;	default:		return -1;		}	}const EVP_CIPHER *EVP_des_ede(void){	return &des_ede_ecb;}const EVP_CIPHER *EVP_des_ede3(void){	return &des_ede3_ecb;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线一区二区三区| 91香蕉视频污| 亚洲一区精品在线| 亚洲欧美成人一区二区三区| 久久综合资源网| 欧美mv日韩mv国产网站| 欧美α欧美αv大片| 日韩精品一区二区三区中文不卡 | 欧美精品vⅰdeose4hd| 91久久香蕉国产日韩欧美9色| 波多野结衣在线一区| 懂色av一区二区三区免费观看 | 成人爱爱电影网址| 国产999精品久久| 成人av集中营| 色美美综合视频| 欧美色老头old∨ideo| 日韩一区二区在线观看视频播放| 欧美一区二区福利在线| 欧美大片一区二区| 国产免费成人在线视频| 亚洲男人天堂av网| 性欧美疯狂xxxxbbbb| 麻豆精品在线观看| bt7086福利一区国产| 欧美日韩一区二区电影| 日韩一区二区在线观看视频| 日本一区二区三级电影在线观看| 国产精品毛片大码女人| 午夜av电影一区| 国产成人在线视频免费播放| 91亚洲国产成人精品一区二区三| 欧美日韩免费一区二区三区 | 欧美日韩专区在线| 精品美女在线播放| 日韩一区有码在线| 日本伊人色综合网| 国产成人午夜精品影院观看视频 | 一区二区三区中文在线| 婷婷国产v国产偷v亚洲高清| 国产一区二区精品久久| 欧美视频一区二| 欧美精品一区二区三区视频| 亚洲精选免费视频| 精品一区二区免费视频| 91久久一区二区| 国产日韩欧美在线一区| 图片区小说区国产精品视频| 成人永久看片免费视频天堂| 欧美日韩精品一区视频| 国产精品女上位| 麻豆91在线观看| 欧美网站大全在线观看| 日本一区二区免费在线观看视频| 日韩成人午夜精品| 色婷婷av一区| 国产精品私房写真福利视频| 人人狠狠综合久久亚洲| 欧美专区亚洲专区| 中文字幕在线不卡一区二区三区| 另类调教123区| 欧美美女一区二区三区| 亚洲欧美一区二区三区久本道91 | 久久电影网电视剧免费观看| 欧美日韩久久不卡| 一区二区三区在线观看网站| 成人亚洲一区二区一| 欧美成人猛片aaaaaaa| 日本欧美大码aⅴ在线播放| 色哟哟欧美精品| 亚洲人成网站精品片在线观看| 国产成人亚洲精品狼色在线| 精品国产精品一区二区夜夜嗨| 五月激情综合婷婷| 欧美精品乱码久久久久久| 亚洲综合免费观看高清在线观看| 97超碰欧美中文字幕| 中文字幕一区二区三区视频| av在线一区二区| 国产精品久久久久影院老司| 成人国产精品免费观看| 亚洲国产精品成人久久综合一区 | 色婷婷国产精品综合在线观看| 专区另类欧美日韩| 91色九色蝌蚪| 一级中文字幕一区二区| 在线观看日产精品| 亚洲一区二区在线观看视频| 欧美精品在线观看一区二区| 天天综合天天综合色| 欧美一区二区久久| 韩国精品在线观看| 国产女主播在线一区二区| 99精品在线免费| 亚洲gay无套男同| 91精品久久久久久久99蜜桃 | 欧美综合一区二区| 午夜国产不卡在线观看视频| 欧美成人一区二区三区片免费| 狠狠网亚洲精品| 国产精品对白交换视频| 欧美日韩一区二区在线观看视频| 日韩av一区二| 国产日产亚洲精品系列| 色视频一区二区| 日本三级韩国三级欧美三级| 国产校园另类小说区| 91视频www| 激情久久久久久久久久久久久久久久| 欧美高清在线视频| 欧美日韩在线播放三区| 韩国理伦片一区二区三区在线播放 | 色欧美片视频在线观看在线视频| 亚洲国产日产av| 欧美xxxx在线观看| 一本色道a无线码一区v| 久久69国产一区二区蜜臀| 日韩毛片视频在线看| 欧美一区二区美女| 91麻豆自制传媒国产之光| 麻豆精品久久精品色综合| 亚洲猫色日本管| 久久综合色播五月| 欧美三级在线看| 成人国产一区二区三区精品| 日本午夜精品视频在线观看| 亚洲欧美色一区| 精品欧美一区二区久久| 欧美图区在线视频| 91麻豆.com| 国产suv精品一区二区883| 蜜桃视频在线观看一区| 亚洲成人av一区二区三区| 亚洲视频免费观看| 国产女人18毛片水真多成人如厕| 7777精品伊人久久久大香线蕉 | 日本一区二区三区免费乱视频| 91精品国产综合久久婷婷香蕉| 91年精品国产| 不卡的电视剧免费网站有什么| 一本高清dvd不卡在线观看| 国产精品第五页| 欧美激情资源网| 8x福利精品第一导航| 不卡视频在线观看| 另类的小说在线视频另类成人小视频在线 | 一区二区在线看| 中文字幕第一页久久| 91精品国产一区二区三区| 99精品热视频| 国产精品自拍av| 亚洲国产成人高清精品| 亚洲欧洲www| 国产视频视频一区| 日韩亚洲欧美综合| 欧美大片在线观看一区| 欧美日韩国产高清一区二区三区| 91免费版在线| 972aa.com艺术欧美| 91亚洲精品久久久蜜桃| 国产成人久久精品77777最新版本| 美女视频黄久久| 日韩电影在线看| 国产一区二区三区综合| 男人的天堂久久精品| 天堂蜜桃一区二区三区| 亚洲国产视频在线| 青青草精品视频| 日本不卡的三区四区五区| 亚洲va欧美va人人爽午夜| 亚洲欧美一区二区久久 | 欧美色偷偷大香| 在线免费不卡电影| 色老汉一区二区三区| 色素色在线综合| 9191成人精品久久| 欧美一级日韩免费不卡| 国产欧美日韩激情| 欧美激情在线观看视频免费| 国产日韩欧美综合在线| 亚洲丝袜自拍清纯另类| 免费国产亚洲视频| 精品一区二区三区免费观看 | 久久九九影视网| 久久久午夜精品| 亚洲国产精品99久久久久久久久| 国产三级精品三级| 日韩综合在线视频| 国产精品资源站在线| 成人av在线资源网站| 欧洲色大大久久| 久久久久久久av麻豆果冻| 日韩一区在线免费观看| 一区二区三区在线免费观看| 一区二区理论电影在线观看| 免费观看一级特黄欧美大片| 国产乱理伦片在线观看夜一区| 国产99久久久国产精品潘金| 99久久国产综合色|国产精品| 日韩欧美一二三|