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