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 and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
int |
doFinal(byte[] out,
int outOff)
Compute the final stage of the MAC writing the output to the out
parameter.
|
String |
getAlgorithmName()
Return the name of the algorithm the MAC implements.
|
int |
getMacSize()
Return the block size for this MAC (in bytes).
|
void |
init(CipherParameters params)
Initialise the MAC.
|
void |
reset()
Reset the mac generator.
|
void |
update(byte in)
add a single byte to the mac for processing.
|
void |
update(byte[] in,
int inOff,
int len) |
public CMac(BlockCipher cipher)
cipher
- the cipher to be used as the basis of the MAC generation.public CMac(BlockCipher cipher, int macSizeInBits)
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.public String getAlgorithmName()
Mac
getAlgorithmName
in interface Mac
public void init(CipherParameters params)
Mac
public int getMacSize()
Mac
getMacSize
in interface Mac
public void update(byte in)
Mac
public void update(byte[] in, int inOff, int len)
public int doFinal(byte[] out, int outOff)
Mac
doFinal leaves the MAC in the same state it was after the last init.
Copyright © 2015. All rights reserved.