⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des_ecb.h

📁 DES密码体制的安全性应该不依赖于算法的保密
💻 H
字号:
/* lib/des/des.h */
/* Copyright (C) 1995-1996 Eric Young (eay@mincom.oz.au)
 * All rights reserved.
 *
 */

#ifndef HEADER_DES_H
#define HEADER_DES_H

#ifdef  __cplusplus
extern "C" {
#endif

/* must be 32bit quantity */
#define DES_LONG unsigned long

typedef unsigned char des_cblock[8];
typedef struct des_ks_struct
{
	union tagKS
	{
		des_cblock _;
		/* make sure things are correct size on machines with
		 * 8 byte longs */
		DES_LONG pad[2];
	} ks;
#undef _
#define _	ks._
} des_key_schedule[16];

#define DES_KEY_SZ 	(sizeof(des_cblock))
#define DES_SCHEDULE_SZ (sizeof(des_key_schedule))

#define DES_ENCRYPT	1
#define DES_DECRYPT	0

#define DES_CBC_MODE	0
#define DES_PCBC_MODE	1

extern int des_check_key;	/* defaults to false */

char *des_options(void);
void des_ecb_encrypt(des_cblock *, des_cblock *, des_key_schedule, int);
void des_encrypt(DES_LONG *, des_key_schedule, int);

void des_encrypt2(DES_LONG *, des_key_schedule, int);
void des_encrypt3(DES_LONG *data, des_key_schedule ks1,
	des_key_schedule ks2, des_key_schedule ks3);
void des_decrypt3(DES_LONG *data, des_key_schedule ks1,
	des_key_schedule ks2, des_key_schedule ks3);
void des_cbc_encrypt3(const unsigned char *input, unsigned char *output, 
			  long length, des_key_schedule ks1, des_key_schedule ks2,
			  des_key_schedule ks3, des_cblock *ivec, int enc);
void des_ecb_encrypt3(des_cblock *input, des_cblock *output,
	     des_key_schedule ks1, des_key_schedule ks2, des_key_schedule ks3,
	     int enc);

void des_set_odd_parity(des_cblock *);
int des_is_weak_key(des_cblock *);
int des_set_key(des_cblock *, des_key_schedule);
int des_key_sched(des_cblock *, des_key_schedule);

#ifdef  __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -