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

### Constructor Summary

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

### Method Summary

Methods
`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`

### 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.