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