sha1.h
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_SHA1_H 6 #define BITCOIN_CRYPTO_SHA1_H 7 8 #include <cstdint> 9 #include <cstdlib> 10 11 /** A hasher class for SHA1. */ 12 class CSHA1 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 CSHA1(); 23 CSHA1& Write(const unsigned char* data, size_t len); 24 void Finalize(unsigned char hash[OUTPUT_SIZE]); 25 CSHA1& Reset(); 26 }; 27 28 #endif // BITCOIN_CRYPTO_SHA1_H