DecryptBlock Method
Decrypts a block and returns the decrypted data.
Syntax
QByteArray DecryptBlock(const QByteArray& qbaInputBuffer, bool bLastBlock);
Remarks
DecryptBlock will decrypt the input data and return the decrypted block. The decrypted block will always be the same length as the encrypted data. The following properties are applicable:
InputBuffer specifies the input data to decrypt.
LastBlock specifies whether the block is the last block. Required when UseAEAD is True. When LastBlock is True the class will validate the AuthTag value. If UseAEAD is False the value of LastBlock is not used.
DecryptBlock Example
Chacha chacha = new Chacha();
chacha.KeyB = new byte[] { 0xBB, 0x76, 0x17, 0xC9, 0x05, 0x73, 0x4A, 0x8D, 0x59, 0x9D, 0x7B, 0x0D, 0x86, 0x2A, 0x03, 0x82, 0x50, 0x6A, 0x70, 0xFB, 0xA8, 0x56, 0x47, 0x1B, 0x1E, 0x68, 0x0B, 0x2B, 0x34, 0x18, 0x0F, 0xE2 };
chacha.IVB = new byte[] { 0x0D, 0xE4, 0x43, 0x40, 0x29, 0xAD, 0x70, 0x7D, 0x7B, 0x32, 0xB5, 0xC7 };
chacha.UseAEAD = true;
cahcha.AuthTagB = authTag; //Value calculated during encryption.
byte[] tempDecryptedBlock;
//Decrypt any number of blocks of any size
tempDecryptedBlock = chacha.DecryptBlock(part1, false);
tempDecryptedBlock = chacha.DecryptBlock(part2, false);
//Pass true for the last block
tempDecryptedBlock = chacha.DecryptBlock(part3, true);
Error Handling
This method returns a Binary String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.