Class SHA1Digest

  • All Implemented Interfaces:
    Digest, EncodableDigest, ExtendedDigest, Memoable

    public class SHA1Digest
    extends GeneralDigest
    implements EncodableDigest
    implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 is the "endianness" of the word processing!
    • Constructor Summary

      Constructors 
      Constructor Description
      SHA1Digest()
      Standard constructor
      SHA1Digest​(byte[] encodedState)
      State constructor - create a digest initialised with the state of a previous one.
      SHA1Digest​(SHA1Digest t)
      Copy constructor.
    • Constructor Detail

      • SHA1Digest

        public SHA1Digest()
        Standard constructor
      • SHA1Digest

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

        public SHA1Digest​(byte[] encodedState)
        State constructor - create a digest initialised with the state of a previous one.
        Parameters:
        encodedState - the encoded state from the originating digest.
    • Method Detail

      • getAlgorithmName

        public java.lang.String getAlgorithmName()
        Description copied from interface: Digest
        return the algorithm name
        Specified by:
        getAlgorithmName in interface Digest
        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.
        Specified by:
        getDigestSize in interface Digest
        Returns:
        the size, in bytes, of the digest produced by this message digest.
      • processWord

        protected void processWord​(byte[] in,
                                   int inOff)
        Specified by:
        processWord 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.
        Specified by:
        doFinal in interface Digest
        Parameters:
        out - the array the digest is to be copied into.
        outOff - the offset into the out array the digest is to start at.
      • 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.

        Specified by:
        copy in interface Memoable
      • 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.

        Specified by:
        reset in interface Memoable
        Parameters:
        other - an object originally copied from an object of the same type as this instance.
      • getEncodedState

        public byte[] getEncodedState()
        Description copied from interface: EncodableDigest
        Return an encoded byte array for the digest's internal state
        Specified by:
        getEncodedState in interface EncodableDigest
        Returns:
        an encoding of the digests internal state.