#ifndef CRYPTOPP_SHA_H #define CRYPTOPP_SHA_H #include "iterhash.h" NAMESPACE_BEGIN(CryptoPP) /// SHA-1 class CRYPTOPP_DLL SHA1 : public IteratedHashWithStaticTransform { public: static void CRYPTOPP_API InitState(HashWordType *state); static void CRYPTOPP_API Transform(word32 *digest, const word32 *data); static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-1";} }; typedef SHA1 SHA; // for backwards compatibility //! implements the SHA-256 standard class CRYPTOPP_DLL SHA256 : public IteratedHashWithStaticTransform { public: #if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE) size_t HashMultipleBlocks(const word32 *input, size_t length); #endif static void CRYPTOPP_API InitState(HashWordType *state); static void CRYPTOPP_API Transform(word32 *digest, const word32 *data); static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-256";} }; //! implements the SHA-224 standard class CRYPTOPP_DLL SHA224 : public IteratedHashWithStaticTransform { public: #if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE) size_t HashMultipleBlocks(const word32 *input, size_t length); #endif static void CRYPTOPP_API InitState(HashWordType *state); static void CRYPTOPP_API Transform(word32 *digest, const word32 *data) {SHA256::Transform(digest, data);} static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-224";} }; //! implements the SHA-512 standard class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform { public: static void CRYPTOPP_API InitState(HashWordType *state); static void CRYPTOPP_API Transform(word64 *digest, const word64 *data); static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-512";} }; //! implements the SHA-384 standard class CRYPTOPP_DLL SHA384 : public IteratedHashWithStaticTransform { public: static void CRYPTOPP_API InitState(HashWordType *state); static void CRYPTOPP_API Transform(word64 *digest, const word64 *data) {SHA512::Transform(digest, data);} static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-384";} }; NAMESPACE_END #endif