/**
  ******************************************************************************
  * @file           : Encryption.cpp
  * @author         : Dream
  * @brief          : None
  * @attention      : None
  * @date           : 24-10-3
  ******************************************************************************
  */

#include "Encryption.hpp"
#include "res/Encrypt.h" // 假设 Encrypt.h 提供了 RC4 加密和解密函数
#include <cstring>

// RC4 加密数据
std::string Encryption::enRc4(const std::string& data, const std::string& key) {
  char* encrypted = Encrypt(data.c_str(), key.c_str());
  if (encrypted == nullptr) {
    return "";
  }
  std::string result(encrypted);
  delete[] encrypted;
  return result;
}

// RC4 解密数据
std::string Encryption::deRc4(const std::string& data, const std::string& key) {
  char* decrypted = Decrypt(data.c_str(), key.c_str());
  if (decrypted == nullptr) {
    return "";
  }
  std::string result(decrypted);
  delete[] decrypted; // 释放
  return result;
}

// RSA 加密数据
std::string Encryption::enRas(const std::string& data, const std::string& key) {
    return  RSA_Encrypt(data, key);
}

// RSA 解密数据
std::string Encryption::deRas(const std::string& data, const std::string& key) {
    return RSA_Decrypt(data, key);
}
