Revert "[fix](function) fix AES/SM3/SM4 encrypt/ decrypt algorithm initialization vector bug (#17420)" (#17887)
This reverts commit 397cc011c4f1ba5a25c770258c13f1cd3f28b47d.
This commit is contained in:
@ -154,8 +154,7 @@ void exectue_result(std::vector<const ColumnString::Offsets*>& offsets_list,
|
||||
template <typename Impl, EncryptionMode mode, bool is_encrypt>
|
||||
struct EncryptionAndDecryptTwoImpl {
|
||||
static DataTypes get_variadic_argument_types_impl() {
|
||||
return {std::make_shared<DataTypeString>(), std::make_shared<DataTypeString>(),
|
||||
std::make_shared<DataTypeString>()};
|
||||
return {std::make_shared<DataTypeString>(), std::make_shared<DataTypeString>()};
|
||||
}
|
||||
|
||||
static Status vector_vector(std::vector<const ColumnString::Offsets*>& offsets_list,
|
||||
@ -168,17 +167,6 @@ struct EncryptionAndDecryptTwoImpl {
|
||||
continue;
|
||||
}
|
||||
EncryptionMode encryption_mode = mode;
|
||||
int mode_size = (*offsets_list[2])[i] - (*offsets_list[2])[i - 1];
|
||||
const auto mode_raw =
|
||||
reinterpret_cast<const char*>(&(*chars_list[2])[(*offsets_list[2])[i - 1]]);
|
||||
if (mode_size != 0) {
|
||||
std::string mode_str(mode_raw, mode_size);
|
||||
if (aes_mode_map.count(mode_str) == 0) {
|
||||
StringOP::push_null_string(i, result_data, result_offset, null_map);
|
||||
continue;
|
||||
}
|
||||
encryption_mode = aes_mode_map.at(mode_str);
|
||||
}
|
||||
exectue_result<Impl, is_encrypt>(offsets_list, chars_list, i, encryption_mode, nullptr,
|
||||
0, result_data, result_offset, null_map);
|
||||
}
|
||||
|
||||
@ -676,9 +676,8 @@ TEST(function_string_test, function_sm3sum_test) {
|
||||
TEST(function_string_test, function_aes_encrypt_test) {
|
||||
std::string func_name = "aes_encrypt";
|
||||
{
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String, TypeIndex::String};
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String};
|
||||
|
||||
const char* mode = "AES_128_ECB";
|
||||
const char* key = "doris";
|
||||
const char* src[6] = {"aaaaaa", "bbbbbb", "cccccc", "dddddd", "eeeeee", ""};
|
||||
std::string r[5];
|
||||
@ -693,13 +692,13 @@ TEST(function_string_test, function_aes_encrypt_test) {
|
||||
r[i] = std::string(p, outlen);
|
||||
}
|
||||
|
||||
DataSet data_set = {{{std::string(src[0]), std::string(key), std::string(mode)}, r[0]},
|
||||
{{std::string(src[1]), std::string(key), std::string(mode)}, r[1]},
|
||||
{{std::string(src[2]), std::string(key), std::string(mode)}, r[2]},
|
||||
{{std::string(src[3]), std::string(key), std::string(mode)}, r[3]},
|
||||
{{std::string(src[4]), std::string(key), std::string(mode)}, r[4]},
|
||||
{{std::string(src[5]), std::string(key), std::string(mode)}, Null()},
|
||||
{{Null(), std::string(key), std::string(mode)}, Null()}};
|
||||
DataSet data_set = {{{std::string(src[0]), std::string(key)}, r[0]},
|
||||
{{std::string(src[1]), std::string(key)}, r[1]},
|
||||
{{std::string(src[2]), std::string(key)}, r[2]},
|
||||
{{std::string(src[3]), std::string(key)}, r[3]},
|
||||
{{std::string(src[4]), std::string(key)}, r[4]},
|
||||
{{std::string(src[5]), std::string(key)}, Null()},
|
||||
{{Null(), std::string(key)}, Null()}};
|
||||
|
||||
check_function<DataTypeString, true>(func_name, input_types, data_set);
|
||||
}
|
||||
@ -744,9 +743,8 @@ TEST(function_string_test, function_aes_encrypt_test) {
|
||||
TEST(function_string_test, function_aes_decrypt_test) {
|
||||
std::string func_name = "aes_decrypt";
|
||||
{
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String, TypeIndex::String};
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String};
|
||||
|
||||
const char* mode = "AES_128_ECB";
|
||||
const char* key = "doris";
|
||||
const char* src[5] = {"aaaaaa", "bbbbbb", "cccccc", "dddddd", "eeeeee"};
|
||||
std::string r[5];
|
||||
@ -761,12 +759,12 @@ TEST(function_string_test, function_aes_decrypt_test) {
|
||||
r[i] = std::string(p, outlen);
|
||||
}
|
||||
|
||||
DataSet data_set = {{{r[0], std::string(key), std::string(mode)}, std::string(src[0])},
|
||||
{{r[1], std::string(key), std::string(mode)}, std::string(src[1])},
|
||||
{{r[2], std::string(key), std::string(mode)}, std::string(src[2])},
|
||||
{{r[3], std::string(key), std::string(mode)}, std::string(src[3])},
|
||||
{{r[4], std::string(key), std::string(mode)}, std::string(src[4])},
|
||||
{{Null(), std::string(key), std::string(mode)}, Null()}};
|
||||
DataSet data_set = {{{r[0], std::string(key)}, std::string(src[0])},
|
||||
{{r[1], std::string(key)}, std::string(src[1])},
|
||||
{{r[2], std::string(key)}, std::string(src[2])},
|
||||
{{r[3], std::string(key)}, std::string(src[3])},
|
||||
{{r[4], std::string(key)}, std::string(src[4])},
|
||||
{{Null(), std::string(key)}, Null()}};
|
||||
|
||||
check_function<DataTypeString, true>(func_name, input_types, data_set);
|
||||
}
|
||||
@ -808,39 +806,29 @@ TEST(function_string_test, function_aes_decrypt_test) {
|
||||
TEST(function_string_test, function_sm4_encrypt_test) {
|
||||
std::string func_name = "sm4_encrypt";
|
||||
{
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String, TypeIndex::String,
|
||||
TypeIndex::String};
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String};
|
||||
|
||||
const char* key = "doris";
|
||||
const char* iv = "0123456789abcdef";
|
||||
const char* mode = "SM4_128_ECB";
|
||||
const char* src[6] = {"aaaaaa", "bbbbbb", "cccccc", "dddddd", "eeeeee", ""};
|
||||
std::string r[5];
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int cipher_len = strlen(src[i]) + 16;
|
||||
char p[cipher_len];
|
||||
int iv_len = 32;
|
||||
std::unique_ptr<char[]> init_vec;
|
||||
init_vec.reset(new char[iv_len]);
|
||||
std::memset(init_vec.get(), 0, strlen(iv) + 1);
|
||||
memcpy(init_vec.get(), iv, strlen(iv));
|
||||
int outlen =
|
||||
EncryptionUtil::encrypt(EncryptionMode::SM4_128_ECB, (unsigned char*)src[i],
|
||||
strlen(src[i]), (unsigned char*)key, strlen(key),
|
||||
init_vec.get(), strlen(iv), true, (unsigned char*)p);
|
||||
|
||||
int outlen = EncryptionUtil::encrypt(
|
||||
EncryptionMode::SM4_128_ECB, (unsigned char*)src[i], strlen(src[i]),
|
||||
(unsigned char*)key, strlen(key), nullptr, 0, true, (unsigned char*)p);
|
||||
r[i] = std::string(p, outlen);
|
||||
}
|
||||
|
||||
DataSet data_set = {
|
||||
{{std::string(src[0]), std::string(key), std::string(iv), std::string(mode)}, r[0]},
|
||||
{{std::string(src[1]), std::string(key), std::string(iv), std::string(mode)}, r[1]},
|
||||
{{std::string(src[2]), std::string(key), std::string(iv), std::string(mode)}, r[2]},
|
||||
{{std::string(src[3]), std::string(key), std::string(iv), std::string(mode)}, r[3]},
|
||||
{{std::string(src[4]), std::string(key), std::string(iv), std::string(mode)}, r[4]},
|
||||
{{std::string(src[5]), std::string(key), std::string(iv), std::string(mode)},
|
||||
Null()},
|
||||
{{Null(), std::string(key), std::string(iv), std::string(mode)}, Null()}};
|
||||
DataSet data_set = {{{std::string(src[0]), std::string(key)}, r[0]},
|
||||
{{std::string(src[1]), std::string(key)}, r[1]},
|
||||
{{std::string(src[2]), std::string(key)}, r[2]},
|
||||
{{std::string(src[3]), std::string(key)}, r[3]},
|
||||
{{std::string(src[4]), std::string(key)}, r[4]},
|
||||
{{std::string(src[5]), std::string(key)}, Null()},
|
||||
{{Null(), std::string(key)}, Null()}};
|
||||
|
||||
check_function<DataTypeString, true>(func_name, input_types, data_set);
|
||||
}
|
||||
@ -887,37 +875,28 @@ TEST(function_string_test, function_sm4_encrypt_test) {
|
||||
TEST(function_string_test, function_sm4_decrypt_test) {
|
||||
std::string func_name = "sm4_decrypt";
|
||||
{
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String, TypeIndex::String,
|
||||
TypeIndex::String};
|
||||
InputTypeSet input_types = {TypeIndex::String, TypeIndex::String};
|
||||
|
||||
const char* key = "doris";
|
||||
const char* iv = "0123456789abcdef";
|
||||
const char* mode = "SM4_128_ECB";
|
||||
const char* src[5] = {"aaaaaa", "bbbbbb", "cccccc", "dddddd", "eeeeee"};
|
||||
std::string r[5];
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
int cipher_len = strlen(src[i]) + 16;
|
||||
char p[cipher_len];
|
||||
int iv_len = 32;
|
||||
std::unique_ptr<char[]> init_vec;
|
||||
init_vec.reset(new char[iv_len]);
|
||||
std::memset(init_vec.get(), 0, strlen(iv) + 1);
|
||||
memcpy(init_vec.get(), iv, strlen(iv));
|
||||
int outlen =
|
||||
EncryptionUtil::encrypt(EncryptionMode::SM4_128_ECB, (unsigned char*)src[i],
|
||||
strlen(src[i]), (unsigned char*)key, strlen(key),
|
||||
init_vec.get(), strlen(iv), true, (unsigned char*)p);
|
||||
|
||||
int outlen = EncryptionUtil::encrypt(
|
||||
EncryptionMode::SM4_128_ECB, (unsigned char*)src[i], strlen(src[i]),
|
||||
(unsigned char*)key, strlen(key), nullptr, 0, true, (unsigned char*)p);
|
||||
r[i] = std::string(p, outlen);
|
||||
}
|
||||
|
||||
DataSet data_set = {
|
||||
{{r[0], std::string(key), std::string(iv), std::string(mode)}, std::string(src[0])},
|
||||
{{r[1], std::string(key), std::string(iv), std::string(mode)}, std::string(src[1])},
|
||||
{{r[2], std::string(key), std::string(iv), std::string(mode)}, std::string(src[2])},
|
||||
{{r[3], std::string(key), std::string(iv), std::string(mode)}, std::string(src[3])},
|
||||
{{r[4], std::string(key), std::string(iv), std::string(mode)}, std::string(src[4])},
|
||||
{{Null(), std::string(key), std::string(iv), std::string(mode)}, Null()}};
|
||||
DataSet data_set = {{{r[0], std::string(key)}, std::string(src[0])},
|
||||
{{r[1], std::string(key)}, std::string(src[1])},
|
||||
{{r[2], std::string(key)}, std::string(src[2])},
|
||||
{{r[3], std::string(key)}, std::string(src[3])},
|
||||
{{r[4], std::string(key)}, std::string(src[4])},
|
||||
{{Null(), std::string(key)}, Null()}};
|
||||
|
||||
check_function<DataTypeString, true>(func_name, input_types, data_set);
|
||||
}
|
||||
|
||||
@ -31,7 +31,6 @@ AES_ENCRYPT
|
||||
### description
|
||||
|
||||
Encryption of data using the OpenSSL. This function is consistent with the `AES_ENCRYPT` function in MySQL. Using AES_128_ECB algorithm by default, and the padding mode is PKCS7.
|
||||
Reference: https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_aes-decrypt
|
||||
|
||||
#### Syntax
|
||||
|
||||
@ -43,7 +42,7 @@ AES_ENCRYPT(str,key_str[,init_vector])
|
||||
|
||||
- `str`: Content to be encrypted
|
||||
- `key_str`: Secret key
|
||||
- `init_vector`: Initialization Vector. The default value for the block_encryption_mode system variable is aes ecb mode, which does not require an initialization vector. The alternative permitted block encryption modes CBC, CFB1, CFB8, CFB128, and OFB all require an initialization vector.
|
||||
- `init_vector`: Initialization Vector
|
||||
|
||||
#### Return Type
|
||||
|
||||
|
||||
@ -31,7 +31,6 @@ AES_ENCRYPT
|
||||
### Description
|
||||
|
||||
Aes 加密函数。该函数与 MySQL 中的 `AES_ENCRYPT` 函数行为一致。默认采用 AES_128_ECB 算法,padding 模式为 PKCS7。底层使用 OpenSSL 库进行加密。
|
||||
Reference: https://dev.mysql.com/doc/refman/8.0/en/encryption-functions.html#function_aes-decrypt
|
||||
|
||||
#### Syntax
|
||||
|
||||
@ -43,7 +42,7 @@ AES_ENCRYPT(str,key_str[,init_vector])
|
||||
|
||||
- `str`: 待加密的内容
|
||||
- `key_str`: 密钥
|
||||
- `init_vector`: 初始向量。block_encryption_mode 默认值为 aes-128-ecb,它不需要初始向量,可选的块加密模式 CBC、CFB1、CFB8、CFB128 和 OFB 都需要一个初始向量。
|
||||
- `init_vector`: 初始向量
|
||||
|
||||
#### Return Type
|
||||
|
||||
|
||||
@ -954,7 +954,7 @@ public class FunctionCallExpr extends Expr {
|
||||
|| fnName.getFunction().equalsIgnoreCase("aes_encrypt")
|
||||
|| fnName.getFunction().equalsIgnoreCase("sm4_decrypt")
|
||||
|| fnName.getFunction().equalsIgnoreCase("sm4_encrypt"))
|
||||
&& (children.size() == 2 || children.size() == 3)) {
|
||||
&& children.size() == 3) {
|
||||
String blockEncryptionMode = "";
|
||||
Set<String> aesModes = new HashSet<>(Arrays.asList(
|
||||
"AES_128_ECB",
|
||||
@ -1000,12 +1000,6 @@ public class FunctionCallExpr extends Expr {
|
||||
throw new AnalysisException("session variable block_encryption_mode is invalid with aes");
|
||||
|
||||
}
|
||||
if (children.size() == 2 && !blockEncryptionMode.toUpperCase().equals("AES_128_ECB")
|
||||
&& !blockEncryptionMode.toUpperCase().equals("AES_192_ECB")
|
||||
&& !blockEncryptionMode.toUpperCase().equals("AES_256_ECB")) {
|
||||
throw new AnalysisException("Incorrect parameter count in the call to native function "
|
||||
+ "'aes_encrypt' or 'aes_decrypt'");
|
||||
}
|
||||
}
|
||||
if (fnName.getFunction().equalsIgnoreCase("sm4_decrypt")
|
||||
|| fnName.getFunction().equalsIgnoreCase("sm4_encrypt")) {
|
||||
@ -1016,10 +1010,6 @@ public class FunctionCallExpr extends Expr {
|
||||
throw new AnalysisException("session variable block_encryption_mode is invalid with sm4");
|
||||
|
||||
}
|
||||
if (children.size() == 2) {
|
||||
throw new AnalysisException("Incorrect parameter count in the call to native function "
|
||||
+ "'sm4_encrypt' or 'sm4_decrypt'");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!blockEncryptionMode.equals(children.get(children.size() - 1))) {
|
||||
|
||||
@ -107,7 +107,7 @@ public class FunctionBuilder {
|
||||
})
|
||||
.collect(Collectors.joining(", ", "(", ")"));
|
||||
throw new IllegalStateException("Can not build function: '" + name
|
||||
+ "', expression: " + name + argString + ", " + t.getCause().getMessage(), t);
|
||||
+ "', expression: " + name + argString, t);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -54,18 +54,8 @@ public class AesDecrypt extends AesCryptoFunction {
|
||||
.args(StringType.INSTANCE, StringType.INSTANCE, StringType.INSTANCE, StringType.INSTANCE)
|
||||
);
|
||||
|
||||
/**
|
||||
* Some javadoc for checkstyle...
|
||||
*/
|
||||
public AesDecrypt(Expression arg0, Expression arg1) {
|
||||
super("aes_decrypt", arg0, arg1, getDefaultBlockEncryptionMode());
|
||||
String blockEncryptionMode = String.valueOf(getDefaultBlockEncryptionMode());
|
||||
if (!blockEncryptionMode.toUpperCase().equals("'AES_128_ECB'")
|
||||
&& !blockEncryptionMode.toUpperCase().equals("'AES_192_ECB'")
|
||||
&& !blockEncryptionMode.toUpperCase().equals("'AES_256_ECB'")) {
|
||||
throw new AnalysisException("Incorrect parameter count in the call to native function "
|
||||
+ "'aes_encrypt' or 'aes_decrypt'");
|
||||
}
|
||||
super("aes_decrypt", arg0, arg1);
|
||||
}
|
||||
|
||||
public AesDecrypt(Expression arg0, Expression arg1, Expression arg2) {
|
||||
|
||||
@ -54,18 +54,8 @@ public class AesEncrypt extends AesCryptoFunction {
|
||||
.args(StringType.INSTANCE, StringType.INSTANCE, StringType.INSTANCE, StringType.INSTANCE)
|
||||
);
|
||||
|
||||
/**
|
||||
* Some javadoc for checkstyle...
|
||||
*/
|
||||
public AesEncrypt(Expression arg0, Expression arg1) {
|
||||
super("aes_encrypt", arg0, arg1, getDefaultBlockEncryptionMode());
|
||||
String blockEncryptionMode = String.valueOf(getDefaultBlockEncryptionMode());
|
||||
if (!blockEncryptionMode.toUpperCase().equals("'AES_128_ECB'")
|
||||
&& !blockEncryptionMode.toUpperCase().equals("'AES_192_ECB'")
|
||||
&& !blockEncryptionMode.toUpperCase().equals("'AES_256_ECB'")) {
|
||||
throw new AnalysisException("Incorrect parameter count in the call to native function "
|
||||
+ "'aes_encrypt' or 'aes_decrypt'");
|
||||
}
|
||||
super("aes_encrypt", arg0, arg1);
|
||||
}
|
||||
|
||||
public AesEncrypt(Expression arg0, Expression arg1, Expression arg2) {
|
||||
|
||||
@ -64,8 +64,6 @@ public class Sm4Decrypt extends Sm4CryptoFunction {
|
||||
*/
|
||||
public Sm4Decrypt(Expression arg0, Expression arg1) {
|
||||
super("sm4_decrypt", arg0, arg1);
|
||||
throw new AnalysisException("Incorrect parameter count in the call to native function "
|
||||
+ "'sm4_encrypt' or 'sm4_decrypt'");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -59,8 +59,6 @@ public class Sm4Encrypt extends Sm4CryptoFunction {
|
||||
*/
|
||||
public Sm4Encrypt(Expression arg0, Expression arg1) {
|
||||
super("sm4_encrypt", arg0, arg1);
|
||||
throw new AnalysisException("Incorrect parameter count in the call to native function "
|
||||
+ "'sm4_encrypt' or 'sm4_decrypt'");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1588,21 +1588,21 @@ visible_functions = [
|
||||
[['murmur_hash3_64'], 'BIGINT', ['STRING', '...'], ''],
|
||||
|
||||
# aes and base64 function
|
||||
[['aes_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['from_base64'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_encrypt'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_decrypt'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['aes_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_encrypt'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_decrypt'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['sm4_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'],
|
||||
[['from_base64'], 'STRING', ['STRING'], 'ALWAYS_NULLABLE'],
|
||||
|
||||
@ -2,44 +2,77 @@
|
||||
-- !sql --
|
||||
wr2JEDVXzL9+2XtRhgIloA==
|
||||
|
||||
-- !sql --
|
||||
wr2JEDVXzL9+2XtRhgIloA==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
BO2vxHeUcw5BQQalSBbo1w==
|
||||
|
||||
-- !sql --
|
||||
BO2vxHeUcw5BQQalSBbo1w==
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
tsmK1HzbpnEdR2//WhO+MA==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
900150983cd24fb0d6963f7d28e17f72
|
||||
|
||||
-- !sql --
|
||||
e2fc714c4727ee9395f324cd2e7f331f
|
||||
|
||||
-- !sql --
|
||||
e2fc714c4727ee9395f324cd2e7f331f
|
||||
|
||||
-- !sql --
|
||||
aDjwRflBrDjhBZIOFNw3Tg==
|
||||
|
||||
-- !sql --
|
||||
1Y4NGIukSbv9OrkZnRD1bQ==
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
|
||||
|
||||
-- !sql --
|
||||
82ec580fe6d36ae4f81cae3c73f4a5b3b5a09c943172dc9053c69fd8e18dca1e
|
||||
|
||||
-- !sql --
|
||||
82ec580fe6d36ae4f81cae3c73f4a5b3b5a09c943172dc9053c69fd8e18dca1e
|
||||
|
||||
-- !sql --
|
||||
wr2JEDVXzL9+2XtRhgIloA==
|
||||
|
||||
-- !sql --
|
||||
tsmK1HzbpnEdR2//WhO+MA==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
900150983cd24fb0d6963f7d28e17f72
|
||||
|
||||
-- !sql --
|
||||
e2fc714c4727ee9395f324cd2e7f331f
|
||||
|
||||
-- !sql --
|
||||
e2fc714c4727ee9395f324cd2e7f331f
|
||||
|
||||
-- !sql --
|
||||
aDjwRflBrDjhBZIOFNw3Tg==
|
||||
|
||||
-- !sql --
|
||||
1Y4NGIukSbv9OrkZnRD1bQ==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
|
||||
|
||||
@ -2,44 +2,68 @@
|
||||
-- !sql --
|
||||
wr2JEDVXzL9+2XtRhgIloA==
|
||||
|
||||
-- !sql --
|
||||
wr2JEDVXzL9+2XtRhgIloA==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
BO2vxHeUcw5BQQalSBbo1w==
|
||||
|
||||
-- !sql --
|
||||
BO2vxHeUcw5BQQalSBbo1w==
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
tsmK1HzbpnEdR2//WhO+MA==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
900150983cd24fb0d6963f7d28e17f72
|
||||
|
||||
-- !sql --
|
||||
e2fc714c4727ee9395f324cd2e7f331f
|
||||
|
||||
-- !sql --
|
||||
e2fc714c4727ee9395f324cd2e7f331f
|
||||
|
||||
-- !sql --
|
||||
aDjwRflBrDjhBZIOFNw3Tg==
|
||||
|
||||
-- !sql --
|
||||
1Y4NGIukSbv9OrkZnRD1bQ==
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
|
||||
|
||||
-- !sql --
|
||||
82ec580fe6d36ae4f81cae3c73f4a5b3b5a09c943172dc9053c69fd8e18dca1e
|
||||
|
||||
-- !sql --
|
||||
82ec580fe6d36ae4f81cae3c73f4a5b3b5a09c943172dc9053c69fd8e18dca1e
|
||||
|
||||
-- !sql --
|
||||
wr2JEDVXzL9+2XtRhgIloA==
|
||||
|
||||
-- !sql --
|
||||
tsmK1HzbpnEdR2//WhO+MA==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
aDjwRflBrDjhBZIOFNw3Tg==
|
||||
|
||||
-- !sql --
|
||||
1Y4NGIukSbv9OrkZnRD1bQ==
|
||||
|
||||
-- !sql --
|
||||
text
|
||||
|
||||
-- !sql --
|
||||
\N
|
||||
|
||||
-- !sql --
|
||||
66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0
|
||||
|
||||
@ -97,22 +97,10 @@ suite("nereids_scalar_fn_S") {
|
||||
qt_sql_sm3sum_Varchar_notnull "select sm3sum(kvchrs1) from fn_test_not_nullable order by kvchrs1"
|
||||
qt_sql_sm3sum_String "select sm3sum(kstr) from fn_test order by kstr"
|
||||
qt_sql_sm3sum_String_notnull "select sm3sum(kstr) from fn_test_not_nullable order by kstr"
|
||||
test {
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
test {
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
test {
|
||||
sql "select sm4_decrypt(kstr, kstr) from fn_test order by kstr, kstr"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
test {
|
||||
sql "select sm4_decrypt(kstr, kstr) from fn_test_not_nullable order by kstr, kstr"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1"
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1"
|
||||
sql "select sm4_decrypt(kstr, kstr) from fn_test order by kstr, kstr"
|
||||
sql "select sm4_decrypt(kstr, kstr) from fn_test_not_nullable order by kstr, kstr"
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1, kvchrs1"
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1"
|
||||
sql "select sm4_decrypt(kstr, kstr, kstr) from fn_test order by kstr, kstr, kstr"
|
||||
@ -121,22 +109,10 @@ suite("nereids_scalar_fn_S") {
|
||||
sql "select sm4_decrypt(kvchrs1, kvchrs1, kvchrs1, 'SM4_128_ECB') from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1"
|
||||
sql "select sm4_decrypt(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test order by kstr, kstr, kstr"
|
||||
sql "select sm4_decrypt(kstr, kstr, kstr, 'SM4_128_ECB') from fn_test_not_nullable order by kstr, kstr, kstr"
|
||||
test {
|
||||
sql "select sm4_encrypt(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
test {
|
||||
sql "select sm4_encrypt(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
test {
|
||||
sql "select sm4_encrypt(kstr, kstr) from fn_test order by kstr, kstr"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
test {
|
||||
sql "select sm4_encrypt(kstr, kstr) from fn_test_not_nullable order by kstr, kstr"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
sql "select sm4_encrypt(kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1"
|
||||
sql "select sm4_encrypt(kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1"
|
||||
sql "select sm4_encrypt(kstr, kstr) from fn_test order by kstr, kstr"
|
||||
sql "select sm4_encrypt(kstr, kstr) from fn_test_not_nullable order by kstr, kstr"
|
||||
sql "select sm4_encrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test order by kvchrs1, kvchrs1, kvchrs1"
|
||||
sql "select sm4_encrypt(kvchrs1, kvchrs1, kvchrs1) from fn_test_not_nullable order by kvchrs1, kvchrs1, kvchrs1"
|
||||
sql "select sm4_encrypt(kstr, kstr, kstr) from fn_test order by kstr, kstr, kstr"
|
||||
|
||||
@ -17,53 +17,48 @@
|
||||
|
||||
suite("test_encryption_function") {
|
||||
sql "SET enable_nereids_planner=true"
|
||||
sql "SET enable_vectorized_engine=true"
|
||||
sql "SET enable_fallback_to_original_planner=false"
|
||||
sql "set batch_size = 4096;"
|
||||
|
||||
sql "set block_encryption_mode=\"AES_128_ECB\";"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "session variable block_encryption_mode is invalid with sm4"
|
||||
}
|
||||
|
||||
sql "set block_encryption_mode=\"AES_256_ECB\";"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
|
||||
sql "set block_encryption_mode=\"AES_256_CBC\";"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "Incorrect parameter count in the call to native function 'aes_encrypt' or 'aes_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
test {
|
||||
sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
exception "Incorrect parameter count in the call to native function 'aes_encrypt' or 'aes_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('tsmK1HzbpnEdR2//WhO+MA=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
|
||||
qt_sql "SELECT MD5(\"abc\");"
|
||||
|
||||
qt_sql "SELECT MD5(\"abcd\");"
|
||||
qt_sql "SELECT MD5SUM(\"ab\",\"cd\");"
|
||||
|
||||
sql "set block_encryption_mode=\"SM4_128_CBC\";"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
test {
|
||||
sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('G7yqOKfEyxdagboz6Qf01A=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
|
||||
qt_sql "SELECT SM3(\"abc\");"
|
||||
qt_sql "select sm3(\"abcd\");"
|
||||
qt_sql "select sm3sum(\"ab\",\"cd\");"
|
||||
|
||||
|
||||
sql "set block_encryption_mode=\"AES_256_CBC\";"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
|
||||
qt_sql "SELECT MD5(\"abc\");"
|
||||
|
||||
qt_sql "SELECT MD5(\"abcd\");"
|
||||
qt_sql "SELECT MD5SUM(\"ab\",\"cd\");"
|
||||
|
||||
sql "set block_encryption_mode=\"SM4_128_CBC\";"
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('G7yqOKfEyxdagboz6Qf01A=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('1Y4NGIukSbv9OrkZnRD1bQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "session variable block_encryption_mode is invalid with aes"
|
||||
}
|
||||
|
||||
qt_sql "SELECT SM3(\"abc\");"
|
||||
qt_sql "select sm3(\"abcd\");"
|
||||
|
||||
@ -30,55 +30,45 @@ suite("test_encryption_function") {
|
||||
"""
|
||||
sql "set batch_size = 4096;"
|
||||
|
||||
sql "set block_encryption_mode=\"AES_128_ECB\";"
|
||||
sql "set block_encryption_mode=\"AES_256_CBC\";"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "session variable block_encryption_mode is invalid with sm4"
|
||||
}
|
||||
|
||||
sql "set block_encryption_mode=\"AES_256_ECB\";"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('BO2vxHeUcw5BQQalSBbo1w=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT MD5(\"abc\");"
|
||||
|
||||
qt_sql "SELECT MD5(\"abcd\");"
|
||||
qt_sql "SELECT MD5SUM(\"ab\",\"cd\");"
|
||||
|
||||
sql "set block_encryption_mode=\"SM4_128_CBC\";"
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('G7yqOKfEyxdagboz6Qf01A=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
|
||||
qt_sql "SELECT SM3(\"abc\");"
|
||||
qt_sql "select sm3(\"abcd\");"
|
||||
qt_sql "select sm3sum(\"ab\",\"cd\");"
|
||||
|
||||
sql 'set enable_nereids_planner=true'
|
||||
sql 'set enable_fallback_to_original_planner=false'
|
||||
|
||||
sql "set block_encryption_mode=\"AES_256_CBC\";"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "Incorrect parameter count in the call to native function 'aes_encrypt' or 'aes_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
test {
|
||||
sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
exception "Incorrect parameter count in the call to native function 'aes_encrypt' or 'aes_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('wr2JEDVXzL9+2XtRhgIloA=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('mvZT1KJw7N0RJf27aipUpg=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
qt_sql "SELECT AES_DECRYPT(FROM_BASE64('tsmK1HzbpnEdR2//WhO+MA=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
explain {
|
||||
sql "SELECT AES_DECRYPT(UNHEX(r_2_3.`name`), 'namePnhe3E0MWyfZivUnVzDy12caymnrKp', '0123456789') AS x0 FROM dwd_candidates AS r_2_3\n" +
|
||||
"GROUP BY x0;"
|
||||
}
|
||||
|
||||
sql "set block_encryption_mode=\"SM4_128_CBC\";"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
qt_sql "SELECT TO_BASE64(SM4_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3', '0123456789'));"
|
||||
test {
|
||||
sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
exception "Incorrect parameter count in the call to native function 'sm4_encrypt' or 'sm4_decrypt'"
|
||||
}
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('aDjwRflBrDjhBZIOFNw3Tg=='),'F3229A0B371ED2D9441B830D21A390C3');"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('G7yqOKfEyxdagboz6Qf01A=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
qt_sql "SELECT SM4_DECRYPT(FROM_BASE64('1Y4NGIukSbv9OrkZnRD1bQ=='),'F3229A0B371ED2D9441B830D21A390C3', '0123456789');"
|
||||
test {
|
||||
sql "SELECT TO_BASE64(AES_ENCRYPT('text','F3229A0B371ED2D9441B830D21A390C3'));"
|
||||
exception "session variable block_encryption_mode is invalid with aes"
|
||||
}
|
||||
|
||||
qt_sql "SELECT SM3(\"abc\");"
|
||||
qt_sql "select sm3(\"abcd\");"
|
||||
|
||||
Reference in New Issue
Block a user