00001
00023 #ifndef POLARSSL_SHA1_H
00024 #define POLARSSL_SHA1_H
00025
00029 typedef struct
00030 {
00031 unsigned long total[2];
00032 unsigned long state[5];
00033 unsigned char buffer[64];
00035 unsigned char ipad[64];
00036 unsigned char opad[64];
00037 }
00038 sha1_context;
00039
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043
00049 void sha1_starts( sha1_context *ctx );
00050
00058 void sha1_update( sha1_context *ctx, unsigned char *input, int ilen );
00059
00066 void sha1_finish( sha1_context *ctx, unsigned char output[20] );
00067
00075 void sha1( unsigned char *input, int ilen, unsigned char output[20] );
00076
00086 int sha1_file( char *path, unsigned char output[20] );
00087
00095 void sha1_hmac_starts( sha1_context *ctx, unsigned char *key, int keylen );
00096
00104 void sha1_hmac_update( sha1_context *ctx, unsigned char *input, int ilen );
00105
00112 void sha1_hmac_finish( sha1_context *ctx, unsigned char output[20] );
00113
00123 void sha1_hmac( unsigned char *key, int keylen,
00124 unsigned char *input, int ilen,
00125 unsigned char output[20] );
00126
00132 int sha1_self_test( int verbose );
00133
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137
00138 #endif