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
00056 class DSIG_EXPORT XSECCryptoHash {
00057
00058
00059 public :
00060
00067 enum HashType {
00068
00069 HASH_NONE = 0,
00070 HASH_SHA1 = 1,
00071 HASH_MD5 = 2,
00072 HASH_SHA224 = 3,
00073 HASH_SHA256 = 4,
00074 HASH_SHA384 = 5,
00075 HASH_SHA512 = 6
00076
00077 };
00078
00079
00080
00081 XSECCryptoHash() {};
00082 virtual ~XSECCryptoHash() {};
00083
00086
00094 virtual void reset(void) = 0;
00095
00107 virtual void hash(unsigned char * data,
00108 unsigned int length) = 0;
00109
00122 virtual unsigned int finish(unsigned char * hash,
00123 unsigned int maxLength) = 0;
00124
00126
00129
00138 virtual HashType getHashType(void) = 0;
00139
00141
00144
00158 virtual void setKey(XSECCryptoKey * key) = 0;
00159
00161
00162 };
00163
00164 #endif