1e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes/*	$NetBSD: sha1.h,v 1.13 2005/12/26 18:41:36 perry Exp $	*/
2e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
3e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes/*
4e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes * SHA-1 in C
5e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes * By Steve Reid <steve@edmweb.com>
6e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes * 100% Public Domain
7e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes */
8e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
9e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#ifndef _SYS_SHA1_H_
10e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#define	_SYS_SHA1_H_
11e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
12e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#include <sys/cdefs.h>
13e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#include <sys/types.h>
14e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
15e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#define SHA1_DIGEST_LENGTH		20
16e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#define SHA1_DIGEST_STRING_LENGTH	41
17e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
18e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughestypedef struct {
19e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes	uint32_t state[5];
20e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes	uint32_t count[2];
21e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes	u_char buffer[64];
22e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes} SHA1_CTX;
23e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
24e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes__BEGIN_DECLS
25e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughesvoid	SHA1Transform(uint32_t[5], const u_char[64]);
26e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughesvoid	SHA1Init(SHA1_CTX *);
27e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughesvoid	SHA1Update(SHA1_CTX *, const u_char *, u_int);
28e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughesvoid	SHA1Final(u_char[SHA1_DIGEST_LENGTH], SHA1_CTX *);
29e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes__END_DECLS
30e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes
31e8bcca3a2ca4a70156c72239d62bb68eeb2929fdElliott Hughes#endif /* _SYS_SHA1_H_ */
32