83template<
typename T1,
typename T2>
140 template <
typename T>
149template <
typename Source>
166 std::byte
data[1024];
167 while (num_bytes > 0) {
168 size_t now = std::min<size_t>(num_bytes, 1024);
174 template <
typename T>
183template <
typename Source>
198 template <
typename T>
211void BIP32Hash(
const ChainCode &chainCode,
unsigned int nChild,
unsigned char header,
const unsigned char data[32],
unsigned char output[64]);
A hasher class for Bitcoin's 160-bit hash (SHA-256 + RIPEMD-160).
static const size_t OUTPUT_SIZE
void Finalize(Span< unsigned char > output)
CHash160 & Write(Span< const unsigned char > input)
A hasher class for Bitcoin's 256-bit hash (double SHA-256).
void Finalize(Span< unsigned char > output)
CHash256 & Write(Span< const unsigned char > input)
static const size_t OUTPUT_SIZE
A hasher class for RIPEMD-160.
CRIPEMD160 & Write(const unsigned char *data, size_t len)
void Finalize(unsigned char hash[OUTPUT_SIZE])
static const size_t OUTPUT_SIZE
A hasher class for SHA-256.
static const size_t OUTPUT_SIZE
void Finalize(unsigned char hash[OUTPUT_SIZE])
CSHA256 & Write(const unsigned char *data, size_t len)
Reads data from an underlying stream, while hashing the read data.
HashVerifier(Source &source LIFETIMEBOUND)
void read(Span< std::byte > dst)
void ignore(size_t num_bytes)
HashVerifier< Source > & operator>>(T &&obj)
A writer stream (for serialization) that computes a 256-bit hash.
void write(Span< const std::byte > src)
HashWriter & operator<<(const T &obj)
uint64_t GetCheapHash()
Returns the first 64 bits from the resulting hash.
uint256 GetHash()
Compute the double-SHA256 hash of all data written to this object.
uint256 GetSHA256()
Compute the SHA256 hash of all data written to this object.
Writes data to an underlying source stream, while hashing the written data.
HashedSourceWriter & operator<<(const T &obj)
void write(Span< const std::byte > src)
HashedSourceWriter(Source &source LIFETIMEBOUND)
A Span is an object that can refer to a contiguous sequence of objects.
constexpr std::size_t size() const noexcept
constexpr C * data() const noexcept
constexpr unsigned char * begin()
static uint64_t ReadLE64(const unsigned char *ptr)
uint160 Hash160(const T1 &in1)
Compute the 160-bit hash an object.
void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64])
unsigned int MurmurHash3(unsigned int nHashSeed, Span< const unsigned char > vDataToHash)
HashWriter TaggedHash(const std::string &tag)
Return a HashWriter primed for tagged hashes (as specified in BIP 340).
uint160 RIPEMD160(Span< const unsigned char > data)
Compute the 160-bit RIPEMD-160 hash of an array.
uint256 Hash(const T &in1)
Compute the 256-bit hash of an object.
uint256 SHA256Uint256(const uint256 &input)
Single-SHA256 a 32-byte input (represented as uint256).
void Serialize(Stream &, V)=delete
void Unserialize(Stream &, V)=delete
constexpr auto MakeUCharSpan(V &&v) -> decltype(UCharSpanCast(Span{std::forward< V >(v)}))
Like the Span constructor, but for (const) unsigned char member types only.
unsigned char * UCharCast(char *c)