X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Flutil_hash.h;h=5149c37c62f4b807082f062f28a6f203b45330b9;hb=c3cb77e4a661173f294e8fa1841d8d5bcef4d3cd;hp=ffe93507c59808d2e74682ff73caa3c9c817dfcb;hpb=4af9eb971559e3a1f0432615e93ec870dc753ddb;p=openldap diff --git a/include/lutil_hash.h b/include/lutil_hash.h index ffe93507c5..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-2009 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