xref: /netbsd-src/external/bsd/openldap/dist/include/lutil_md5.h (revision 549b59ed3ccf0d36d3097190a0db27b770f3a839)
1*549b59edSchristos /*	$NetBSD: lutil_md5.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 #ifndef _LUTIL_MD5_H_
192de962bdSlukem #define _LUTIL_MD5_H_
202de962bdSlukem 
212de962bdSlukem #include <lber_types.h>
222de962bdSlukem 
232de962bdSlukem LDAP_BEGIN_DECL
242de962bdSlukem 
252de962bdSlukem /* Unlike previous versions of this code, ber_int_t need not be exactly
262de962bdSlukem    32 bits, merely 32 bits or more.  Choosing a data type which is 32
272de962bdSlukem    bits instead of 64 is not important; speed is considerably more
282de962bdSlukem    important.  ANSI guarantees that "unsigned long" will be big enough,
292de962bdSlukem    and always using it seems to have few disadvantages.  */
302de962bdSlukem 
312de962bdSlukem #define LUTIL_MD5_BYTES 16
322de962bdSlukem 
332de962bdSlukem struct lutil_MD5Context {
342de962bdSlukem 	ber_uint_t buf[4];
352de962bdSlukem 	ber_uint_t bits[2];
362de962bdSlukem 	unsigned char in[64];
372de962bdSlukem };
382de962bdSlukem 
392de962bdSlukem LDAP_LUTIL_F( void )
402de962bdSlukem lutil_MD5Init LDAP_P((
412de962bdSlukem 	struct lutil_MD5Context *context));
422de962bdSlukem 
432de962bdSlukem LDAP_LUTIL_F( void )
442de962bdSlukem lutil_MD5Update LDAP_P((
452de962bdSlukem 	struct lutil_MD5Context *context,
462de962bdSlukem 	unsigned char const *buf,
472de962bdSlukem 	ber_len_t len));
482de962bdSlukem 
492de962bdSlukem LDAP_LUTIL_F( void )
502de962bdSlukem lutil_MD5Final LDAP_P((
512de962bdSlukem 	unsigned char digest[16],
522de962bdSlukem 	struct lutil_MD5Context *context));
532de962bdSlukem 
542de962bdSlukem LDAP_LUTIL_F( void )
552de962bdSlukem lutil_MD5Transform LDAP_P((
562de962bdSlukem 	ber_uint_t buf[4],
572de962bdSlukem 	const unsigned char in[64]));
582de962bdSlukem 
592de962bdSlukem /*
602de962bdSlukem  * This is needed to make RSAREF happy on some MS-DOS compilers.
612de962bdSlukem  */
622de962bdSlukem typedef struct lutil_MD5Context lutil_MD5_CTX;
632de962bdSlukem 
642de962bdSlukem LDAP_END_DECL
652de962bdSlukem 
662de962bdSlukem #endif /* _LUTIL_MD5_H_ */
67