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

Go to the documentation of this file.
00001 /* SVN FILE INFO
00002  * $Revision: 174 $ : Last Committed Revision
00003  * $Date: 2008-06-24 10:50:29 -0700 (Tue, 24 Jun 2008) $ : Last Committed Date */
00007 #ifndef _DES_H
00008 #define _DES_H
00009 
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013 
00017 typedef struct
00018 {
00019     unsigned long esk[32];     
00020     unsigned long dsk[32];     
00021 }
00022 des_context;
00023 
00027 typedef struct
00028 {
00029     unsigned long esk[96];     
00030     unsigned long dsk[96];     
00031 }
00032 des3_context;
00033 
00040 void des_set_key( des_context *ctx, unsigned char key[8] );
00041 
00049 void des_encrypt( des_context *ctx,
00050                   unsigned char input[8],
00051                   unsigned char output[8] );
00052 
00060 void des_decrypt( des_context *ctx,
00061                   unsigned char input[8],
00062                   unsigned char output[8] );
00063 
00073 void des_cbc_encrypt( des_context *ctx,
00074                       unsigned char iv[8],
00075                       unsigned char *input,
00076                       unsigned char *output,
00077                       int len );
00078 
00088 void des_cbc_decrypt( des_context *ctx,
00089                       unsigned char iv[8],
00090                       unsigned char *input,
00091                       unsigned char *output,
00092                       int len );
00093 
00100 void des3_set_2keys( des3_context *ctx, unsigned char key[16] );
00101 
00108 void des3_set_3keys( des3_context *ctx, unsigned char key[24] );
00109 
00117 void des3_encrypt( des3_context *ctx,
00118                    unsigned char input[8],
00119                    unsigned char output[8] );
00120 
00128 void des3_decrypt( des3_context *ctx,
00129                    unsigned char input[8],
00130                    unsigned char output[8] );
00131 
00141 void des3_cbc_encrypt( des3_context *ctx,
00142                        unsigned char iv[8],
00143                        unsigned char *input,
00144                        unsigned char *output,
00145                        int len );
00146 
00156 void des3_cbc_decrypt( des3_context *ctx,
00157                        unsigned char iv[8],
00158                        unsigned char *input,
00159                        unsigned char *output,
00160                        int len );
00161 
00162 /*
00163  * \brief          Checkup routine
00164  *
00165  * \return         0 if successful, or 1 if the test failed
00166  */
00167 int des_self_test( int verbose );
00168 
00169 #ifdef __cplusplus
00170 }
00171 #endif
00172 
00173 #endif /* des.h */

Generated on Tue Jul 1 15:29:58 2008 for Mobile-C by  doxygen 1.5.4