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