1 /* $NetBSD: sha1.h,v 1.2 2016/06/14 20:47:08 agc Exp $ */ 2 3 /* 4 * SHA-1 in C 5 * By Steve Reid <steve@edmweb.com> 6 * 100% Public Domain 7 */ 8 9 #ifndef _SYS_SHA1_H_ 10 #define _SYS_SHA1_H_ 11 12 #include <sys/types.h> 13 14 #include <inttypes.h> 15 16 #define SHA1_DIGEST_LENGTH 20 17 #define SHA1_DIGEST_STRING_LENGTH 41 18 19 #ifndef __BEGIN_DECLS 20 # if defined(__cplusplus) 21 # define __BEGIN_DECLS extern "C" { 22 # define __END_DECLS } 23 # else 24 # define __BEGIN_DECLS 25 # define __END_DECLS 26 # endif 27 #endif 28 29 typedef struct { 30 uint32_t state[5]; 31 uint32_t count[2]; 32 uint8_t buffer[64]; 33 } NETPGPV_SHA1_CTX; 34 35 __BEGIN_DECLS 36 void netpgpv_SHA1Transform(uint32_t[5], const uint8_t[64]); 37 void netpgpv_SHA1Init(NETPGPV_SHA1_CTX *); 38 void netpgpv_SHA1Update(NETPGPV_SHA1_CTX *, const uint8_t *, unsigned int); 39 void netpgpv_SHA1Final(uint8_t[SHA1_DIGEST_LENGTH], NETPGPV_SHA1_CTX *); 40 #ifndef _KERNEL 41 char *netpgpv_SHA1End(NETPGPV_SHA1_CTX *, char *); 42 char *netpgpv_SHA1FileChunk(const char *, char *, off_t, off_t); 43 char *netpgpv_SHA1File(const char *, char *); 44 char *netpgpv_SHA1Data(const uint8_t *, size_t, char *); 45 #endif /* _KERNEL */ 46 __END_DECLS 47 48 #endif /* _SYS_SHA1_H_ */ 49