SM3 Class Reference

SM3 hash function. More...

`#include <sm3.h>`

Inheritance diagram for SM3:

## Static Public Member Functions

static void | InitState (HashWordType *state)
| Initialize state array.
static void | Transform (HashWordType *digest, const HashWordType *data)
| Operate the hash.
static const char * | StaticAlgorithmName ()
| The algorithm name.

## Additional Inherited Members

Public Member Functions inherited from IteratedHashWithStaticTransform< word32, BigEndian, 64, 32, SM3, 32, true >
unsigned int | DigestSize () const
| Provides the digest size of the hash.
Public Member Functions inherited from ClonableImpl< DERIVED, BASE >
Clonable * | Clone () const
| Create a copy of this object.
Static Public Attributes inherited from IteratedHashWithStaticTransform< word32, BigEndian, 64, 32, SM3, 32, true >
static const int | DIGESTSIZE

## Detailed Description

SM3 hash function.

SM3 is a hash function designed by Xiaoyun Wang, et al. The hash is part of the Chinese State Cryptography Administration portfolio.

See also
  SM3 Hash Function

Since
  Crypto++ 6.0

Definition at line 27 of file sm3.h.

## Member Function Documentation

## InitState()

void SM3::InitState | ( | HashWordType * | state | ) |

static

Initialize state array.

Parameters

  state | the state of the hash

InitState sets a state array to SM3 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.

Definition at line 230 of file sm3.cpp.

## Transform()

void SM3::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 or current 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.

Definition at line 240 of file sm3.cpp.

## StaticAlgorithmName()

static const char * SM3::StaticAlgorithmName | ( |  | ) |

inline static

The algorithm name.

Returns
  C-style string "SM3"

Definition at line 53 of file sm3.h.

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

- sm3.h
- sm3.cpp