SNMP++  3.3.11
sha.h
Go to the documentation of this file.
1 /*_############################################################################
2  _##
3  _## sha.h
4  _##
5  _## SNMP++ v3.3
6  _## -----------------------------------------------
7  _## Copyright (c) 2001-2013 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  _##########################################################################*/
27 
28 #ifndef _SNMP_SHA_H_
29 #define _SNMP_SHA_H_
30 
31 #include <libsnmp.h>
32 #include "snmp_pp/config_snmp_pp.h"
33 
34 #if !defined(_USE_LIBTOMCRYPT) && !defined(_USE_OPENSSL)
35 
36 // $Id$
37 /****************************************************************
38  * SHS.h - Secure Hash Standard (draft) FIPS 180-1 *
39  * *
40  * Copyright (C) 1994 Uri Blumenthal, uri@watson.ibm.com *
41  * Copyright (C) 1994 IBM T. J. Watson esearch Center *
42  * *
43  * Feel free to use this code, as long as you acknowledge the *
44  * ownership by U. Blumenthal and IBM Corp. and agree to hold *
45  * both harmless in case of ANY problem you may have with this *
46  * code. *
47  ****************************************************************/
48 #ifdef SNMP_PP_NAMESPACE
49 namespace Snmp_pp {
50 #endif
51 
52 typedef struct {
53  /* Message Digest words */
54  unsigned long int h[5];
55  /* Message length in bits */
56  unsigned long int count[2];
57  /* Current byte position in not-full-yet buf */
58  int index;
59  /* Buffer for the remainder of bytes mod 64 */
60  unsigned char X[64];
61 } SHA_CTX;
62 
63 DLLOPT int SHAInit(SHA_CTX *ctx);
64 DLLOPT int SHAUpdate(SHA_CTX *ctx, const unsigned char *buf, unsigned int lenBuf);
65 DLLOPT int SHAFinal(unsigned char *digest, SHA_CTX *ctx);
66 
67 #ifdef SNMP_PP_NAMESPACE
68 } // end of namespace Snmp_pp
69 #endif
70 
71 #endif // !defined(_USE_LIBTOMCRYPT) && !defined(_USE_OPENSSL)
72 
73 #endif // _SNMP_SHA_H_
#define DLLOPT