/contrib/bind9/lib/isc/include/isc/hmacmd5.h

https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 72 lines · 33 code · 18 blank · 21 comment · 0 complexity · 9cbd1c404595f275d972676a0fad256d MD5 · raw file

  1. /*
  2. * Copyright (C) 2004-2007, 2009 Internet Systems Consortium, Inc. ("ISC")
  3. * Copyright (C) 2000, 2001 Internet Software Consortium.
  4. *
  5. * Permission to use, copy, modify, and/or distribute this software for any
  6. * purpose with or without fee is hereby granted, provided that the above
  7. * copyright notice and this permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
  10. * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  11. * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
  12. * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  13. * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  14. * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. * PERFORMANCE OF THIS SOFTWARE.
  16. */
  17. /* $Id: hmacmd5.h,v 1.14 2009/02/06 23:47:42 tbox Exp $ */
  18. /*! \file isc/hmacmd5.h
  19. * \brief This is the header file for the HMAC-MD5 keyed hash algorithm
  20. * described in RFC2104.
  21. */
  22. #ifndef ISC_HMACMD5_H
  23. #define ISC_HMACMD5_H 1
  24. #include <isc/lang.h>
  25. #include <isc/md5.h>
  26. #include <isc/platform.h>
  27. #include <isc/types.h>
  28. #define ISC_HMACMD5_KEYLENGTH 64
  29. #ifdef ISC_PLATFORM_OPENSSLHASH
  30. #include <openssl/hmac.h>
  31. typedef HMAC_CTX isc_hmacmd5_t;
  32. #else
  33. typedef struct {
  34. isc_md5_t md5ctx;
  35. unsigned char key[ISC_HMACMD5_KEYLENGTH];
  36. } isc_hmacmd5_t;
  37. #endif
  38. ISC_LANG_BEGINDECLS
  39. void
  40. isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
  41. unsigned int len);
  42. void
  43. isc_hmacmd5_invalidate(isc_hmacmd5_t *ctx);
  44. void
  45. isc_hmacmd5_update(isc_hmacmd5_t *ctx, const unsigned char *buf,
  46. unsigned int len);
  47. void
  48. isc_hmacmd5_sign(isc_hmacmd5_t *ctx, unsigned char *digest);
  49. isc_boolean_t
  50. isc_hmacmd5_verify(isc_hmacmd5_t *ctx, unsigned char *digest);
  51. isc_boolean_t
  52. isc_hmacmd5_verify2(isc_hmacmd5_t *ctx, unsigned char *digest, size_t len);
  53. ISC_LANG_ENDDECLS
  54. #endif /* ISC_HMACMD5_H */