libxcks  0.1.0.1
libxcks::SHA512 Class Referencefinal

Computes the SHA512 hash from a byte stream. More...

#include <sha384_512.hpp>

Inheritance diagram for libxcks::SHA512:
Collaboration diagram for libxcks::SHA512:

Public Member Functions

 SHA512 ()
 Default constructor. More...
 
void reset () override
 Resets the SHA512 hash to initial state of computation. More...
 
uint8_t * getValue (uint8_t *buffer) const override
 Returns the SHA512 hash value in the first 64 bytes of the given address. More...
 
size_t getSize () const override
 Returns the minimal size to allocate in memory to store the hash with the getValue(buffer) method. More...
 
std::string getName () const override
 Returns the name of the checksum or the hash algorithm. More...
 
ArrayString getAltNames () const override
 Returns the alternative names of the SHA512 hash algorithm. More...
 
ChecksumAlgoId getID () const override
 Returns an unique identifier for the checksum or the hash algorithm. More...
 
- Public Member Functions inherited from libxcks::AbstractSHA512Impl
void update (const uint8_t *buf, size_t len) override final
 Updates the SHA512 hash with specified array of bytes. More...
 
- Public Member Functions inherited from libxcks::ChecksumEx
std::string toString (const bool hexInUpperCase=false) const override
 Returns the hash value has a string. More...
 
- Public Member Functions inherited from libxcks::Checksum
virtual ~Checksum ()
 Destructor. More...
 

Static Public Member Functions

static std::string getHashName ()
 Returns the name of the hash algorithm. More...
 
static ArrayString getAlternativeNames ()
 Returns the alternative names of the SHA512 hash algorithm. More...
 
static constexpr ChecksumAlgoId getIdentifier ()
 Returns an unique identifier for the hash algorithm. More...
 
static ChecksumgetNewInstance ()
 Gets a new instance of this class. More...
 
- Static Public Member Functions inherited from libxcks::Checksum
static ArrayString getAlternativeNames ()
 Returns the alternative name(s) of the checksum or the hash algorithm. More...
 

Additional Inherited Members

- Protected Member Functions inherited from libxcks::AbstractSHA512Impl
void finish ()
 Process the remaining bytes in the internal buffer and the usual prolog according to the standard. More...
 
void transform (uint8_t *data)
 Transform the message X which consists of 16 64-bit-words. More...
 
- Static Protected Member Functions inherited from libxcks::LibgcryptHash
static uint32_t rol (uint32_t x, int n)
 Rotate the 32 bit unsigned integer x by n bits left. More...
 
static uint32_t ror (uint32_t x, int n)
 Rotate the 32 bit unsigned integer x by n bits right. More...
 
- Static Protected Member Functions inherited from libxcks::ChecksumEx
static uint32_t swapOnLE (const uint32_t value)
 Swaps bytes on little endian architectures. More...
 
static uint32_t swapOnBE (const uint32_t value)
 Swaps bytes on big endian architectures. More...
 
static uint64_t swapOnLE (const uint64_t value)
 Swaps bytes on little endian architectures. More...
 
static uint64_t swapOnBE (const uint64_t value)
 Swaps bytes on big endian architectures. More...
 
- Protected Attributes inherited from libxcks::AbstractSHA512Impl
uint64_t h0
 First part of the state of computation. More...
 
uint64_t h1
 Second part of the state of computation. More...
 
uint64_t h2
 Third part of the state of computation. More...
 
uint64_t h3
 Fourth part of the state of computation. More...
 
uint64_t h4
 Fifth part of the state of computation. More...
 
uint64_t h5
 Sixth part of the state of computation. More...
 
uint64_t h6
 Seventh part of the state of computation. More...
 
uint64_t h7
 Eighth part of the state of computation. More...
 
uint64_t nblocks
 Number of blocks. More...
 
int count
 Current size of the input buffer. More...
 
uint8_t ibuffer [128]
 Input buffer. More...
 

Detailed Description

Computes the SHA512 hash from a byte stream.

This class is a rewrite in C++ of the sha384/512 hash computing algorithm present in the Libgcrypt. Please see the GNU Privacy Guard project website for more informations.

Using this class in very simple:
Use the update method to provide to the class the bytes for computing the hash.

The SHA512 hash value can be gotten by two ways:

The SHA512 hash computing can be reseted by the reset method.

Definition at line 251 of file sha384_512.hpp.

Constructor & Destructor Documentation

◆ SHA512()

libxcks::SHA512::SHA512 ( )

Default constructor.

Definition at line 393 of file sha384_512.cpp.

Member Function Documentation

◆ getAlternativeNames()

ArrayString libxcks::SHA512::getAlternativeNames ( )
static

Returns the alternative names of the SHA512 hash algorithm.

Returns
The alternative names of the SHA512 hash algorithm.

Definition at line 438 of file sha384_512.cpp.

◆ getAltNames()

ArrayString libxcks::SHA512::getAltNames ( ) const
inlineoverridevirtual

Returns the alternative names of the SHA512 hash algorithm.

Returns
The alternative names of the SHA512 hash algorithm.

Reimplemented from libxcks::Checksum.

Definition at line 298 of file sha384_512.hpp.

◆ getHashName()

static std::string libxcks::SHA512::getHashName ( )
inlinestatic

Returns the name of the hash algorithm.

Returns
The name of the hash algorithm.

Definition at line 323 of file sha384_512.hpp.

◆ getID()

ChecksumAlgoId libxcks::SHA512::getID ( ) const
inlineoverridevirtual

Returns an unique identifier for the checksum or the hash algorithm.

Remarks
The unique ID should be the CRC32 checksum of the algorithm's name returned by getName() but it's only a convention.
Returns
An unique identifier for the checksum or the hash algorithm.

Implements libxcks::Checksum.

Definition at line 312 of file sha384_512.hpp.

◆ getIdentifier()

static constexpr ChecksumAlgoId libxcks::SHA512::getIdentifier ( )
inlinestaticconstexpr

Returns an unique identifier for the hash algorithm.

Remarks
The unique ID should be the CRC32 checksum of the algorithm's name returned by getHashName() but it's only a convention.
Returns
An unique identifier for the hash algorithm.

Definition at line 344 of file sha384_512.hpp.

◆ getName()

std::string libxcks::SHA512::getName ( ) const
inlineoverridevirtual

Returns the name of the checksum or the hash algorithm.

Returns
The name of the checksum or the hash algorithm.

Implements libxcks::Checksum.

Definition at line 288 of file sha384_512.hpp.

◆ getNewInstance()

static Checksum* libxcks::SHA512::getNewInstance ( )
inlinestatic

Gets a new instance of this class.

The caller is responsible of the deletion of the instance with the delete operator.

Returns
A new instance of this class.

Definition at line 357 of file sha384_512.hpp.

◆ getSize()

size_t libxcks::SHA512::getSize ( ) const
inlineoverridevirtual

Returns the minimal size to allocate in memory to store the hash with the getValue(buffer) method.

Returns
The minimal size to allocate in memory to store the hash with the getValue(buffer) method.

Implements libxcks::Checksum.

Definition at line 281 of file sha384_512.hpp.

◆ getValue()

uint8_t * libxcks::SHA512::getValue ( uint8_t *  buffer) const
overridevirtual

Returns the SHA512 hash value in the first 64 bytes of the given address.

Parameters
bufferThe buffer where the SHA512 hash value will be stored.
Returns
The address of the buffer.
Remarks
The memory for the 64 bytes must have been allocated before calling this method.

Implements libxcks::Checksum.

Definition at line 423 of file sha384_512.cpp.

◆ reset()

void libxcks::SHA512::reset ( )
overridevirtual

Resets the SHA512 hash to initial state of computation.

Implements libxcks::AbstractSHA512Impl.

Definition at line 403 of file sha384_512.cpp.


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