00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _DECAF_INTERNAL_SECURITY_PROVIDER_CRYPTO_MD5MESSAGEDIGESTSPI_H_
00019 #define _DECAF_INTERNAL_SECURITY_PROVIDER_CRYPTO_MD5MESSAGEDIGESTSPI_H_
00020
00021 #include <decaf/util/Config.h>
00022
00023 #include <decaf/security/MessageDigestSpi.h>
00024
00025 namespace decaf {
00026 namespace internal {
00027 namespace security {
00028 namespace provider {
00029 namespace crypto {
00030
00031 class MD5MessageDigestSpiImpl;
00032
00038 class DECAF_API MD5MessageDigestSpi : public decaf::security::MessageDigestSpi {
00039 private:
00040
00041 MD5MessageDigestSpi(const MD5MessageDigestSpi&);
00042 MD5MessageDigestSpi& operator= (const MD5MessageDigestSpi&);
00043
00044 MD5MessageDigestSpiImpl* impl;
00045
00046 public:
00047
00048 MD5MessageDigestSpi();
00049
00050 virtual ~MD5MessageDigestSpi();
00051
00052 public:
00053
00054 virtual bool isCloneable() const {
00055 return true;
00056 }
00057
00058 virtual MessageDigestSpi* clone();
00059
00060 virtual int engineGetDigestLength();
00061
00062 virtual void engineUpdate(unsigned char input);
00063
00064 virtual void engineUpdate(const unsigned char* input, int size, int offset, int length);
00065
00066 virtual void engineReset();
00067
00068 virtual void engineUpdate(const std::vector<unsigned char>& input);
00069
00070 virtual void engineUpdate(decaf::nio::ByteBuffer& input);
00071
00072 virtual std::vector<unsigned char> engineDigest();
00073
00074 virtual int engineDigest(unsigned char* buffer, int size, int offset, int length);
00075
00076 };
00077
00078 }}}}}
00079
00080 #endif