00001 
00004 #ifndef XYSSL_SHA1_H
00005 #define XYSSL_SHA1_H
00006 
00010 typedef struct
00011 {
00012     unsigned long total[2];     
00013     unsigned long state[5];     
00014     unsigned char buffer[64];   
00016     unsigned char ipad[64];     
00017     unsigned char opad[64];     
00018 }
00019 sha1_context;
00020 
00021 #ifdef __cplusplus
00022 extern "C" {
00023 #endif
00024 
00030 void sha1_starts( sha1_context *ctx );
00031 
00039 void sha1_update( sha1_context *ctx, unsigned char *input, int ilen );
00040 
00047 void sha1_finish( sha1_context *ctx, unsigned char output[20] );
00048 
00056 void sha1( unsigned char *input, int ilen, unsigned char output[20] );
00057 
00067 int sha1_file( char *path, unsigned char output[20] );
00068 
00076 void sha1_hmac_starts( sha1_context *ctx, unsigned char *key, int keylen );
00077 
00085 void sha1_hmac_update( sha1_context *ctx, unsigned char *input, int ilen );
00086 
00093 void sha1_hmac_finish( sha1_context *ctx, unsigned char output[20] );
00094 
00104 void sha1_hmac( unsigned char *key, int keylen,
00105                 unsigned char *input, int ilen,
00106                 unsigned char output[20] );
00107 
00113 int sha1_self_test( int verbose );
00114 
00115 #ifdef __cplusplus
00116 }
00117 #endif
00118 
00119 #endif