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

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

SM3 hash function. More...

Inheritance diagram for SM3:

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

## 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. More...
Public Member Functions inherited from ClonableImpl< DERIVED, BASE >
Clonable * | Clone () const
| Create a copy of this object. More...
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