Package net.i2p.crypto
Class HMAC256Generator
- java.lang.Object
-
- net.i2p.crypto.HMACGenerator
-
- net.i2p.crypto.HMAC256Generator
-
public final class HMAC256Generator extends HMACGenerator
Calculate the HMAC-SHA256 of a key+message. This is compatible with javax.crypto.Mac.getInstance("HmacSHA256"). As of 0.9.12, uses javax.crypto.Mac. Warning - used by Syndie, don't break it.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
HMAC256Generator.HMACKey
Like SecretKeySpec but doesn't copy the key in the construtor, for speed.
-
Field Summary
-
Fields inherited from class net.i2p.crypto.HMACGenerator
_available
-
-
Constructor Summary
Constructors Constructor Description HMAC256Generator(I2PAppContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected I2PHMac
acquire()
Deprecated.unused (not even by Syndie)void
calculate(byte[] key, byte[] data, int offset, int length, byte[] target, int targetOffset)
Calculate the HMAC of the data with the given key.Hash
calculate(SessionKey key, byte[] data)
Deprecated.unused (not even by Syndie)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 net.i2p.crypto.HMACGenerator
acquireTmp, releaseTmp
-
-
-
-
Constructor Detail
-
HMAC256Generator
public HMAC256Generator(I2PAppContext context)
- Parameters:
context
- unused
-
-
Method Detail
-
acquire
@Deprecated protected I2PHMac acquire()
Deprecated.unused (not even by Syndie)- Overrides:
acquire
in classHMACGenerator
- Throws:
UnsupportedOperationException
- since 0.9.12
-
calculate
@Deprecated public Hash calculate(SessionKey key, byte[] data)
Deprecated.unused (not even by Syndie)Calculate the HMAC of the data with the given key- Overrides:
calculate
in classHMACGenerator
- Returns:
- the first 16 bytes contain the HMAC, the last 16 bytes are zero
- Throws:
UnsupportedOperationException
- always- Since:
- 0.9.12 overrides HMACGenerator
-
calculate
public void calculate(SessionKey key, byte[] data, int offset, int length, byte[] target, int targetOffset)
Calculate the HMAC of the data with the given key. Outputs 32 bytes to target starting at targetOffset.- Overrides:
calculate
in classHMACGenerator
target
- out parameter the first 16 bytes contain the HMAC, the last 16 bytes are zerotargetOffset
- offset into target to put the hmac- Throws:
UnsupportedOperationException
- if the JVM does not support itIllegalArgumentException
- for bad key or target too small- Since:
- 0.9.12 overrides HMACGenerator
-
calculate
public void calculate(byte[] key, byte[] data, int offset, int length, byte[] target, int targetOffset)
Calculate the HMAC of the data with the given key. Outputs 32 bytes to target starting at targetOffset.- Parameters:
key
- first 32 bytes used as the key- Throws:
UnsupportedOperationException
- if the JVM does not support itIllegalArgumentException
- for bad key or target too small- Since:
- 0.9.38
-
verify
public 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.- Overrides:
verify
in classHMACGenerator
- 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, use 32 for HMAC256- Since:
- 0.9.12 overrides HMACGenerator
-
-