newtx/sdk/base/encrypt.h

46 lines
1.0 KiB
C

#pragma once
// Objects for encrypting/decrypting
//
// created on 2023-04-04
#include "data.h"
enum encryptor
{
ENCRYPT_NONE = 0,
ENCRYPT_BASE64,
ENCRYPT_AES,
ENCRYPT_ZIP,
};
enum encrypt_cmd
{
ENCRYPT_CMD_NONE = 0,
ENCRYPT_CMD_XOR_PID, // cmd ^= pack_id
ENCRYPT_CMD_ADD_PID, // cmd += pack_id
ENCRYPT_CMD_SUB_PID, // cmd -= pack_id
};
// Function: encrypting & decrypting packet
//
// Parameters: packet - pointer to the base packet
//
// data - cipher/plain data
//
// size - [in]: bytes of source 'data';
//
// cmd_type - member 'cmd' encrypting method
//
// type - payload encrypting method
//
// enc_data - encrypting data for payload encrypting method
//
// Return: 'cmd' returned on origin packet, and returning value is for payload only. nullptr on failure
//
// NOTE: nullptr also returned if data was nullptr or size was ZERO
//
dyn_mem_ptr packet_encrypt(dyn_mem_ptr packet, uint32_t cmd_type = ENCRYPT_CMD_NONE, uint32_t type = ENCRYPT_NONE, uint8_t enc_data = 0);
dyn_mem_ptr packet_decrypt(dyn_mem_ptr packet);