X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Flutil_hash.h;h=5149c37c62f4b807082f062f28a6f203b45330b9;hb=c3cb77e4a661173f294e8fa1841d8d5bcef4d3cd;hp=13dee04955c101b92f4fde5126e83ac81c81ffb9;hpb=c890c96d13c53cf0fa1d9580fea2ab47a2c8caa9;p=openldap diff --git a/include/lutil_hash.h b/include/lutil_hash.h index 13dee04955..5149c37c62 100644 --- a/include/lutil_hash.h +++ b/include/lutil_hash.h @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2008 The OpenLDAP Foundation. + * Copyright 1998-2017 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,26 +22,56 @@ LDAP_BEGIN_DECL #define LUTIL_HASH_BYTES 4 -struct lutil_HASHContext { +#ifdef HAVE_LONG_LONG + +typedef union lutil_HASHContext { + ber_uint_t hash; + unsigned long long hash64; +} lutil_HASH_CTX; + +#else /* !HAVE_LONG_LONG */ + +typedef struct lutil_HASHContext { ber_uint_t hash; -}; +} lutil_HASH_CTX; + +#endif /* HAVE_LONG_LONG */ LDAP_LUTIL_F( void ) lutil_HASHInit LDAP_P(( - struct lutil_HASHContext *context)); + lutil_HASH_CTX *context)); LDAP_LUTIL_F( void ) lutil_HASHUpdate LDAP_P(( - struct lutil_HASHContext *context, + lutil_HASH_CTX *context, unsigned char const *buf, ber_len_t len)); LDAP_LUTIL_F( void ) lutil_HASHFinal LDAP_P(( unsigned char digest[LUTIL_HASH_BYTES], - struct lutil_HASHContext *context)); + lutil_HASH_CTX *context)); + +#ifdef HAVE_LONG_LONG + +#define LUTIL_HASH64_BYTES 8 + +LDAP_LUTIL_F( void ) +lutil_HASH64Init LDAP_P(( + lutil_HASH_CTX *context)); + +LDAP_LUTIL_F( void ) +lutil_HASH64Update LDAP_P(( + lutil_HASH_CTX *context, + unsigned char const *buf, + ber_len_t len)); + +LDAP_LUTIL_F( void ) +lutil_HASH64Final LDAP_P(( + unsigned char digest[LUTIL_HASH64_BYTES], + lutil_HASH_CTX *context)); -typedef struct lutil_HASHContext lutil_HASH_CTX; +#endif /* HAVE_LONG_LONG */ LDAP_END_DECL