Package org.bouncycastle.crypto.digests
Class SHA1InterleaveDigest
- java.lang.Object
-
- org.bouncycastle.crypto.digests.SHA1InterleaveDigest
-
public class SHA1InterleaveDigest extends java.lang.Object implements Digest, Memoable
Implementation of the SHA_Interleave function from RFC 2945, section 3.1, as used by SRP-SHA1 to produce a session key twice the length of a regular SHA-1 hash.The complete input is buffered until
doFinal(byte[], int)is called: leading zero bytes are removed, a further leading byte is removed if the remaining length is odd, the even-numbered and odd-numbered bytes are then hashed separately with SHA-1, and the two hashes are interleaved to form the 40 byte result.
-
-
Constructor Summary
Constructors Constructor Description SHA1InterleaveDigest()SHA1InterleaveDigest(SHA1InterleaveDigest t)Copy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Memoablecopy()Produce a copy of this object with its configuration and in its current state.intdoFinal(byte[] out, int outOff)close the digest, producing the final digest value.java.lang.StringgetAlgorithmName()return the algorithm nameintgetDigestSize()return the size, in bytes, of the digest produced by this message digest.voidreset()reset the digest back to it's initial state.voidreset(Memoable other)Restore a copied object state into this object.voidupdate(byte in)update the message digest with a single byte.voidupdate(byte[] in, int inOff, int len)update the message digest with a block of bytes.
-
-
-
Constructor Detail
-
SHA1InterleaveDigest
public SHA1InterleaveDigest()
-
SHA1InterleaveDigest
public SHA1InterleaveDigest(SHA1InterleaveDigest 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:Digestreturn the algorithm name- Specified by:
getAlgorithmNamein interfaceDigest- Returns:
- the algorithm name
-
getDigestSize
public int getDigestSize()
Description copied from interface:Digestreturn the size, in bytes, of the digest produced by this message digest.- Specified by:
getDigestSizein interfaceDigest- Returns:
- the size, in bytes, of the digest produced by this message digest.
-
update
public void update(byte in)
Description copied from interface:Digestupdate the message digest with a single byte.
-
update
public void update(byte[] in, int inOff, int len)Description copied from interface:Digestupdate the message digest with a block of bytes.
-
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.
-
reset
public void reset()
Description copied from interface:Digestreset the digest back to it's initial state.
-
copy
public Memoable copy()
Description copied from interface:MemoableProduce 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.
-
-