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, which can be used with any kind of Digest to act as an HMAC.


Field Summary
private  HMac mac
           
private  long seqNo
           
 
Constructor Summary
protected TlsMac(Digest digest, byte[] key_block, int offset, int len)
          Generate a new instance of an TlsMac.
 
Method Summary
protected  byte[] calculateMac(short type, byte[] message, int offset, int len)
          Calculate the mac for some given data.
protected  int getSize()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

seqNo

private long seqNo

mac

private HMac mac
Constructor Detail

TlsMac

protected TlsMac(Digest digest,
                 byte[] key_block,
                 int offset,
                 int len)
Generate a new instance of an TlsMac.

Parameters:
digest - The digest to use.
key_block - A byte-array where the key for this mac is located.
offset - The number of bytes to skip, before the key starts in the buffer.
len - The length of the key.
Method Detail

getSize

protected int getSize()
Returns:
The Keysize of the mac.

calculateMac

protected byte[] calculateMac(short type,
                              byte[] message,
                              int offset,
                              int len)
Calculate the mac for some given data.

TlsMac will keep track of the sequence number internally.

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.
len - The length of the message.
Returns:
A new byte-buffer containing the mac value.