xx 1 年間 前
コミット
6080521822
2 ファイル変更43 行追加0 行削除
  1. 39 0
      src/module/codec.cpp
  2. 4 0
      src/module/codec.h

+ 39 - 0
src/module/codec.cpp

@@ -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",

+ 4 - 0
src/module/codec.h

@@ -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);
 	};