Class 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.

    • 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 originally copied from an object of the same type as this instance.
      • 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