Home | History | Annotate | Line # | Download | only in sys
      1 /*	$NetBSD: sha1.h,v 1.16 2023/08/01 07:04:16 mrg Exp $	*/
      2 
      3 /*
      4  * SHA-1 in C
      5  * By Steve Reid <steve (at) edmweb.com>
      6  * 100% Public Domain
      7  */
      8 
      9 #ifndef _SYS_SHA1_H_
     10 #define	_SYS_SHA1_H_
     11 
     12 #include <sys/cdefs.h>
     13 #include <sys/types.h>
     14 
     15 #define SHA1_DIGEST_LENGTH		20
     16 #define SHA1_DIGEST_STRING_LENGTH	41
     17 #define SHA1_BLOCK_LENGTH		64
     18 
     19 typedef struct {
     20 	uint32_t state[5];
     21 	uint32_t count[2];
     22 	uint8_t buffer[SHA1_BLOCK_LENGTH];
     23 } SHA1_CTX;
     24 
     25 __BEGIN_DECLS
     26 void	SHA1Transform(uint32_t[5], const uint8_t[64]);
     27 void	SHA1Init(SHA1_CTX *);
     28 void	SHA1Update(SHA1_CTX *, const uint8_t *, unsigned int);
     29 void	SHA1Final(uint8_t[SHA1_DIGEST_LENGTH], SHA1_CTX *);
     30 #ifndef _KERNEL
     31 char	*SHA1End(SHA1_CTX *, char[SHA1_DIGEST_STRING_LENGTH]);
     32 char	*SHA1FileChunk(const char *, char *, off_t, off_t);
     33 char	*SHA1File(const char *, char *);
     34 char	*SHA1Data(const uint8_t *, size_t, char[SHA1_DIGEST_STRING_LENGTH]);
     35 #endif /* _KERNEL */
     36 __END_DECLS
     37 
     38 #endif /* _SYS_SHA1_H_ */
     39