org.bouncycastle.crypto.macs
public class CMac extends Object implements Mac
CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
CMAC is a NIST recomendation - see csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
CMAC/OMAC1 is a blockcipher-based message authentication code designed and analyzed by Tetsu Iwata and Kaoru Kurosawa.
CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message Authentication Code). OMAC stands for One-Key CBC MAC.
It supports 128- or 64-bits block ciphers, with any key size, and returns a MAC with dimension less or equal to the block size of the underlying cipher.
Constructor Summary | |
---|---|
CMac(BlockCipher cipher)
create a standard MAC based on a CBC block cipher (64 or 128 bit block).
| |
CMac(BlockCipher cipher, int macSizeInBits)
create a standard MAC based on a block cipher with the size of the
MAC been given in bits.
|
Method Summary | |
---|---|
int | doFinal(byte[] out, int outOff) |
String | getAlgorithmName() |
int | getMacSize() |
void | init(CipherParameters params) |
void | reset()
Reset the mac generator. |
void | update(byte in) |
void | update(byte[] in, int inOff, int len) |
Parameters: cipher the cipher to be used as the basis of the MAC generation.
Parameters: cipher the cipher to be used as the basis of the MAC generation. macSizeInBits the size of the MAC in bits, must be a multiple of 8 and <= 128.