ripemd.h 2.4 KB

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