net.i2p.crypto
Class SHA1Hash

java.lang.Object
  extended by net.i2p.data.DataStructureImpl
      extended by net.i2p.data.SimpleDataStructure
          extended by net.i2p.crypto.SHA1Hash
All Implemented Interfaces:
Serializable, DataStructure
Direct Known Subclasses:
InfoHash, NID, TokenKey

public class SHA1Hash
extends SimpleDataStructure

Because DSAEngine was abusing Hash for 20-byte hashes

Since:
0.8.1
Author:
zzz
See Also:
Serialized Form

Field Summary
static int HASH_LENGTH
           
 
Fields inherited from class net.i2p.data.SimpleDataStructure
_data
 
Constructor Summary
SHA1Hash()
           
SHA1Hash(byte[] data)
           
 
Method Summary
 int hashCode()
          a Hash is a hash, so just use the first 4 bytes for speed
 int length()
          The legal length of the byte array in this data structure
 void readBytes(InputStream in)
          Sets the data.
 void setData(byte[] data)
          Sets the data.
 
Methods inherited from class net.i2p.data.SimpleDataStructure
calculateHash, equals, fromBase64, fromByteArray, getData, toBase64, toByteArray, toString, writeBytes
 
Methods inherited from class net.i2p.data.DataStructureImpl
read
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

HASH_LENGTH

public static final int HASH_LENGTH
See Also:
Constant Field Values
Constructor Detail

SHA1Hash

public SHA1Hash()
Since:
0.9.9

SHA1Hash

public SHA1Hash(byte[] data)
Throws:
IllegalArgumentException - if data is not 20 bytes (null is ok)
Method Detail

length

public int length()
Description copied from class: SimpleDataStructure
The legal length of the byte array in this data structure

Specified by:
length in class SimpleDataStructure

setData

public void setData(byte[] data)
Description copied from class: SimpleDataStructure
Sets the data.

Overrides:
setData in class SimpleDataStructure
Parameters:
data - of correct length, or null
Throws:
IllegalArgumentException - if data is not 20 bytes (null is ok)

readBytes

public void readBytes(InputStream in)
               throws DataFormatException,
                      IOException
Description copied from class: SimpleDataStructure
Sets the data.

Specified by:
readBytes in interface DataStructure
Overrides:
readBytes in class SimpleDataStructure
Parameters:
in - the stream to read
Throws:
DataFormatException - if the data is improperly formatted
IOException - if there was a problem reading the stream

hashCode

public int hashCode()
a Hash is a hash, so just use the first 4 bytes for speed

Overrides:
hashCode in class SimpleDataStructure