46 lines
1.0 KiB
C
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);
|