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

Go to the documentation of this file.
00001 
00004 #ifndef _SHA4_H
00005 #define _SHA4_H
00006 
00007 #ifdef __cplusplus
00008 extern "C" {
00009 #endif
00010 
00011 #if defined(_MSC_VER) || defined(__WATCOMC__)
00012 #define UL64(x) x##ui64
00013 #define uint64 unsigned __int64
00014 #else
00015 #define UL64(x) x##ULL
00016 #define uint64 unsigned long long
00017 #endif
00018 
00022 typedef struct
00023 {
00024     uint64 total[2];            
00025     uint64 state[8];            
00026     unsigned char buffer[128];  
00027     unsigned char ipad[64];     
00028     unsigned char opad[64];     
00029     int is384;                  
00030 }
00031 sha4_context;
00032 
00039 void sha4_starts( sha4_context *ctx, int is384 );
00040 
00048 void sha4_update( sha4_context *ctx, unsigned char *input, int ilen );
00049 
00056 void sha4_finish( sha4_context *ctx, unsigned char *output );
00057 
00066 void sha4( unsigned char *input,  int ilen,
00067            unsigned char *output, int is384 );
00068 
00079 int sha4_file( char *path, unsigned char *output, int is384 );
00080 
00089 void sha4_hmac_starts( sha4_context *ctx,  int is384,
00090                        unsigned char *key, int keylen );
00091 
00099 void sha4_hmac_update( sha4_context *ctx,
00100                        unsigned char *input, int ilen );
00101 
00108 void sha4_hmac_finish( sha4_context *ctx, unsigned char *output );
00109 
00120 void sha4_hmac( unsigned char *key,  int keylen,
00121                 unsigned char *input,  int ilen,
00122                 unsigned char *output, int is384 );
00123 
00129 int sha4_self_test( int verbose );
00130 
00131 #ifdef __cplusplus
00132 }
00133 #endif
00134 
00135 #endif /* sha4.h */

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