ndn::util::Sha256 Class Reference

Provides stateful SHA-256 digest calculation. More...

#include <sha256.hpp>

Classes

class  Error
 

Public Member Functions

 Sha256 ()
 Create an empty SHA-256 digest. More...
 
 Sha256 (std::istream &is)
 Calculate SHA-256 digest of the input stream is. More...
 
ConstBufferPtr computeDigest ()
 Finalize and return the digest based on all previously supplied inputs. More...
 
bool empty () const
 Check if digest is empty. More...
 
bool operator!= (Sha256 &digest)
 Check if the supplied digest is not equal to this digest. More...
 
Sha256operator<< (Sha256 &src)
 Add existing digest to the digest calculation. More...
 
Sha256operator<< (const std::string &str)
 Add a string to the digest calculation. More...
 
Sha256operator<< (const Block &block)
 Add a block to the digest calculation. More...
 
Sha256operator<< (uint64_t value)
 Add a uint64_t value to the digest calculation. More...
 
bool operator== (Sha256 &digest)
 Check if the supplied digest is equal to this digest. More...
 
void reset ()
 Discard the current state and start a new digest calculation. More...
 
std::string toString ()
 Convert digest to std::string. More...
 
void update (const uint8_t *buffer, size_t size)
 Add a raw buffer to the digest calculation. More...
 

Static Public Member Functions

static ConstBufferPtr computeDigest (const uint8_t *buffer, size_t size)
 Stateless SHA-256 digest calculation. More...
 

Static Public Attributes

static const size_t DIGEST_SIZE = 32
 Length in bytes of a SHA-256 digest. More...
 

Detailed Description

Provides stateful SHA-256 digest calculation.

Example:

Sha256 digest;
digest.update(buf1, size1);
digest.update(buf2, size2);
...
ConstBufferPtr result = digest.computeDigest();

Definition at line 44 of file sha256.hpp.

Constructor & Destructor Documentation

ndn::util::Sha256::Sha256 ( )

Create an empty SHA-256 digest.

Definition at line 34 of file sha256.cpp.

ndn::util::Sha256::Sha256 ( std::istream &  is)
explicit

Calculate SHA-256 digest of the input stream is.

Definition at line 39 of file sha256.cpp.

Member Function Documentation

ConstBufferPtr ndn::util::Sha256::computeDigest ( )

Finalize and return the digest based on all previously supplied inputs.

Definition at line 63 of file sha256.cpp.

ConstBufferPtr ndn::util::Sha256::computeDigest ( const uint8_t *  buffer,
size_t  size 
)
static

Stateless SHA-256 digest calculation.

Parameters
bufferthe input buffer
sizethe size of the input buffer
Returns
SHA-256 digest of the input buffer

Definition at line 136 of file sha256.cpp.

bool ndn::util::Sha256::empty ( ) const
inline

Check if digest is empty.

An empty digest means nothing has been taken into calculation.

Definition at line 79 of file sha256.hpp.

bool ndn::util::Sha256::operator!= ( Sha256 digest)
inline

Check if the supplied digest is not equal to this digest.

Note
This method invokes computeDigest() on both operands, finalizing the digest.

Definition at line 108 of file sha256.hpp.

Sha256 & ndn::util::Sha256::operator<< ( Sha256 src)

Add existing digest to the digest calculation.

Parameters
srcdigest to combine with

The result of this combination is sha256(sha256(...))

Note
This method invokes computeDigest() on src, finalizing the digest.
Exceptions
Errorthe digest has already been finalized

Definition at line 89 of file sha256.cpp.

Sha256 & ndn::util::Sha256::operator<< ( const std::string &  str)

Add a string to the digest calculation.

Exceptions
Errorthe digest has already been finalized

Definition at line 97 of file sha256.cpp.

Sha256 & ndn::util::Sha256::operator<< ( const Block block)

Add a block to the digest calculation.

Exceptions
Errorthe digest has already been finalized

Definition at line 104 of file sha256.cpp.

Sha256 & ndn::util::Sha256::operator<< ( uint64_t  value)

Add a uint64_t value to the digest calculation.

Exceptions
Errorthe digest has already been finalized

Definition at line 111 of file sha256.cpp.

bool ndn::util::Sha256::operator== ( Sha256 digest)

Check if the supplied digest is equal to this digest.

Note
This method invokes computeDigest() on both operands, finalizing the digest.

Definition at line 75 of file sha256.cpp.

void ndn::util::Sha256::reset ( )

Discard the current state and start a new digest calculation.

Definition at line 50 of file sha256.cpp.

std::string ndn::util::Sha256::toString ( )

Convert digest to std::string.

Note
This method invokes computeDigest(), finalizing the digest.

Definition at line 129 of file sha256.cpp.

void ndn::util::Sha256::update ( const uint8_t *  buffer,
size_t  size 
)

Add a raw buffer to the digest calculation.

Parameters
bufferthe input buffer
sizethe size of the input buffer
Exceptions
Errorthe digest has already been finalized

Definition at line 118 of file sha256.cpp.

Member Data Documentation

const size_t ndn::util::Sha256::DIGEST_SIZE = 32
static

Length in bytes of a SHA-256 digest.

Definition at line 60 of file sha256.hpp.