public class JceChaCha20Poly1305 extends java.lang.Object implements TlsAEADCipherImpl
| Modifier and Type | Field and Description |
|---|---|
protected byte[] |
additionalData |
protected javax.crypto.Cipher |
cipher |
protected javax.crypto.SecretKey |
cipherKey |
protected int |
cipherMode |
protected javax.crypto.Mac |
mac |
| Constructor and Description |
|---|
JceChaCha20Poly1305(org.bouncycastle.jcajce.util.JcaJceHelper helper,
boolean isEncrypting) |
| Modifier and Type | Method and Description |
|---|---|
int |
doFinal(byte[] input,
int inputOffset,
int inputLength,
byte[] output,
int outputOffset)
Perform the cipher encryption/decryption returning the output in output.
|
int |
getOutputSize(int inputLength)
Return the maximum size of the output for input of inputLength bytes.
|
void |
init(byte[] nonce,
int macSize,
byte[] additionalData)
Initialise the parameters for the AEAD operator.
|
protected void |
initMAC(byte[] firstBlock) |
protected void |
runCipher(byte[] buf) |
void |
setKey(byte[] key,
int keyOff,
int keyLen)
Set the key to be used by the AEAD cipher implementation supporting this service.
|
protected void |
updateMAC(byte[] buf,
int off,
int len) |
protected final javax.crypto.Cipher cipher
protected final javax.crypto.Mac mac
protected final int cipherMode
protected javax.crypto.SecretKey cipherKey
protected byte[] additionalData
public JceChaCha20Poly1305(org.bouncycastle.jcajce.util.JcaJceHelper helper,
boolean isEncrypting)
throws java.security.GeneralSecurityException
java.security.GeneralSecurityExceptionpublic int doFinal(byte[] input,
int inputOffset,
int inputLength,
byte[] output,
int outputOffset)
throws java.io.IOException
TlsAEADCipherImplNote: we have to use doFinal() here as it is the only way to guarantee output from the underlying cipher.
doFinal in interface TlsAEADCipherImplinput - array holding input data to the cipher.inputOffset - offset into input array data starts at.inputLength - length of the input data in the array.output - array to hold the cipher output.outputOffset - offset into output array to start saving output.java.io.IOException - in case of failure.public int getOutputSize(int inputLength)
TlsAEADCipherImplgetOutputSize in interface TlsAEADCipherImplinputLength - the length (in bytes) of the proposed input.public void init(byte[] nonce,
int macSize,
byte[] additionalData)
throws java.io.IOException
TlsAEADCipherImplinit in interface TlsAEADCipherImplnonce - the nonce.macSize - MAC size in bytes.additionalData - any additional data to be included in the MAC calculation.java.io.IOException - if the parameters are inappropriate.public void setKey(byte[] key,
int keyOff,
int keyLen)
throws java.io.IOException
TlsAEADCipherImplsetKey in interface TlsAEADCipherImplkey - array holding the AEAD cipher key.keyOff - offset into the array the key starts at.keyLen - length of the key in the array.java.io.IOExceptionprotected void initMAC(byte[] firstBlock)
throws java.security.InvalidKeyException
java.security.InvalidKeyExceptionprotected void runCipher(byte[] buf)
throws java.security.GeneralSecurityException
java.security.GeneralSecurityExceptionprotected void updateMAC(byte[] buf,
int off,
int len)