1/*	$NetBSD: sha1.h,v 1.2 1998/05/29 22:55:44 thorpej Exp $	*/
2/*	$RoughId: sha1.h,v 1.3 2002/02/24 08:14:32 knu Exp $	*/
3/*	$Id: sha1.h 27437 2010-04-22 08:04:13Z nobu $	*/
4
5/*
6 * SHA-1 in C
7 * By Steve Reid <steve@edmweb.com>
8 * 100% Public Domain
9 */
10
11#ifndef _SYS_SHA1_H_
12#define	_SYS_SHA1_H_
13
14#include "defs.h"
15
16typedef struct {
17	uint32_t state[5];
18	uint32_t count[2];
19	uint8_t buffer[64];
20} SHA1_CTX;
21
22#ifdef RUBY
23/* avoid name clash */
24#define SHA1_Transform	rb_Digest_SHA1_Transform
25#define SHA1_Init	rb_Digest_SHA1_Init
26#define SHA1_Update	rb_Digest_SHA1_Update
27#define SHA1_Finish	rb_Digest_SHA1_Finish
28#endif
29
30void	SHA1_Transform _((uint32_t state[5], const uint8_t buffer[64]));
31void	SHA1_Init _((SHA1_CTX *context));
32void	SHA1_Update _((SHA1_CTX *context, const uint8_t *data, size_t len));
33void	SHA1_Finish _((SHA1_CTX *context, uint8_t digest[20]));
34
35#define SHA1_BLOCK_LENGTH		64
36#define SHA1_DIGEST_LENGTH		20
37#define SHA1_DIGEST_STRING_LENGTH	(SHA1_DIGEST_LENGTH * 2 + 1)
38
39#endif /* _SYS_SHA1_H_ */
40