Bitcoin ABC  0.29.1
P2P Digital Currency
sha512.h
Go to the documentation of this file.
1 // Copyright (c) 2014-2016 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_SHA512_H
6 #define BITCOIN_CRYPTO_SHA512_H
7 
8 #include <cstdint>
9 #include <cstdlib>
10 
12 class CSHA512 {
13 private:
14  uint64_t s[8];
15  uint8_t buf[128];
16  uint64_t bytes;
17 
18 public:
19  static constexpr size_t OUTPUT_SIZE = 64;
20 
21  CSHA512();
22  CSHA512 &Write(const uint8_t *data, size_t len);
23  void Finalize(uint8_t hash[OUTPUT_SIZE]);
24  CSHA512 &Reset();
25  uint64_t Size() const { return bytes; }
26 };
27 
28 #endif // BITCOIN_CRYPTO_SHA512_H
A hasher class for SHA-512.
Definition: sha512.h:12
uint64_t Size() const
Definition: sha512.h:25
CSHA512 & Write(const uint8_t *data, size_t len)
Definition: sha512.cpp:248
static constexpr size_t OUTPUT_SIZE
Definition: sha512.h:19
CSHA512 & Reset()
Definition: sha512.cpp:289
uint64_t bytes
Definition: sha512.h:16
uint8_t buf[128]
Definition: sha512.h:15
uint64_t s[8]
Definition: sha512.h:14
void Finalize(uint8_t hash[OUTPUT_SIZE])
Definition: sha512.cpp:273
CSHA512()
Definition: sha512.cpp:244