Bouncy Castle Cryptography Library 1.81

org.bouncycastle.crypto.digests
Class SM3Digest

java.lang.Object
  extended byorg.bouncycastle.crypto.digests.GeneralDigest
      extended byorg.bouncycastle.crypto.digests.SM3Digest
All Implemented Interfaces:
Digest, ExtendedDigest, Memoable

public class SM3Digest
extends GeneralDigest

Implementation of Chinese SM3 digest as described at https://tools.ietf.org/html/draft-shen-sm3-hash-01 and at []. ( Chinese PDF )

The specification says "process a bit stream", but this is written to process bytes in blocks of 4, meaning this will process 32-bit word groups. But so do also most other digest specifications, including the SHA-256 which was a origin for this specification.


Field Summary
 
Fields inherited from class org.bouncycastle.crypto.digests.GeneralDigest
purpose
 
Constructor Summary
SM3Digest()
          Standard constructor
SM3Digest(CryptoServicePurpose purpose)
          Standard constructor, with Purpose
SM3Digest(SM3Digest t)
          Copy constructor.
 
Method Summary
 Memoable copy()
          Produce a copy of this object with its configuration and in its current state.
protected  CryptoServiceProperties cryptoServiceProperties()
           
 int doFinal(byte[] out, int outOff)
          close the digest, producing the final digest value.
 java.lang.String getAlgorithmName()
          return the algorithm name
 int getDigestSize()
          return the size, in bytes, of the digest produced by this message digest.
protected  void processBlock()
           
protected  void processLength(long bitLength)
           
protected  void processWord(byte[] in, int inOff)
           
 void reset()
          reset the chaining variables
 void reset(Memoable other)
          Restore a copied object state into this object.
 
Methods inherited from class org.bouncycastle.crypto.digests.GeneralDigest
copyIn, finish, getByteLength, populateState, update, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SM3Digest

public SM3Digest()
Standard constructor


SM3Digest

public SM3Digest(CryptoServicePurpose purpose)
Standard constructor, with Purpose


SM3Digest

public SM3Digest(SM3Digest t)
Copy constructor. This will copy the state of the provided message digest.

Method Detail

getAlgorithmName

public java.lang.String getAlgorithmName()
Description copied from interface: Digest
return the algorithm name

Returns:
the algorithm name

getDigestSize

public int getDigestSize()
Description copied from interface: Digest
return the size, in bytes, of the digest produced by this message digest.

Returns:
the size, in bytes, of the digest produced by this message digest.

copy

public Memoable copy()
Description copied from interface: Memoable
Produce a copy of this object with its configuration and in its current state.

The returned object may be used simply to store the state, or may be used as a similar object starting from the copied state.


reset

public void reset(Memoable other)
Description copied from interface: Memoable
Restore a copied object state into this object.

Implementations of this method should try to avoid or minimise memory allocation to perform the reset.

Parameters:
other - an object originally copied from an object of the same type as this instance.

reset

public void reset()
reset the chaining variables

Specified by:
reset in interface Digest
Overrides:
reset in class GeneralDigest

doFinal

public int doFinal(byte[] out,
                   int outOff)
Description copied from interface: Digest
close the digest, producing the final digest value. The doFinal call leaves the digest reset.

Parameters:
out - the array the digest is to be copied into.
outOff - the offset into the out array the digest is to start at.

processWord

protected void processWord(byte[] in,
                           int inOff)
Specified by:
processWord in class GeneralDigest

processLength

protected void processLength(long bitLength)
Specified by:
processLength in class GeneralDigest

processBlock

protected void processBlock()
Specified by:
processBlock in class GeneralDigest

cryptoServiceProperties

protected CryptoServiceProperties cryptoServiceProperties()
Specified by:
cryptoServiceProperties in class GeneralDigest

Bouncy Castle Cryptography Library 1.81