Bouncy Castle Cryptography Library 1.49

org.bouncycastle.crypto.tls
Class TlsMac

java.lang.Object
  extended by 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.


Field Summary
protected  TlsContext context
           
protected  int digestBlockSize
           
protected  int digestOverhead
           
protected  Mac mac
           
protected  byte[] secret
           
 
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
 

Field Detail

context

protected TlsContext context

secret

protected byte[] secret

mac

protected Mac mac

digestBlockSize

protected int digestBlockSize

digestOverhead

protected int digestOverhead
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 context
digest - 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.
Method Detail

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)

Bouncy Castle Cryptography Library 1.49