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