|
Bouncy Castle Cryptography 1.48 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.bouncycastle.crypto.macs.CMac
public class CMac
CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
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)
Compute the final stage of the MAC writing the output to the out parameter. |
java.lang.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)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
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.Method Detail |
---|
public java.lang.String getAlgorithmName()
Mac
getAlgorithmName
in interface Mac
public void init(CipherParameters params)
Mac
init
in interface Mac
params
- the key and other data required by the MAC.public int getMacSize()
Mac
getMacSize
in interface Mac
public void update(byte in)
Mac
update
in interface Mac
in
- the byte to be processed.public void update(byte[] in, int inOff, int len)
update
in interface Mac
in
- the array containing the input.inOff
- the index in the array the data begins at.len
- the length of the input starting at inOff.public int doFinal(byte[] out, int outOff)
Mac
doFinal leaves the MAC in the same state it was after the last init.
doFinal
in interface Mac
out
- the array the MAC is to be output to.outOff
- the offset into the out buffer the output is to start at.public void reset()
reset
in interface Mac
|
Bouncy Castle Cryptography 1.48 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |