Bitcoin ABC 0.30.5
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
12class CSHA512 {
13private:
14 uint64_t s[8];
15 uint8_t buf[128];
16 uint64_t bytes;
17
18public:
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