Class SHA256Digest

  • All Implemented Interfaces:
    Digest

    public class SHA256Digest
    extends GeneralDigest
    Draft FIPS 180-2 implementation of SHA-256. Note: As this is based on a draft this implementation is subject to change.
             block  word  digest
     SHA-1   512    32    160
     SHA-256 512    32    256
     SHA-384 1024   64    384
     SHA-512 1024   64    512
     
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int DIGEST_LENGTH  
      private int H1  
      private int H2  
      private int H3  
      private int H4  
      private int H5  
      private int H6  
      private int H7  
      private int H8  
      (package private) static int[] K  
      private int[] X  
      private int xOff  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private int Ch​(int x, int y, int z)  
      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.
      private int Maj​(int x, int y, int z)  
      protected void processBlock()  
      protected void processLength​(long bitLength)  
      protected void processWord​(byte[] in, int inOff)  
      void reset()
      reset the chaining variables
      private int rotateRight​(int x, int n)  
      private int Sum0​(int x)  
      private int Sum1​(int x)  
      private int Theta0​(int x)  
      private int Theta1​(int x)  
      private void unpackWord​(int word, byte[] out, int outOff)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • H1

        private int H1
      • H2

        private int H2
      • H3

        private int H3
      • H4

        private int H4
      • H5

        private int H5
      • H6

        private int H6
      • H7

        private int H7
      • H8

        private int H8
      • X

        private int[] X
      • xOff

        private int xOff
      • K

        static final int[] K
    • Constructor Detail

      • SHA256Digest

        public SHA256Digest()
        Standard constructor
      • SHA256Digest

        public SHA256Digest​(SHA256Digest 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.
      • processWord

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

        private void unpackWord​(int word,
                                byte[] out,
                                int outOff)
      • 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.
      • rotateRight

        private int rotateRight​(int x,
                                int n)
      • Ch

        private int Ch​(int x,
                       int y,
                       int z)
      • Maj

        private int Maj​(int x,
                        int y,
                        int z)
      • Sum0

        private int Sum0​(int x)
      • Sum1

        private int Sum1​(int x)
      • Theta0

        private int Theta0​(int x)
      • Theta1

        private int Theta1​(int x)