diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-05 10:12:53 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-05 10:12:53 +0000 |
commit | 5c105d9f3fd086aff195d3849dcf847d6b0bd927 (patch) | |
tree | 1229a11f725bfa58aa7c57a76898553bb5f6654a /tools/firmware-utils/src/sha1.h | |
download | openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.tar.gz openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.zip |
branch Attitude Adjustment
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'tools/firmware-utils/src/sha1.h')
-rw-r--r-- | tools/firmware-utils/src/sha1.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tools/firmware-utils/src/sha1.h b/tools/firmware-utils/src/sha1.h new file mode 100644 index 000000000..425267a30 --- /dev/null +++ b/tools/firmware-utils/src/sha1.h @@ -0,0 +1,57 @@ +#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 */ |