public class Hash extends SimpleDataStructure
Hash provides cryptographic hash functionality throughout I2P:
Key Uses:
Performance Features:
Security Properties:
Common Operations:
Constants:
HASH_LENGTH - Standard 32-byte hash sizeFAKE_HASH - All-zero hash for testing/placeholder useThread Safety:
Best Practices:
| Modifier and Type | Field and Description |
|---|---|
static Hash |
FAKE_HASH |
static int |
HASH_LENGTH |
_data| Modifier and Type | Method and Description |
|---|---|
static void |
clearCache()
Clear the hash cache.
|
static Hash |
create(byte[] data)
Pull from cache or return new
WARNING - If the SDS is found in the cache, the passed-in
byte array will be returned to the SimpleByteCache for reuse.
|
static Hash |
create(byte[] data,
int off)
Pull from cache or return new
|
static Hash |
create(InputStream in)
Pull from cache or return new
|
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.
|
String |
toBase32()
For convenience.
|
String |
toBase64()
render the structure into modified base 64 notation
|
calculateHash, equals, fromBase64, fromByteArray, getData, read, toByteArray, toString, writeBytespublic static final Hash FAKE_HASH
public static final int HASH_LENGTH
public Hash()
public Hash(byte[] data)
IllegalArgumentException - if data is not 32 bytes (null is ok)public static void clearCache()
public static Hash create(byte[] data)
IllegalArgumentException - if data is not the correct number of bytespublic static Hash create(byte[] data, int off)
ArrayIndexOutOfBoundsException - if not enough bytespublic static Hash create(InputStream in) throws IOException
IOExceptionpublic int hashCode()
hashCode in class SimpleDataStructurepublic int length()
SimpleDataStructurelength in class SimpleDataStructurepublic void readBytes(InputStream in) throws DataFormatException, IOException
SimpleDataStructurereadBytes in interface DataStructurereadBytes in class SimpleDataStructurein - the stream to readDataFormatException - if the data is improperly formattedIOException - if there was a problem reading the streampublic void setData(byte[] data)
SimpleDataStructuresetData in class SimpleDataStructuredata - of correct length, or nullIllegalArgumentException - if data is not 32 bytes (null is ok)public String toBase32()
public String toBase64()
DataStructuretoBase64 in interface DataStructuretoBase64 in class SimpleDataStructure