Bitcoin ABC  0.28.12
P2P Digital Currency
Public Member Functions | Private Attributes | List of all members
CSipHasher Class Reference

SipHash-2-4. More...

#include <siphash.h>

Public Member Functions

 CSipHasher (uint64_t k0, uint64_t k1)
 Construct a SipHash calculator initialized with 128-bit key (k0, k1) More...
 
CSipHasherWrite (uint64_t data)
 Hash a 64-bit integer worth of data. More...
 
CSipHasherWrite (const uint8_t *data, size_t size)
 Hash arbitrary bytes. More...
 
uint64_t Finalize () const
 Compute the 64-bit SipHash-2-4 of the data written so far. More...
 

Private Attributes

uint64_t v [4]
 
uint64_t tmp
 
uint8_t count
 

Detailed Description

SipHash-2-4.

Definition at line 13 of file siphash.h.

Constructor & Destructor Documentation

◆ CSipHasher()

CSipHasher::CSipHasher ( uint64_t  k0,
uint64_t  k1 
)

Construct a SipHash calculator initialized with 128-bit key (k0, k1)

Definition at line 27 of file siphash.cpp.

Member Function Documentation

◆ Finalize()

uint64_t CSipHasher::Finalize ( ) const

Compute the 64-bit SipHash-2-4 of the data written so far.

The object remains untouched.

Definition at line 82 of file siphash.cpp.

Here is the caller graph for this function:

◆ Write() [1/2]

CSipHasher & CSipHasher::Write ( const uint8_t *  data,
size_t  size 
)

Hash arbitrary bytes.

Definition at line 55 of file siphash.cpp.

◆ Write() [2/2]

CSipHasher & CSipHasher::Write ( uint64_t  data)

Hash a 64-bit integer worth of data.

It is treated as if this was the little-endian interpretation of 8 bytes. This function can only be used when a multiple of 8 bytes have been written so far.

Definition at line 36 of file siphash.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ count

uint8_t CSipHasher::count
private

Definition at line 18 of file siphash.h.

◆ tmp

uint64_t CSipHasher::tmp
private

Definition at line 16 of file siphash.h.

◆ v

uint64_t CSipHasher::v[4]
private

Definition at line 15 of file siphash.h.


The documentation for this class was generated from the following files: