Class SHA1Digest
java.lang.Object
org.gudy.bouncycastle.crypto.digests.GeneralDigest
org.gudy.bouncycastle.crypto.digests.SHA1Digest
- All Implemented Interfaces:
Digest
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 "endienness" of the word processing!
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionStandard constructorCopy constructor. -
Method Summary
Modifier and TypeMethodDescriptionintdoFinal(byte[] out, int outOff) close the digest, producing the final digest value.private intf(int u, int v, int w) private intg(int u, int v, int w) return the algorithm nameintreturn the size, in bytes, of the digest produced by this message digest.private inth(int u, int v, int w) protected voidprotected voidprocessLength(long bitLength) protected voidprocessWord(byte[] in, int inOff) voidreset()reset the chaining variablesprivate introtateLeft(int x, int n) private voidunpackWord(int word, byte[] out, int outOff) Methods inherited from class GeneralDigest
finish, update, update
-
Field Details
-
DIGEST_LENGTH
private static final int DIGEST_LENGTH- See Also:
-
H1
private int H1 -
H2
private int H2 -
H3
private int H3 -
H4
private int H4 -
H5
private int H5 -
X
private int[] X -
xOff
private int xOff -
Y1
private static final int Y1- See Also:
-
Y2
private static final int Y2- See Also:
-
Y3
private static final int Y3- See Also:
-
Y4
private static final int Y4- See Also:
-
-
Constructor Details
-
SHA1Digest
public SHA1Digest()Standard constructor -
SHA1Digest
Copy constructor. This will copy the state of the provided message digest.
-
-
Method Details
-
getAlgorithmName
-
getDigestSize
public int getDigestSize()Description copied from interface:Digestreturn 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:
processWordin classGeneralDigest
-
unpackWord
private void unpackWord(int word, byte[] out, int outOff) -
processLength
protected void processLength(long bitLength) - Specified by:
processLengthin classGeneralDigest
-
doFinal
public int doFinal(byte[] out, int outOff) Description copied from interface:Digestclose 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.
-
reset
public void reset()reset the chaining variables- Specified by:
resetin interfaceDigest- Overrides:
resetin classGeneralDigest
-
f
private int f(int u, int v, int w) -
h
private int h(int u, int v, int w) -
g
private int g(int u, int v, int w) -
rotateLeft
private int rotateLeft(int x, int n) -
processBlock
protected void processBlock()- Specified by:
processBlockin classGeneralDigest
-