Package net.i2p.crypto
Class HMACGenerator
java.lang.Object
net.i2p.crypto.HMACGenerator
- Direct Known Subclasses:
HMAC256Generator
,SSUHMACGenerator
Calculate the HMAC of a key+message.
As of 0.9.42, this is just a stub.
See net.i2p.router.transport.udp.SSUHMACGenerator for
the HMAC used in SSU (what was originally this class),
and SHA256Generator for the HMAC used in Syndie.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected byte[]
32 bytes from the byte array cache.abstract void
calculate
(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset) Calculate the HMAC of the data with the given keyprotected void
releaseTmp
(byte[] tmp) abstract 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.
-
Constructor Details
-
HMACGenerator
public HMACGenerator()
-
-
Method Details
-
calculate
public abstract void calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset) Calculate the HMAC of the data with the given key- Parameters:
target
- out parameter the first 16 bytes contain the HMAC, the last 16 bytes are zerotargetOffset
- offset into target to put the hmac- Throws:
IllegalArgumentException
- for bad key or target too small
-
verify
public abstract 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.- Parameters:
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 verify- Throws:
IllegalArgumentException
- for bad key
-
acquireTmp
protected byte[] acquireTmp()32 bytes from the byte array cache. Does NOT zero. -
releaseTmp
protected void releaseTmp(byte[] tmp)
-