IPWorks Encrypt 2020 C++ Edition

Questions / Feedback?

EncryptBlock Method

Encrypts data and returns the encrypted block.

Syntax

ANSI (Cross Platform)
char* EncryptBlock(const char* lpInputBuffer, int lenInputBuffer, int *lpSize = NULL);

Unicode (Windows)
LPSTR EncryptBlock(LPCSTR lpInputBuffer, INT lenInputBuffer, LPINT lpSize = NULL);
- (NSData*)encryptBlock:(NSData*)inputBuffer;
#define MID_SALSA20_ENCRYPTBLOCK 6

IPWORKSENCRYPT_EXTERNAL int IPWORKSENCRYPT_CALL IPWorksEncrypt_Salsa20_Do(void *lpObj, int methid, int cparam, void *param[], int cbparam[], int64 *lpllVal);

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.

EncryptBlock Example


Salsa20 salsa = new Salsa20();

//32 Bytes
salsa.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 };

//24 Bytes
salsa.IVB = new byte[] { 0x0D, 0xE4, 0x43, 0x40, 0x29, 0xAD, 0x70, 0x7D, 0x7B, 0x32, 0xB5, 0xC7, 0x0D, 0xE4, 0x43, 0x40, 0x29, 0xAD, 0x70, 0x7D, 0x7B, 0x32, 0xB5, 0xC7 };

byte[] tempEncryptedBlock;
 
//Encrypt any number of blocks of any size
tempEncryptedBlock = salsa.EncryptBlock(part1);
tempEncryptedBlock = salsa.EncryptBlock(part2);

Error Handling (C++)

This method returns a Binary String value (with length lpSize); 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.

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