---
name: "SHADigest"
section: "3cc"
platform: "linux"
package: "libcommoncpp2-dev"
version: "1.0.13-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/SHADigest"
---

# SHADigest(3cc)

SHADigest Base class for the SHA\*Digests.

## NAME

SHADigest - SHADigest Base class for the SHA\*Digests.

## SYNOPSIS

`#include <digest.h>`

Inherits **Digest**.

### Public Methods

unsigned **getSize** (void)=0\
 void **putDigest** (const unsigned char \*buffer, unsigned length)  throw (DigestException)\
 std::ostream & **strDigest** (std::ostream &os)=0\

### Protected Methods

void **initDigest** (void)\
 virtual void **processBlock** (const unsigned char \*buffer)=0\
 void **padBuffer** (unsigned char \*buffer)\
 **SHADigest** ()\
 **SHADigest** (const SHADigest &other)\
 SHADigest & **operator=** (const SHADigest &other)\

### Protected Attributes

unsigned char **tempBlock** \[blockSizeInBytes\]\
 bool **completed**\

## DETAILED DESCRIPTION

### template\<class uint\_type, unsigned blockSizeInBytes\> class SHADigest\< uint\_type, blockSizeInBytes \>

SHADigest Base class for the SHA\*Digests.

Generic Class that is the base class of the various SHA\***Digest** classes.

uint\_type == The 'Unsigned Integer Type' which is large enough to hold the total length of a given message in bits. For SHA1 and SHA256, this is 64 bits, so we use 'uint64';

**Author:**  Elizabeth Barham \<lizzy@soggytrousers.net\>

## CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

### template\<class uint\_type, unsigned blockSizeInBytes\> SHADigest\< uint\_type, blockSizeInBytes \>::SHADigest ()` [protected]`

### template\<class uint\_type, unsigned blockSizeInBytes\> SHADigest\< uint\_type, blockSizeInBytes \>::SHADigest (const SHADigest\< uint\_type, blockSizeInBytes \> & other)` [protected]`

## MEMBER FUNCTION DOCUMENTATION

### template\<class uint\_type, unsigned blockSizeInBytes\> unsigned SHADigest\< uint\_type, blockSizeInBytes \>::getSize (void)` [pure virtual]`

Implements **Digest**.

Implemented in **SHA1Digest**, and **SHA256Digest**.

### template\<class uint\_type, unsigned blockSizeInBytes\> void SHADigest\< uint\_type, blockSizeInBytes \>::initDigest (void)` [protected, virtual]`

Implements **Digest**.

Reimplemented in **SHA1Digest**, and **SHA256Digest**.

### template\<class uint\_type, unsigned blockSizeInBytes\> SHADigest& SHADigest\< uint\_type, blockSizeInBytes \>::operator= (const SHADigest\< uint\_type, blockSizeInBytes \> & other)` [protected]`

### template\<class uint\_type, unsigned blockSizeInBytes\> void SHADigest\< uint\_type, blockSizeInBytes \>::padBuffer (unsigned char \* buffer)` [protected]`

### template\<class uint\_type, unsigned blockSizeInBytes\> virtual void SHADigest\< uint\_type, blockSizeInBytes \>::processBlock (const unsigned char \* buffer)` [protected, pure virtual]`

Implemented in **SHA1Digest**, and **SHA256Digest**.

### template\<class uint\_type, unsigned blockSizeInBytes\> void SHADigest\< uint\_type, blockSizeInBytes \>::putDigest (const unsigned char \* buffer, unsigned length) throw (DigestException)` [virtual]`

Implements **Digest**.

### template\<class uint\_type, unsigned blockSizeInBytes\> std::ostream& SHADigest\< uint\_type, blockSizeInBytes \>::strDigest (std::ostream & os)` [pure virtual]`

Implements **Digest**.

Implemented in **SHA64DigestHelper**.

## MEMBER DATA DOCUMENTATION

### template\<class uint\_type, unsigned blockSizeInBytes\> bool SHADigest\< uint\_type, blockSizeInBytes \>::completed` [protected]`

### template\<class uint\_type, unsigned blockSizeInBytes\> unsigned char SHADigest\< uint\_type, blockSizeInBytes \>::tempBlock\[blockSizeInBytes\]` [protected]`

## AUTHOR

Generated automatically by Doxygen for CommonC++ from the source code.
