00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef XSECCRYPTOHASH_INCLUDE
00029 #define XSECCRYPTOHASH_INCLUDE
00030
00031 #include <xsec/framework/XSECDefs.hpp>
00032 #include <xsec/enc/XSECCryptoKey.hpp>
00033
00034 #define XSEC_MAX_HASH_SIZE 256
00035 #define XSEC_MAX_HASH_BLOCK_SIZE 64
00036
00057 class DSIG_EXPORT XSECCryptoHash {
00058
00059
00060 public :
00061
00068 enum HashType {
00069
00070 HASH_NONE = 0,
00071 HASH_SHA1 = 1,
00072 HASH_MD5 = 2
00073
00074 };
00075
00076
00077
00078 XSECCryptoHash() {};
00079 virtual ~XSECCryptoHash() {};
00080
00083
00091 virtual void reset(void) = 0;
00092
00104 virtual void hash(unsigned char * data,
00105 unsigned int length) = 0;
00106
00119 virtual unsigned int finish(unsigned char * hash,
00120 unsigned int maxLength) = 0;
00121
00123
00126
00135 virtual HashType getHashType(void) = 0;
00136
00138
00141
00155 virtual void setKey(XSECCryptoKey * key) = 0;
00156
00158
00159 };
00160
00161 #endif