51 const byte inKey[CHACHA20_POLY1305_AEAD_KEYSIZE],
52 const byte inIV[CHACHA20_POLY1305_AEAD_IV_SIZE],
53 const byte* inAAD,
const word32 inAADLen,
54 const byte* inPlaintext,
const word32 inPlaintextLen,
56 byte outAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE]);
115 const byte inKey[CHACHA20_POLY1305_AEAD_KEYSIZE],
116 const byte inIV[CHACHA20_POLY1305_AEAD_IV_SIZE],
117 const byte* inAAD,
const word32 inAADLen,
118 const byte* inCiphertext,
const word32 inCiphertextLen,
119 const byte inAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE],
int wc_ChaCha20Poly1305_Encrypt(const byte inKey[CHACHA20_POLY1305_AEAD_KEYSIZE], const byte inIV[CHACHA20_POLY1305_AEAD_IV_SIZE], const byte *inAAD, const word32 inAADLen, const byte *inPlaintext, const word32 inPlaintextLen, byte *outCiphertext, byte outAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE])
This function encrypts an input message, inPlaintext, using the ChaCha20 stream cipher, into the output buffer, outCiphertext. It also performs Poly-1305 authentication (on the cipher text), and stores the generated authentication tag in the output buffer, outAuthTag.
int wc_ChaCha20Poly1305_Decrypt(const byte inKey[CHACHA20_POLY1305_AEAD_KEYSIZE], const byte inIV[CHACHA20_POLY1305_AEAD_IV_SIZE], const byte *inAAD, const word32 inAADLen, const byte *inCiphertext, const word32 inCiphertextLen, const byte inAuthTag[CHACHA20_POLY1305_AEAD_AUTHTAG_SIZE], byte *outPlaintext)
This function decrypts input ciphertext, inCiphertext, using the ChaCha20 stream cipher, into the output buffer, outPlaintext. It also performs Poly-1305 authentication, comparing the given inAuthTag to an authentication generated with the inAAD (arbitrary length additional authentication data). Note: If the generated authentication tag does not match the supplied authentication tag, the text is not decrypted.