00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00043 #ifndef __DES_H__
00044 #define __DES_H__
00045 
00046 #include "ipsec/types.h"
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 #define DES_LONG __u32                          
00055 
00056 typedef unsigned char DES_cblock[8];
00057 typedef const unsigned char const_DES_cblock[8];
00058 
00059 typedef struct DES_ks
00060 {
00061     union
00062         {
00063                 DES_cblock cblock;
00064                 DES_LONG deslong[2]; 
00065         } ks[16];
00066 } DES_key_schedule;
00067 
00068 #define DES_ENCRYPT     1                                                       
00069 #define DES_DECRYPT     0                                                       
00071 int DES_set_key_checked(const_DES_cblock *key,DES_key_schedule *schedule);
00072 void DES_set_key_unchecked(const_DES_cblock *key,DES_key_schedule *schedule);
00073 void cipher_3des_cbc(unsigned char*, int, unsigned char*, unsigned char*, int, unsigned char*);
00074 
00075 #endif
00076 
00077