增加AES

This commit is contained in:
xx
2025-03-14 14:05:32 +08:00
parent 177a9650c8
commit ee2aa5b6d0
2 changed files with 43 additions and 0 deletions

View File

@@ -54,6 +54,45 @@ std::string module::codec::hmac_sha256(const std::string_view& key, const std::s
{
return ylib::codec::hmac_sha256(ylib::buffer(key.data(), key.length()),ylib::buffer(value.data(), value.length())).to_hex();
}
std::string module::codec::aes_encode(const std::string_view& value, const std::string_view& key, const std::string& variant, const std::string& mode)
{
ylib::codec::aes::variant v = ylib::codec::aes::variant::AES256;;
ylib::codec::aes::mode m = ylib::codec::aes::mode::CBC;
if (variant == "aes-256")
v = ylib::codec::aes::variant::AES256;
else if (variant == "aes-192")
v = ylib::codec::aes::variant::AES192;
else if (variant == "aes-128")
v = ylib::codec::aes::variant::AES128;
if (variant == "cbc")
m = ylib::codec::aes::mode::CBC;
else if (variant == "ebc")
m = ylib::codec::aes::mode::ECB;
return ylib::codec::aes::en(ylib::buffer(value.data(), value.length()), ylib::buffer(key.data(), key.length()), v, m).to_hex();
}
std::string module::codec::aes_decode(const std::string_view& value, const std::string_view& key, const std::string& variant, const std::string& mode)
{
ylib::codec::aes::variant v = ylib::codec::aes::variant::AES256;;
ylib::codec::aes::mode m = ylib::codec::aes::mode::CBC;
if (variant == "aes-256")
v = ylib::codec::aes::variant::AES256;
else if (variant == "aes-192")
v = ylib::codec::aes::variant::AES192;
else if (variant == "aes-128")
v = ylib::codec::aes::variant::AES128;
if (variant == "cbc")
m = ylib::codec::aes::mode::CBC;
else if (variant == "ebc")
m = ylib::codec::aes::mode::ECB;
return ylib::codec::aes::de(ylib::buffer(value.data(), value.length()), ylib::buffer(key.data(), key.length()), v, m).to_hex();
}
void module::codec::regist(sol::state* lua)
{
lua->new_usertype<module::codec>("fw_codec",

View File

@@ -34,6 +34,10 @@ namespace module
static std::string sha256(const std::string_view& value);
static std::string hmac_sha256(const std::string_view& key,const std::string_view& value);
static std::string aes_encode(const std::string_view& value, const std::string_view& key, const std::string& variant,const std::string& mode);
static std::string aes_decode(const std::string_view& value,const std::string_view& key, , const std::string& variant, const std::string& mode);
static void regist(sol::state* lua);
};