Package org.bouncycastle.crypto.digests
Class SM3Digest
- java.lang.Object
-
- org.bouncycastle.crypto.digests.GeneralDigest
-
- org.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.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Memoable
copy()
Produce a copy of this object with its configuration and in its current state.int
doFinal(byte[] out, int outOff)
close the digest, producing the final digest value.java.lang.String
getAlgorithmName()
return the algorithm nameint
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 variablesvoid
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
-
-
-
-
Constructor Detail
-
SM3Digest
public SM3Digest()
Standard constructor
-
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 originallycopied
from an object of the same type as this instance.
-
reset
public void reset()
reset the chaining variables- Specified by:
reset
in interfaceDigest
- Overrides:
reset
in classGeneralDigest
-
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 classGeneralDigest
-
processLength
protected void processLength(long bitLength)
- Specified by:
processLength
in classGeneralDigest
-
processBlock
protected void processBlock()
- Specified by:
processBlock
in classGeneralDigest
-
-