sha.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*_############################################################################
  2. _##
  3. _## sha.h
  4. _##
  5. _## SNMP++v3.2.23
  6. _## -----------------------------------------------
  7. _## Copyright (c) 2001-2007 Jochen Katz, Frank Fock
  8. _##
  9. _## This software is based on SNMP++2.6 from Hewlett Packard:
  10. _##
  11. _## Copyright (c) 1996
  12. _## Hewlett-Packard Company
  13. _##
  14. _## ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
  15. _## Permission to use, copy, modify, distribute and/or sell this software
  16. _## and/or its documentation is hereby granted without fee. User agrees
  17. _## to display the above copyright notice and this license notice in all
  18. _## copies of the software and any documentation of the software. User
  19. _## agrees to assume all liability for the use of the software;
  20. _## Hewlett-Packard and Jochen Katz make no representations about the
  21. _## suitability of this software for any purpose. It is provided
  22. _## "AS-IS" without warranty of any kind, either express or implied. User
  23. _## hereby grants a royalty-free license to any and all derivatives based
  24. _## upon this software code base.
  25. _##
  26. _## Stuttgart, Germany, Sun Nov 11 15:10:59 CET 2007
  27. _##
  28. _##########################################################################*/
  29. #include "snmp_pp/config_snmp_pp.h"
  30. #if !defined(_USE_LIBTOMCRYPT) && !defined(_USE_OPENSSL)
  31. // $Id: sha.h 287 2007-03-22 22:37:09Z katz $
  32. /****************************************************************
  33. * SHS.h - Secure Hash Standard (draft) FIPS 180-1 *
  34. * *
  35. * Copyright (C) 1994 Uri Blumenthal, uri@watson.ibm.com *
  36. * Copyright (C) 1994 IBM T. J. Watson esearch Center *
  37. * *
  38. * Feel free to use this code, as long as you acknowledge the *
  39. * ownership by U. Blumenthal and IBM Corp. and agree to hold *
  40. * both harmless in case of ANY problem you may have with this *
  41. * code. *
  42. ****************************************************************/
  43. #ifdef SNMP_PP_NAMESPACE
  44. namespace Snmp_pp {
  45. #endif
  46. typedef struct {
  47. /* Message Digest words */
  48. unsigned long int h[5];
  49. /* Message length in bits */
  50. unsigned long int count[2];
  51. /* Current byte position in not-full-yet buf */
  52. int index;
  53. /* Buffer for the remainder of bytes mod 64 */
  54. unsigned char X[64];
  55. } SHA_CTX;
  56. DLLOPT void SHAInit(SHA_CTX *ctx);
  57. DLLOPT void SHAUpdate(SHA_CTX *ctx, const unsigned char *buf, unsigned int lenBuf);
  58. DLLOPT void SHAFinal(unsigned char *digest, SHA_CTX *ctx);
  59. #ifdef SNMP_PP_NAMESPACE
  60. } // end of namespace Snmp_pp
  61. #endif
  62. #endif // !defined(_USE_LIBTOMCRYPT) && !defined(_USE_OPENSSL)