Package net.i2p.data
Class Signature
java.lang.Object
net.i2p.data.SimpleDataStructure
net.i2p.data.Signature
- All Implemented Interfaces:
DataStructure
Defines the signature as defined by the I2P data structure spec.
By default, a signature is a 40-byte array verifying the authenticity of some data
using the DSA-SHA1 algorithm.
The signature is the 20-byte R followed by the 20-byte S,
both are unsigned integers.
As of release 0.9.8, signatures of arbitrary length and type are supported.
See SigType.
- Author:
- jrandom
-
Field Summary
Fields inherited from class net.i2p.data.SimpleDataStructure
_data
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Warning - this returns true for two different classes with the same size and same data, e.g.getType()
int
hashCode()
We assume the data has enough randomness in it, so use the first 4 bytes for speed.int
length()
The legal length of the byte array in this data structuretoString()
Methods inherited from class net.i2p.data.SimpleDataStructure
calculateHash, fromBase64, fromByteArray, getData, read, readBytes, setData, toBase64, toByteArray, writeBytes
-
Field Details
-
SIGNATURE_BYTES
public static final int SIGNATURE_BYTES40
-
-
Constructor Details
-
Signature
public Signature() -
Signature
Unknown type not allowed as we won't know the length to read in the data.- Parameters:
type
- non-null- Since:
- 0.9.8
-
Signature
public Signature(byte[] data) -
Signature
Should we allow an unknown type here?- Parameters:
type
- non-null- Since:
- 0.9.8
-
-
Method Details
-
length
public int length()Description copied from class:SimpleDataStructure
The legal length of the byte array in this data structure- Specified by:
length
in classSimpleDataStructure
-
getType
- Returns:
- non-null
- Since:
- 0.9.8
-
toString
- Overrides:
toString
in classSimpleDataStructure
- Since:
- 0.9.8
-
hashCode
public int hashCode()Description copied from class:SimpleDataStructure
We assume the data has enough randomness in it, so use the first 4 bytes for speed. If this is not the case, override in the extending class.- Overrides:
hashCode
in classSimpleDataStructure
- Since:
- 0.9.17
-
equals
Description copied from class:SimpleDataStructure
Warning - this returns true for two different classes with the same size and same data, e.g. SessionKey and SessionTag, but you wouldn't put them in the same Set, would you?- Overrides:
equals
in classSimpleDataStructure
- Since:
- 0.9.17
-