IPWorks Encrypt 2020 PHP Edition

Questions / Feedback?

DecryptBlock Method

Decrypts a block and returns the decrypted data.

Object Oriented Interface

public function doDecryptBlock($inputbuffer, $lastblock);

Procedural Interface

ipworksencrypt_chacha_do_decryptblock($res, $inputbuffer, $lastblock);

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:

  • IV (required)
  • Key (required)

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);

Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks Encrypt 2020 PHP Edition - Version 20.0 [Build 8155]