|
Bouncy Castle Cryptography Library 1.82 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.bouncycastle.crypto.macs.Poly1305
Poly1305 message authentication code, designed by D. J. Bernstein.
Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106 effective key bits) used in the authenticator.
The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation by Andrew M (@floodyberry).
Poly1305KeyGenerator| Constructor Summary | |
Poly1305()
Constructs a Poly1305 MAC, where the key passed to init() will be used directly. |
|
Poly1305(BlockCipher cipher)
Constructs a Poly1305 MAC, using a 128 bit block cipher. |
|
| 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)
Initialises the Poly1305 MAC. |
void |
reset()
Reset the MAC. |
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 Poly1305()
public Poly1305(BlockCipher cipher)
| Method Detail |
public void init(CipherParameters params)
throws java.lang.IllegalArgumentException
init in interface Macparams - if used with a block cipher, then a ParametersWithIV containing a 128 bit
nonce and a KeyParameter with a 256 bit key complying to the
Poly1305 key format, otherwise just the
KeyParameter.
java.lang.IllegalArgumentException - if the params argument is
inappropriate.public java.lang.String getAlgorithmName()
Mac
getAlgorithmName in interface Macpublic int getMacSize()
Mac
getMacSize in interface Mac
public void update(byte in)
throws java.lang.IllegalStateException
Mac
update in interface Macin - the byte to be processed.
java.lang.IllegalStateException - if the MAC is not initialised.
public void update(byte[] in,
int inOff,
int len)
throws DataLengthException,
java.lang.IllegalStateException
update in interface Macin - the array containing the input.inOff - the index in the array the data begins at.len - the length of the input starting at inOff.
java.lang.IllegalStateException - if the MAC is not initialised.
DataLengthException - if there isn't enough data in in.
public int doFinal(byte[] out,
int outOff)
throws DataLengthException,
java.lang.IllegalStateException
MacdoFinal leaves the MAC in the same state it was after the last init.
doFinal in interface Macout - the array the MAC is to be output to.outOff - the offset into the out buffer the output is to start at.
DataLengthException - if there isn't enough space in out.
java.lang.IllegalStateException - if the MAC is not initialised.public void reset()
Mac
reset in interface Mac
|
Bouncy Castle Cryptography Library 1.82 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||