xref: /netbsd-src/external/bsd/openldap/dist/include/lutil_sha1.h (revision 549b59ed3ccf0d36d3097190a0db27b770f3a839)
1*549b59edSchristos /*	$NetBSD: lutil_sha1.h,v 1.3 2021/08/14 16:14:55 christos Exp $	*/
24e6df137Slukem 
3d11b170bStron /* $OpenLDAP$ */
42de962bdSlukem /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
52de962bdSlukem  *
6*549b59edSchristos  * Copyright 1998-2021 The OpenLDAP Foundation.
72de962bdSlukem  * All rights reserved.
82de962bdSlukem  *
92de962bdSlukem  * Redistribution and use in source and binary forms, with or without
102de962bdSlukem  * modification, are permitted only as authorized by the OpenLDAP
112de962bdSlukem  * Public License.
122de962bdSlukem  *
132de962bdSlukem  * A copy of this license is available in file LICENSE in the
142de962bdSlukem  * top-level directory of the distribution or, alternatively, at
152de962bdSlukem  * <http://www.OpenLDAP.org/license.html>.
162de962bdSlukem  */
172de962bdSlukem 
182de962bdSlukem /* This version is based on:
19d11b170bStron  *	$OpenBSD: sha1.h,v 1.8 1997/07/15 01:54:23 millert Exp $	*/
202de962bdSlukem 
212de962bdSlukem #ifndef _LUTIL_SHA1_H_
222de962bdSlukem #define _LUTIL_SHA1_H_
232de962bdSlukem 
242de962bdSlukem #include <ldap_cdefs.h>
252de962bdSlukem #include <ac/bytes.h>
262de962bdSlukem 
272de962bdSlukem #ifdef AC_INT4_TYPE
282de962bdSlukem 
292de962bdSlukem LDAP_BEGIN_DECL
302de962bdSlukem 
312de962bdSlukem 
322de962bdSlukem /*
332de962bdSlukem  * SHA-1 in C
342de962bdSlukem  * By Steve Reid <steve@edmweb.com>
352de962bdSlukem  */
362de962bdSlukem #define LUTIL_SHA1_BYTES 20
372de962bdSlukem 
382de962bdSlukem /* This code assumes char are 8-bits and uint32 are 32-bits */
392de962bdSlukem typedef ac_uint4 uint32;
402de962bdSlukem 
412de962bdSlukem typedef struct {
422de962bdSlukem     uint32 state[5];
432de962bdSlukem     uint32 count[2];
442de962bdSlukem     unsigned char buffer[64];
452de962bdSlukem } lutil_SHA1_CTX;
462de962bdSlukem 
472de962bdSlukem LDAP_LUTIL_F( void )
482de962bdSlukem lutil_SHA1Transform
492de962bdSlukem 	LDAP_P((uint32 state[5], const unsigned char buffer[64]));
502de962bdSlukem 
512de962bdSlukem LDAP_LUTIL_F( void  )
522de962bdSlukem lutil_SHA1Init
532de962bdSlukem 	LDAP_P((lutil_SHA1_CTX *context));
542de962bdSlukem 
552de962bdSlukem LDAP_LUTIL_F( void  )
562de962bdSlukem lutil_SHA1Update
572de962bdSlukem 	LDAP_P((lutil_SHA1_CTX *context, const unsigned char *data, uint32 len));
582de962bdSlukem 
592de962bdSlukem LDAP_LUTIL_F( void  )
602de962bdSlukem lutil_SHA1Final
612de962bdSlukem 	LDAP_P((unsigned char digest[20], lutil_SHA1_CTX *context));
622de962bdSlukem 
632de962bdSlukem LDAP_LUTIL_F( char * )
642de962bdSlukem lutil_SHA1End
652de962bdSlukem 	LDAP_P((lutil_SHA1_CTX *, char *));
662de962bdSlukem 
672de962bdSlukem LDAP_LUTIL_F( char * )
682de962bdSlukem lutil_SHA1File
692de962bdSlukem 	LDAP_P((char *, char *));
702de962bdSlukem 
712de962bdSlukem LDAP_LUTIL_F( char * )
722de962bdSlukem lutil_SHA1Data
732de962bdSlukem 	LDAP_P((const unsigned char *, size_t, char *));
742de962bdSlukem 
752de962bdSlukem LDAP_END_DECL
762de962bdSlukem 
772de962bdSlukem #endif /* AC_INT4_TYPE */
782de962bdSlukem 
792de962bdSlukem #endif /* _LUTIL_SHA1_H_ */
80