Package org.bouncycastle.tls.crypto.impl
Class TlsSuiteHMac
java.lang.Object
org.bouncycastle.tls.crypto.impl.TlsSuiteHMac
- All Implemented Interfaces:
TlsSuiteMac
A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
-
Constructor Summary
ConstructorsConstructorDescriptionTlsSuiteHMac(TlsCryptoParameters cryptoParams, TlsHMAC mac) Generate a new instance of a TlsMac. -
Method Summary
Modifier and TypeMethodDescriptionbyte[]calculateMac(long seqNo, short type, byte[] connectionID, byte[] msg, int msgOff, int msgLen) Calculate the MAC for some given data.byte[]calculateMacConstantTime(long seqNo, short type, byte[] connectionID, 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.intgetSize()Return the output length (in bytes) of this MAC.
-
Constructor Details
-
TlsSuiteHMac
Generate a new instance of a TlsMac.- Parameters:
cryptoParams- the TLS client context specific crypto parameters.mac- The MAC to use.
-
-
Method Details
-
getSize
public int getSize()Description copied from interface:TlsSuiteMacReturn the output length (in bytes) of this MAC.- Specified by:
getSizein interfaceTlsSuiteMac- Returns:
- The output length of this MAC.
-
calculateMac
public byte[] calculateMac(long seqNo, short type, byte[] connectionID, byte[] msg, int msgOff, int msgLen) Description copied from interface:TlsSuiteMacCalculate the MAC for some given data.- Specified by:
calculateMacin interfaceTlsSuiteMac- Parameters:
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.- Returns:
- A new byte array containing the MAC value.
-
calculateMacConstantTime
public byte[] calculateMacConstantTime(long seqNo, short type, byte[] connectionID, byte[] msg, int msgOff, int msgLen, int fullLength, byte[] dummyData) Description copied from interface:TlsSuiteMacConstant time calculation of the MAC for some given data with a given expected length.- Specified by:
calculateMacConstantTimein interfaceTlsSuiteMac- Parameters:
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.- Returns:
- A new byte array containing the MAC value.
-