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 /* sha1.h */