Class SHA256Digest
- java.lang.Object
-
- com.ongres.scram.common.bouncycastle.pbkdf2.GeneralDigest
-
- com.ongres.scram.common.bouncycastle.pbkdf2.SHA256Digest
-
- All Implemented Interfaces:
Digest
,EncodableDigest
,ExtendedDigest
,Memoable
public class SHA256Digest extends GeneralDigest implements EncodableDigest
FIPS 180-2 implementation of SHA-256.block word digest SHA-1 512 32 160 SHA-256 512 32 256 SHA-384 1024 64 384 SHA-512 1024 64 512
-
-
Constructor Summary
Constructors Constructor Description SHA256Digest()
Standard constructorSHA256Digest(byte[] encodedState)
State constructor - create a digest initialised with the state of a previous one.SHA256Digest(SHA256Digest t)
Copy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private int
Ch(int x, int y, int z)
Memoable
copy()
Produce a copy of this object with its configuration and in its current state.private void
copyIn(SHA256Digest t)
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.byte[]
getEncodedState()
Return an encoded byte array for the digest's internal stateprivate 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 variablesvoid
reset(Memoable other)
Restore a copied object state into this object.private int
Sum0(int x)
private int
Sum1(int x)
private int
Theta0(int x)
private int
Theta1(int x)
-
Methods inherited from class com.ongres.scram.common.bouncycastle.pbkdf2.GeneralDigest
copyIn, finish, getByteLength, populateState, update, update
-
-
-
-
Field Detail
-
DIGEST_LENGTH
private static final int DIGEST_LENGTH
- See Also:
- Constant Field Values
-
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.
-
SHA256Digest
public SHA256Digest(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
-
copyIn
private void copyIn(SHA256Digest t)
-
getAlgorithmName
public java.lang.String getAlgorithmName()
Description copied from interface:Digest
return the algorithm name- Specified by:
getAlgorithmName
in interfaceDigest
- 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 interfaceDigest
- 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 classGeneralDigest
-
processLength
protected void processLength(long bitLength)
- Specified by:
processLength
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.
-
reset
public void reset()
reset the chaining variables- Specified by:
reset
in interfaceDigest
- Overrides:
reset
in classGeneralDigest
-
processBlock
protected void processBlock()
- Specified by:
processBlock
in classGeneralDigest
-
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)
-
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.
-
getEncodedState
public byte[] getEncodedState()
Description copied from interface:EncodableDigest
Return an encoded byte array for the digest's internal state- Specified by:
getEncodedState
in interfaceEncodableDigest
- Returns:
- an encoding of the digests internal state.
-
-