ripemd160.h raw

   1  // Copyright (c) 2014-present The Bitcoin Core developers
   2  // Distributed under the MIT software license, see the accompanying
   3  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
   4  
   5  #ifndef BITCOIN_CRYPTO_RIPEMD160_H
   6  #define BITCOIN_CRYPTO_RIPEMD160_H
   7  
   8  #include <cstdint>
   9  #include <cstdlib>
  10  
  11  /** A hasher class for RIPEMD-160. */
  12  class CRIPEMD160
  13  {
  14  private:
  15      uint32_t s[5];
  16      unsigned char buf[64];
  17      uint64_t bytes{0};
  18  
  19  public:
  20      static const size_t OUTPUT_SIZE = 20;
  21  
  22      CRIPEMD160();
  23      CRIPEMD160& Write(const unsigned char* data, size_t len);
  24      void Finalize(unsigned char hash[OUTPUT_SIZE]);
  25      CRIPEMD160& Reset();
  26  };
  27  
  28  #endif // BITCOIN_CRYPTO_RIPEMD160_H
  29