/root/bitcoin/src/crypto/sha512.h
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright (c) 2014-2022 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 <cstdlib> |
9 | | #include <stdint.h> |
10 | | |
11 | | /** A hasher class for SHA-512. */ |
12 | | class CSHA512 |
13 | | { |
14 | | private: |
15 | | uint64_t s[8]; |
16 | | unsigned char buf[128]; |
17 | | uint64_t bytes{0}; |
18 | | |
19 | | public: |
20 | | static constexpr size_t OUTPUT_SIZE = 64; |
21 | | |
22 | | CSHA512(); |
23 | | CSHA512& Write(const unsigned char* data, size_t len); |
24 | | void Finalize(unsigned char hash[OUTPUT_SIZE]); |
25 | | CSHA512& Reset(); |
26 | 0 | uint64_t Size() const { return bytes; } |
27 | | }; |
28 | | |
29 | | #endif // BITCOIN_CRYPTO_SHA512_H |