Crypto++ 8.2 Free C++ class library of cryptographic schemes

Public Member Functions | Static Public Member Functions | List of all members
SHA256 Class Reference

SHA-256 message digest. More...

Inheritance diagram for SHA256:

## Public Member Functions
std::string | AlgorithmProvider () const
| Retrieve the provider of this algorithm. More...
Public Member Functions inherited from IteratedHashWithStaticTransform< word32, BigEndian, 64, 32, SHA256, 32, true >
unsigned int | DigestSize () const
| Provides the digest size of the hash. More...
Public Member Functions inherited from ClonableImpl< SHA256, AlgorithmImpl< IteratedHash< word32, BigEndian, T_BlockSize >, SHA256 > >
Clonable * | Clone () const
| Create a copy of this object. More...
Public Member Functions inherited from AlgorithmImpl< IteratedHash< word32, BigEndian, T_BlockSize >, SHA256 >
std::string | AlgorithmName () const
| The algorithm name. More...
Public Member Functions inherited from IteratedHash< word32, BigEndian, T_BlockSize >
unsigned int | BlockSize () const
| Provides the block size of the hash. More...
ByteOrder | GetByteOrder () const
| Provides the byte order of the hash. More...
void | CorrectEndianess (HashWordType *out, const HashWordType *in, size_t byteCount)
| Adjusts the byte ordering of the hash. More...
Public Member Functions inherited from IteratedHashBase< word32, HashTransformation >
| IteratedHashBase ()
| Construct an IteratedHashBase.
unsigned int | OptimalBlockSize () const
| Provides the input block size most efficient for this cipher. More...
unsigned int | OptimalDataAlignment () const
| Provides input and output data alignment for optimal performance. More...
void | Update (const byte *input, size_t length)
| Updates a hash with additional input. More...
byte * | CreateUpdateSpace (size_t &size)
| Requests space which can be written into by the caller. More...
void | Restart ()
| Restart the hash. More...
void | TruncatedFinal (byte *digest, size_t digestSize)
| Computes the hash of the current message. More...
Public Member Functions inherited from HashTransformation
HashTransformation & | Ref ()
| Provides a reference to this object. More...
virtual void | Final (byte *digest)
| Computes the hash of the current message. More...
unsigned int | TagSize () const
| Provides the tag size of the hash. More...
virtual void | CalculateDigest (byte *digest, const byte *input, size_t length)
| Updates the hash with additional input and computes the hash of the current message. More...
virtual bool | Verify (const byte *digest)
| Verifies the hash of the current message. More...
virtual bool | VerifyDigest (const byte *digest, const byte *input, size_t length)
| Updates the hash with additional input and verifies the hash of the current message. More...
virtual void | CalculateTruncatedDigest (byte *digest, size_t digestSize, const byte *input, size_t length)
| Updates the hash with additional input and computes the hash of the current message. More...
virtual bool | TruncatedVerify (const byte *digest, size_t digestLength)
| Verifies the hash of the current message. More...
virtual bool | VerifyTruncatedDigest (const byte *digest, size_t digestLength, const byte *input, size_t length)
| Updates the hash with additional input and verifies the hash of the current message. More...
Public Member Functions inherited from Algorithm
| Algorithm (bool checkSelfTestStatus=true)
| Interface for all crypto algorithms. More...

## Static Public Member Functions
static void CRYPTOPP_API | InitState (HashWordType *state)
| Initialize state array. More...
static void CRYPTOPP_API | Transform (HashWordType *digest, const HashWordType *data)
| Operate the hash. More...
static const char *CRYPTOPP_API | StaticAlgorithmName ()
| The algorithm name. More...
Static Public Member Functions inherited from AlgorithmImpl< IteratedHash< word32, BigEndian, T_BlockSize >, SHA256 >
static std::string CRYPTOPP_API | StaticAlgorithmName ()
| The algorithm name. More...

## Additional Inherited Members
Public Types inherited from IteratedHash< word32, BigEndian, T_BlockSize >
typedef BigEndian | ByteOrderClass
typedef word32 | HashWordType
Public Types inherited from IteratedHashBase< word32, HashTransformation >
typedef word32 | HashWordType
Static Public Attributes inherited from IteratedHashWithStaticTransform< word32, BigEndian, 64, 32, SHA256, 32, true >
static const int | DIGESTSIZE
Static Public Attributes inherited from IteratedHash< word32, BigEndian, T_BlockSize >
static const int | BLOCKSIZE

## Detailed Description

SHA-256 message digest.

See also
  SHA-256

Since
  SHA2 since Crypto++ 4.0, ARMv8 SHA since Crypto++ 6.0, Intel SHA since Crypto++ 6.0, Power8 SHA since Crypto++ 6.1

Definition at line 64 of file sha.h.

## Member Function Documentation

## ◆ InitState()

void SHA256::InitState | ( | HashWordType * | state | ) |
| static

Initialize state array.

Parameters

  state | the state of the hash

InitState sets a state array to SHA256 initial values

Hashes which derive from IteratedHashWithStaticTransform provide static member functions InitState and Transform. External classes, like SEAL and MDC, can initialize state with a user provided key and operate the hash on the data with the user supplied state.

Note
  On Intel platforms the state array must be 16-byte aligned for SSE2.

Definition at line 496 of file sha.cpp.

## ◆ Transform()

void SHA256::Transform | ( | HashWordType * | digest,
|  | const HashWordType * | data
| ) |  |
| static

Operate the hash.

Parameters

  digest | the state of the hash
  data | the data to be digested

Transform operates the hash on `data`. When the call is invoked `digest` holds initial state. Upon return `digest` holds the hash or updated state.

Hashes which derive from IteratedHashWithStaticTransform provide static member functions InitState and Transform. External classes, like SEAL and MDC, can initialize state with a user provided key and operate the hash on the data with the user supplied state.

Note
  On Intel platforms the state array and data must be 16-byte aligned for SSE2.

Definition at line 843 of file sha.cpp.

## ◆ StaticAlgorithmName()

static const char* CRYPTOPP_API SHA256::StaticAlgorithmName | ( |  | ) |
| inline static

The algorithm name.

Returns
  C-style string "SHA-256"

Definition at line 90 of file sha.h.

## ◆ AlgorithmProvider()

std::string SHA256::AlgorithmProvider | ( |  | ) | const
| virtual

Retrieve the provider of this algorithm.

Returns
  the algorithm provider

The algorithm provider can be a name like "C++", "SSE", "NEON", "AESNI", "ARMv8" and "Power8". C++ is standard C++ code. Other labels, like SSE, usually indicate a specialized implementation using instructions from a higher instruction set architecture (ISA). Future labels may include external hardware like a hardware security module (HSM).

Note
  Provider is not universally implemented yet.

Reimplemented from IteratedHashBase< word32, HashTransformation >.

Definition at line 838 of file sha.cpp.

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

- sha.h
- sha.cpp