1ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross/*	$NetBSD: sha1.h,v 1.13 2005/12/26 18:41:36 perry Exp $	*/
2ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
3ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross/*
4ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * SHA-1 in C
5ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * By Steve Reid <steve@edmweb.com>
6ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross * 100% Public Domain
7ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross */
8ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
9ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#ifndef _SYS_SHA1_H_
10ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define	_SYS_SHA1_H_
11ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
12ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#include <sys/types.h>
13ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#include <stdint.h>
14ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
154605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll#ifdef USE_MINGW
164605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Molltypedef unsigned char u_char;
174605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Molltypedef unsigned int uint32_t;
184605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Molltypedef unsigned int u_int32_t;
194605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Molltypedef unsigned int u_int;
204605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll
214605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll#define __BEGIN_DECLS
224605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll#define __END_DECLS
234605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll#else
244605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll#include <sys/cdefs.h>
254605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll#endif
264605b3fb8a00fa37f617a8d0fe3a095d0503a845Raphael Moll
27ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define SHA1_DIGEST_LENGTH		20
28ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define SHA1_DIGEST_STRING_LENGTH	41
29ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
30ec0a2e83dc66d67addeb90e83144187691852a3eColin Crosstypedef struct {
31ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross	uint32_t state[5];
32ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross	uint32_t count[2];
33ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross	u_char buffer[64];
34ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross} SHA1_CTX;
35ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
36ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross__BEGIN_DECLS
37ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossvoid	SHA1Transform(uint32_t[5], const u_char[64]);
38ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossvoid	SHA1Init(SHA1_CTX *);
39ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossvoid	SHA1Update(SHA1_CTX *, const u_char *, u_int);
40ec0a2e83dc66d67addeb90e83144187691852a3eColin Crossvoid	SHA1Final(u_char[SHA1_DIGEST_LENGTH], SHA1_CTX *);
41ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross__END_DECLS
42ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross
43ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#endif /* _SYS_SHA1_H_ */
44