openwrtv3/tools/firmware-utils/src/sha1.h

57 lines
954 B
C

#ifndef _SHA1_H
#define _SHA1_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _STD_TYPES
#define _STD_TYPES
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long int
#endif
typedef struct
{
ulong total[2];
ulong state[5];
uchar buffer[64];
}
sha1_context;
/*
* Core SHA-1 functions
*/
void sha1_starts( sha1_context *ctx );
void sha1_update( sha1_context *ctx, uchar *input, uint length );
void sha1_finish( sha1_context *ctx, uchar digest[20] );
/*
* Output SHA-1(file contents), returns 0 if successful.
*/
int sha1_file( char *filename, uchar digest[20] );
/*
* Output SHA-1(buf)
*/
void sha1_csum( uchar *buf, uint buflen, uchar digest[20] );
/*
* Output HMAC-SHA-1(key,buf)
*/
void sha1_hmac( uchar *key, uint keylen, uchar *buf, uint buflen,
uchar digest[20] );
/*
* Checkup routine
*/
int sha1_self_test( void );
#ifdef __cplusplus
}
#endif
#endif /* sha1.h */