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 TypeMethodDescriptionint
doFinal
(byte[] out, int outOff) close the digest, producing the final digest value.private int
f
(int u, int v, int w) private int
g
(int u, int v, int w) return the algorithm nameint
return the size, in bytes, of the digest produced by this message digest.private int
h
(int u, int v, int w) protected void
protected void
processLength
(long bitLength) protected void
processWord
(byte[] in, int inOff) void
reset()
reset the chaining variablesprivate int
rotateLeft
(int x, int n) private void
unpackWord
(int word, byte[] out, int outOff) Methods inherited from class org.gudy.bouncycastle.crypto.digests.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
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 classGeneralDigest
-
unpackWord
private void unpackWord(int word, byte[] out, int outOff) -
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.- 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:
reset
in interfaceDigest
- Overrides:
reset
in 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:
processBlock
in classGeneralDigest
-