org.bouncycastle.crypto.tls
Class TlsMac
java.lang.Object
org.bouncycastle.crypto.tls.TlsMac
public class TlsMac
- extends java.lang.Object
A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
Constructor Summary |
TlsMac(TlsContext context,
Digest digest,
byte[] key,
int keyOff,
int keyLen)
Generate a new instance of an TlsMac. |
Method Summary |
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)
|
byte[] |
getMACSecret()
|
int |
getSize()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
context
protected TlsContext context
secret
protected byte[] secret
mac
protected Mac mac
digestBlockSize
protected int digestBlockSize
digestOverhead
protected int digestOverhead
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.len
- The length of the key.
getMACSecret
public byte[] getMACSecret()
- Returns:
- the MAC write secret
getSize
public int getSize()
- Returns:
- The Keysize of the 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)