public class TlsSuiteHMac extends java.lang.Object implements TlsSuiteMac
Modifier and Type | Field and Description |
---|---|
protected TlsCryptoParameters |
cryptoParams |
protected int |
digestBlockSize |
protected int |
digestOverhead |
protected TlsHMAC |
mac |
protected int |
macSize |
Constructor and Description |
---|
TlsSuiteHMac(TlsCryptoParameters cryptoParams,
TlsHMAC mac)
Generate a new instance of a TlsMac.
|
Modifier and Type | Method and Description |
---|---|
byte[] |
calculateMac(long seqNo,
short type,
byte[] msg,
int msgOff,
int msgLen)
Calculate the MAC for some given data.
|
byte[] |
calculateMacConstantTime(long seqNo,
short type,
byte[] msg,
int msgOff,
int msgLen,
int fullLength,
byte[] dummyData)
Constant time calculation of the MAC for some given data with a given expected length.
|
protected int |
getDigestBlockCount(int inputLength) |
protected static int |
getMacSize(TlsCryptoParameters cryptoParams,
TlsMAC mac) |
int |
getSize()
Return the output length (in bytes) of this MAC.
|
protected byte[] |
truncate(byte[] bs) |
protected final TlsCryptoParameters cryptoParams
protected final TlsHMAC mac
protected final int digestBlockSize
protected final int digestOverhead
protected final int macSize
public TlsSuiteHMac(TlsCryptoParameters cryptoParams, TlsHMAC mac)
cryptoParams
- the TLS client context specific crypto parameters.mac
- The MAC to use.protected static int getMacSize(TlsCryptoParameters cryptoParams, TlsMAC mac)
public int getSize()
TlsSuiteMac
getSize
in interface TlsSuiteMac
public byte[] calculateMac(long seqNo, short type, byte[] msg, int msgOff, int msgLen)
TlsSuiteMac
calculateMac
in interface TlsSuiteMac
seqNo
- The sequence number of the record.type
- The content type of the message.msg
- A byte array containing the message.msgOff
- The number of bytes to skip, before the message starts.msgLen
- The length of the message.public byte[] calculateMacConstantTime(long seqNo, short type, byte[] msg, int msgOff, int msgLen, int fullLength, byte[] dummyData)
TlsSuiteMac
calculateMacConstantTime
in interface TlsSuiteMac
seqNo
- The sequence number of the record.type
- The content type of the message.msg
- A byte array containing the message.msgOff
- The number of bytes to skip, before the message starts.msgLen
- The length of the message.fullLength
- The expected length of the full message.dummyData
- Random data for padding out the MAC calculation if required.protected int getDigestBlockCount(int inputLength)
protected byte[] truncate(byte[] bs)