Package org.bouncycastle.crypto.tls
Class TlsMac
- java.lang.Object
-
- org.bouncycastle.crypto.tls.TlsMac
-
public class TlsMac extends java.lang.ObjectA generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
-
-
Field Summary
Fields Modifier and Type Field Description protected TlsContextcontextprotected intdigestBlockSizeprotected intdigestOverheadprotected Macmacprotected intmacLengthprotected byte[]secret
-
Constructor Summary
Constructors Constructor Description TlsMac(TlsContext context, Digest digest, byte[] key, int keyOff, int keyLen)Generate a new instance of an TlsMac.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]calculateMac(long seqNo, short type, byte[] message, int offset, int length)Calculate the MAC for some given data.byte[]calculateMacConstantTime(long seqNo, short type, byte[] message, int offset, int length, int fullLength, byte[] dummyData)protected intgetDigestBlockCount(int inputLength)byte[]getMACSecret()intgetSize()protected byte[]truncate(byte[] bs)
-
-
-
Field Detail
-
context
protected TlsContext context
-
secret
protected byte[] secret
-
mac
protected Mac mac
-
digestBlockSize
protected int digestBlockSize
-
digestOverhead
protected int digestOverhead
-
macLength
protected int macLength
-
-
Constructor Detail
-
TlsMac
public TlsMac(TlsContext context, Digest digest, byte[] key, int keyOff, int keyLen)
Generate a new instance of an TlsMac.- Parameters:
context- the TLS client contextdigest- The digest to use.key- A byte-array where the key for this MAC is located.keyOff- The number of bytes to skip, before the key starts in the buffer.keyLen- The length of the key.
-
-
Method Detail
-
getMACSecret
public byte[] getMACSecret()
- Returns:
- the MAC write secret
-
getSize
public int getSize()
- Returns:
- The output length of this MAC.
-
calculateMac
public byte[] calculateMac(long seqNo, short type, byte[] message, int offset, int length)Calculate the MAC for some given data.- Parameters:
type- The message type of the message.message- A byte-buffer containing the message.offset- The number of bytes to skip, before the message starts.length- The length of the message.- Returns:
- A new byte-buffer containing the MAC value.
-
calculateMacConstantTime
public byte[] calculateMacConstantTime(long seqNo, short type, byte[] message, int offset, int length, int fullLength, byte[] dummyData)
-
getDigestBlockCount
protected int getDigestBlockCount(int inputLength)
-
truncate
protected byte[] truncate(byte[] bs)
-
-