encrypt_block Method
Encrypts data and returns the encrypted block.
Syntax
def encrypt_block(input_buffer: bytes, last_block: bool) -> bytes: ...
Remarks
on_encrypt_block will encrypt the input data and return the encrypted block. The encrypted block will always be the same length as the decrypted data. The following properties are applicable:
InputBuffer specifies the input data to encrypt.
LastBlock specifies whether the block is the last block. Required when use_aead is True. When LastBlock is True the class will calculate the auth_tag value. If use_aead is False the value of LastBlock is not used.
EncryptBlock 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;
byte[] tempEncryptedBlock;
//Encrypt any number of blocks of any size
tempEncryptedBlock = chacha.EncryptBlock(part1, false);
tempEncryptedBlock = chacha.EncryptBlock(part2, false);
//Pass true for the last block
tempEncryptedBlock = chacha.EncryptBlock(part3, true);
//Save AuthTag for use when decrypting
byte[] authTab = chacha.AuthTagB;