17
17
typedef SHA1 SHA; // for backwards compatibility
19
19
//! implements the SHA-256 standard
20
class CRYPTOPP_DLL SHA256 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 32, SHA256>
20
class CRYPTOPP_DLL SHA256 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 32, SHA256, 32, true>
23
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE)
24
size_t HashMultipleBlocks(const word32 *input, size_t length);
23
26
static void CRYPTOPP_API InitState(HashWordType *state);
24
27
static void CRYPTOPP_API Transform(word32 *digest, const word32 *data);
25
28
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-256";}
28
31
//! implements the SHA-224 standard
29
class CRYPTOPP_DLL SHA224 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 32, SHA224, 28>
32
class CRYPTOPP_DLL SHA224 : public IteratedHashWithStaticTransform<word32, BigEndian, 64, 32, SHA224, 28, true>
35
#if defined(CRYPTOPP_X86_ASM_AVAILABLE) || defined(CRYPTOPP_X64_MASM_AVAILABLE)
36
size_t HashMultipleBlocks(const word32 *input, size_t length);
32
38
static void CRYPTOPP_API InitState(HashWordType *state);
33
39
static void CRYPTOPP_API Transform(word32 *digest, const word32 *data) {SHA256::Transform(digest, data);}
34
40
static const char * CRYPTOPP_API StaticAlgorithmName() {return "SHA-224";}
37
#ifdef WORD64_AVAILABLE
39
43
//! implements the SHA-512 standard
40
class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform<word64, BigEndian, 128, 64, SHA512>
44
class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform<word64, BigEndian, 128, 64, SHA512, 64, CRYPTOPP_BOOL_X86>
43
47
static void CRYPTOPP_API InitState(HashWordType *state);
48
52
//! implements the SHA-384 standard
49
class CRYPTOPP_DLL SHA384 : public IteratedHashWithStaticTransform<word64, BigEndian, 128, 64, SHA384, 48>
53
class CRYPTOPP_DLL SHA384 : public IteratedHashWithStaticTransform<word64, BigEndian, 128, 64, SHA384, 48, CRYPTOPP_BOOL_X86>
52
56
static void CRYPTOPP_API InitState(HashWordType *state);