|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.i2p.crypto.HMACGenerator
public class HMACGenerator
Calculate the HMAC-MD5-128 of a key+message. All the good stuff occurs
in I2PHMac
and
MD5Digest
.
Keys are always 32 bytes.
This is used only by UDP.
Use deprecated outside the router, this may move to router.jar.
NOTE THIS IS NOT COMPATIBLE with javax.crypto.Mac.getInstance("HmacMD5")
as we tell I2PHMac that the digest length is 32 bytes, so it generates
a different result.
Quote jrandom:
"The HMAC is hardcoded to use SHA256 digest size
for backwards compatability. next time we have a backwards
incompatible change, we should update this."
Does this mean he intended it to be compatible with MD5?
See also 2005-07-05 status notes.
Field Summary | |
---|---|
protected LinkedBlockingQueue<I2PHMac> |
_available
set of available HMAC instances for calculate |
Constructor Summary | |
---|---|
HMACGenerator(I2PAppContext context)
|
Method Summary | |
---|---|
protected I2PHMac |
acquire()
|
Hash |
calculate(SessionKey key,
byte[] data)
Deprecated. unused |
void |
calculate(SessionKey key,
byte[] data,
int offset,
int length,
byte[] target,
int targetOffset)
Calculate the HMAC of the data with the given key |
boolean |
verify(SessionKey key,
byte[] curData,
int curOffset,
int curLength,
byte[] origMAC,
int origMACOffset,
int origMACLength)
Verify the MAC inline, reducing some unnecessary memory churn. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final LinkedBlockingQueue<I2PHMac> _available
Constructor Detail |
---|
public HMACGenerator(I2PAppContext context)
context
- unusedMethod Detail |
---|
public Hash calculate(SessionKey key, byte[] data)
public void calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset)
public boolean verify(SessionKey key, byte[] curData, int curOffset, int curLength, byte[] origMAC, int origMACOffset, int origMACLength)
key
- session key to verify the MAC withcurData
- MAC to verifycurOffset
- index into curData to MACcurLength
- how much data in curData do we want to run the HMAC overorigMAC
- what do we expect the MAC of curData to equalorigMACOffset
- index into origMACorigMACLength
- how much of the MAC do we want to verifyprotected I2PHMac acquire()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |