Crypto++
ripemd.h
1 #ifndef CRYPTOPP_RIPEMD_H
2 #define CRYPTOPP_RIPEMD_H
3 
4 #include "iterhash.h"
5 
6 NAMESPACE_BEGIN(CryptoPP)
7 
8 //! <a href="http://www.weidai.com/scan-mirror/md.html#RIPEMD-160">RIPEMD-160</a>
9 /*! Digest Length = 160 bits */
11 {
12 public:
13  static void InitState(HashWordType *state);
14  static void Transform(word32 *digest, const word32 *data);
15  static const char * StaticAlgorithmName() {return "RIPEMD-160";}
16 };
17 
18 /*! Digest Length = 320 bits, Security is similar to RIPEMD-160 */
19 class RIPEMD320 : public IteratedHashWithStaticTransform<word32, LittleEndian, 64, 40, RIPEMD320>
20 {
21 public:
22  static void InitState(HashWordType *state);
23  static void Transform(word32 *digest, const word32 *data);
24  static const char * StaticAlgorithmName() {return "RIPEMD-320";}
25 };
26 
27 /*! \warning RIPEMD-128 is considered insecure, and should not be used
28  unless you absolutely need it for compatibility. */
29 class RIPEMD128 : public IteratedHashWithStaticTransform<word32, LittleEndian, 64, 16, RIPEMD128>
30 {
31 public:
32  static void InitState(HashWordType *state);
33  static void Transform(word32 *digest, const word32 *data);
34  static const char * StaticAlgorithmName() {return "RIPEMD-128";}
35 };
36 
37 /*! \warning RIPEMD-256 is considered insecure, and should not be used
38  unless you absolutely need it for compatibility. */
39 class RIPEMD256 : public IteratedHashWithStaticTransform<word32, LittleEndian, 64, 32, RIPEMD256>
40 {
41 public:
42  static void InitState(HashWordType *state);
43  static void Transform(word32 *digest, const word32 *data);
44  static const char * StaticAlgorithmName() {return "RIPEMD-256";}
45 };
46 
47 NAMESPACE_END
48 
49 #endif
RIPEMD-160
Definition: ripemd.h:10