*
* d3d es . c的標題和定義
*雕刻圖像,1992。
*
*版權所有(c) 1988,1989,1990,1991,1992,作者Richard Outerbridge
*(精靈:外;順式: )
*/
#define D2_DES /*包含雙長度支持*/
#define D3_DES /*包含三倍長度支持*/
#ifdef D3_DES
#伊夫·D2德斯
# define D2 _ DES/* D3 _ DES需要D2 _ DES */
#endif
#endif
#定義EN0 0 /* MODE == encrypt */
# define de 1 1/* MODE = = decrypt */
/*在68000多臺機器上是壹個有用的別名,但在這裏沒有使用。*/
typedef聯合{
無符號長塊[2];
無符號短詞[4];
無符號字符字節[8];
} M68K
extern void deskey(無符號char *,short);
/*六角鍵[8]模式
*根據十六進制設置內部密鑰寄存器
*密鑰包含在8個字節的hexkey中,根據DES、
*根據模式進行加密或解密。
*/
extern void usekey(無符號long *);
/* cookedkey[32]
*用cookedkey中的數據加載內部密鑰寄存器。
*/
extern void cpkey(無符號long *);
/* cookedkey[32]
*將內部密鑰寄存器的內容復制到存儲器中
*位於。cookedkey[0]。
*/
extern void des(unsigned char *,unsigned char *);
/*從[8]到[8]
*加密/解密(根據當前加載到
*內部密鑰寄存器)地址“from”處的壹個八字節塊
*放入地址為“to”的塊中。它們可以是相同的。
*/
#ifdef D2_DES
#define desDkey(a,b) des2key((a),(b))
extern void des2key(無符號char *,short);
/* hexkey[16]模式
*根據十六進制設置內部密鑰寄存器
*密鑰包含在hexkey的16字節中,根據DES、
*根據模式進行雙重加密或解密。
*註意:這將破壞所有三個關鍵寄存器!
*/
extern void Ddes(unsigned char *,unsigned char *);
/*從[8]到[8]
*加密/解密(根據當前加載到
*內部密鑰寄存器)地址“from”處的壹個八字節塊
*放入地址為“to”的塊中。它們可以是相同的。
*/
extern void D2des(unsigned char *,unsigned char *);
/*從[16]到[16]
*加密/解密(根據當前加載到
*內部密鑰寄存器)地址“from”處的壹個16字節的塊
*放入地址為“to”的塊中。它們可以是相同的。
*/
extern void makekey(char *,unsigned char *);
/* *密碼,單長度密鑰[8]
*使用壹個雙倍長度的缺省鍵,這個例程散列壹個空終止的
*字符串轉換成壹個8字節隨機外觀的密鑰,適合與
* deskey()例程。
*/
#定義makeDkey(a,b) make2key((a),(b))
extern void make2key(char *,無符號char *);
/* *密碼,雙長度密鑰[16]
*使用壹個雙倍長度的缺省鍵,這個例程散列壹個空終止的
*字符串轉換成16字節隨機外觀的密鑰,適合與
* des2key()例程。
*/
#ifndef D3_DES /*僅限D2 _ DES */
#定義useDkey(a) use2key((a))
#定義cpDkey(a) cp2key((a))
extern void use2key(無符號long *);
/* cookedkey[64]
*用cookedkey中的數據加載內部密鑰寄存器。
*註意:這將破壞所有三個關鍵寄存器!
*/
extern void cp2key(無符號long *);
/* cookedkey[64]
*將內部密鑰寄存器的內容復制到存儲器中
*位於。cookedkey[0]。
*/
#else /* D3_DES too */
#定義useDkey(a) use3key((a))
#定義cpDkey(a) cp3key((a))
extern void des3key(無符號char *,short);
/*六角鍵[24]模式
*根據十六進制設置內部密鑰寄存器
*密鑰包含在24字節的hexkey中,根據DES、
*根據模式進行雙重加密或解密。
*/
extern void use3key(無符號長整型*);
/* cookedkey[96]
*用cookedkey中的數據加載3個內部密鑰寄存器。
*/
extern void cp3key(無符號long *);
/* cookedkey[96]
*將3個內部密鑰寄存器的內容復制到存儲器中
*位於。cookedkey[0]。
*/
extern void make3key(char *,unsigned char *);
/* *密碼,三倍長度密鑰[24]
*使用三倍長度的默認密鑰,該例程散列壹個空終止的
*串成壹個24字節隨機外觀的密鑰,適合與
des3key()例程。
*/
#endif /* D3_DES */
# endif/* D2 _德斯*/