/home/dko/projects/mobilec/trunk/src/security/xyssl-0.7/include/xyssl/des.h

Go to the documentation of this file.
00001 
00004 #ifndef _DES_H
00005 #define _DES_H
00006 
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010 
00014 typedef struct
00015 {
00016     unsigned long esk[32];     
00017     unsigned long dsk[32];     
00018 }
00019 des_context;
00020 
00024 typedef struct
00025 {
00026     unsigned long esk[96];     
00027     unsigned long dsk[96];     
00028 }
00029 des3_context;
00030 
00037 void des_set_key( des_context *ctx, unsigned char key[8] );
00038 
00046 void des_encrypt( des_context *ctx,
00047                   unsigned char input[8],
00048                   unsigned char output[8] );
00049 
00057 void des_decrypt( des_context *ctx,
00058                   unsigned char input[8],
00059                   unsigned char output[8] );
00060 
00070 void des_cbc_encrypt( des_context *ctx,
00071                       unsigned char iv[8],
00072                       unsigned char *input,
00073                       unsigned char *output,
00074                       int len );
00075 
00085 void des_cbc_decrypt( des_context *ctx,
00086                       unsigned char iv[8],
00087                       unsigned char *input,
00088                       unsigned char *output,
00089                       int len );
00090 
00097 void des3_set_2keys( des3_context *ctx, unsigned char key[16] );
00098 
00105 void des3_set_3keys( des3_context *ctx, unsigned char key[24] );
00106 
00114 void des3_encrypt( des3_context *ctx,
00115                    unsigned char input[8],
00116                    unsigned char output[8] );
00117 
00125 void des3_decrypt( des3_context *ctx,
00126                    unsigned char input[8],
00127                    unsigned char output[8] );
00128 
00138 void des3_cbc_encrypt( des3_context *ctx,
00139                        unsigned char iv[8],
00140                        unsigned char *input,
00141                        unsigned char *output,
00142                        int len );
00143 
00153 void des3_cbc_decrypt( des3_context *ctx,
00154                        unsigned char iv[8],
00155                        unsigned char *input,
00156                        unsigned char *output,
00157                        int len );
00158 
00159 /*
00160  * \brief          Checkup routine
00161  *
00162  * \return         0 if successful, or 1 if the test failed
00163  */
00164 int des_self_test( int verbose );
00165 
00166 #ifdef __cplusplus
00167 }
00168 #endif
00169 
00170 #endif /* des.h */

Generated on Fri May 16 14:49:55 2008 for Mobile-C by  doxygen 1.5.4