IPWorks Encrypt 2020 Node.js Edition

Questions / Feedback?

EncryptBlock Method

Encrypts data and returns the encrypted block.

Syntax

chacha.encryptBlock(inputBuffer_Buffer, lastBlock, [callback])

Callback

The 'callback' parameter specifies a function which will be called when the operation completes (or an error is encountered). If the 'callback' parameter is not specified, then the method will block and will not return until the operation completes (or an error is encountered).

The callback for this method is defined as:

function(err, buffer){ }

'err' is the error that occurred. If there was no error, then 'err' is 'null'.

'buffer' is the value returned by the method.

'err' has 2 properties which hold detailed information:

err.code
err.message

Remarks

EncryptBlock 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:

  • IV (required)
  • Key (required)

InputBuffer specifies the input data to encrypt.

LastBlock specifies whether the block is the last block. Required when UseAEAD is True. When LastBlock is True the class will calculate the AuthTag value. If UseAEAD 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;

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