mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 20:03:02 +01:00
Resolved #6797
This commit is contained in:
parent
e831a845af
commit
901c7021e0
@ -485,7 +485,7 @@ Important:
|
||||
|
||||
Example:
|
||||
select encrypt('897897' using sober128 key 'AbcdAbcdAbcdAbcd' iv '01234567') from rdb$database;
|
||||
select decrypt(x'0154090759DF' using sober128 key 'AbcdAbcdAbcdAbcd' iv '01234567') from rdb$database;
|
||||
select cast(decrypt(x'0154090759DF' using sober128 key 'AbcdAbcdAbcdAbcd' iv '01234567') as varchar(128)) from rdb$database;
|
||||
select decrypt(secret_field using aes mode ofb key '0123456701234567' iv init_vector) from secure_table;
|
||||
|
||||
|
||||
@ -1097,8 +1097,8 @@ Format:
|
||||
|
||||
Example:
|
||||
(tip - start running samples one by one from RSA_PRIVATE function)
|
||||
select rsa_decrypt(rdb$get_context('USER_SESSION', 'msg')
|
||||
key rdb$get_context('USER_SESSION', 'private_key')) from rdb$database;
|
||||
select cast(rsa_decrypt(rdb$get_context('USER_SESSION', 'msg')
|
||||
key rdb$get_context('USER_SESSION', 'private_key')) as varchar(128)) from rdb$database;
|
||||
|
||||
|
||||
-------------
|
||||
|
@ -262,8 +262,7 @@ void makeDecode64(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, d
|
||||
void makeEncode64(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeDecodeHex(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeEncodeHex(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeDecrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeEncrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeCrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeFirstLastDayResult(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeGetSetContext(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeGetTranCN(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
@ -276,8 +275,7 @@ void makePi(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* re
|
||||
void makeReplace(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeReverse(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRound(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRsaDecrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRsaEncrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRsaCrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRsaPrivate(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRsaPublic(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
void makeRsaSign(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result, int argsCount, const dsc** args);
|
||||
@ -1416,7 +1414,7 @@ void makeEncodeHex(DataTypeUtilBase* dataTypeUtil, const SysFunction* function,
|
||||
}
|
||||
|
||||
|
||||
void makeEncrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
void makeCrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
int argsCount, const dsc** args)
|
||||
{
|
||||
fb_assert(argsCount == CRYPT_ARG_MAX);
|
||||
@ -1430,21 +1428,7 @@ void makeEncrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, ds
|
||||
}
|
||||
|
||||
|
||||
void makeDecrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
int argsCount, const dsc** args)
|
||||
{
|
||||
fb_assert(argsCount == CRYPT_ARG_MAX);
|
||||
|
||||
if (args[0]->isBlob())
|
||||
result->makeBlob(0, ttype_none);
|
||||
else
|
||||
result->makeVarying(args[0]->getStringLength(), ttype_none);
|
||||
|
||||
result->setNullable(args[0]->isNullable());
|
||||
}
|
||||
|
||||
|
||||
void makeRsaEncrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
void makeRsaCrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
int argsCount, const dsc** args)
|
||||
{
|
||||
fb_assert(argsCount == RSA_CRYPT_ARG_MAX);
|
||||
@ -1454,16 +1438,6 @@ void makeRsaEncrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function,
|
||||
}
|
||||
|
||||
|
||||
void makeRsaDecrypt(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
int argsCount, const dsc** args)
|
||||
{
|
||||
fb_assert(argsCount == RSA_CRYPT_ARG_MAX);
|
||||
|
||||
result->makeVarying(255, ttype_none);
|
||||
result->setNullable(args[0]->isNullable());
|
||||
}
|
||||
|
||||
|
||||
void makeLeftRight(DataTypeUtilBase* dataTypeUtil, const SysFunction* function, dsc* result,
|
||||
int argsCount, const dsc** args)
|
||||
{
|
||||
@ -2769,7 +2743,7 @@ public:
|
||||
if (!completed)
|
||||
{
|
||||
dsc result;
|
||||
result.makeText(0, ttype_none, outBuf.begin());
|
||||
result.makeText(0, ttype_binary, outBuf.begin());
|
||||
EVL_make_value(tdbb, &result, impure);
|
||||
impure->vlu_desc.setNull();
|
||||
}
|
||||
@ -6390,8 +6364,8 @@ const SysFunction SysFunction::functions[] =
|
||||
{"CRYPT_HASH", 2, 2, setParamsHash, makeHash, evlHash, NULL},
|
||||
{"DATEADD", 3, 3, setParamsDateAdd, makeDateAdd, evlDateAdd, NULL},
|
||||
{"DATEDIFF", 3, 3, setParamsDateDiff, makeInt64Result, evlDateDiff, NULL},
|
||||
{"DECRYPT", 7, 7, setParamsEncrypt, makeDecrypt, evlDecrypt, NULL},
|
||||
{"ENCRYPT", 7, 7, setParamsEncrypt, makeEncrypt, evlEncrypt, NULL},
|
||||
{"DECRYPT", 7, 7, setParamsEncrypt, makeCrypt, evlDecrypt, NULL},
|
||||
{"ENCRYPT", 7, 7, setParamsEncrypt, makeCrypt, evlEncrypt, NULL},
|
||||
{"EXP", 1, 1, setParamsDblDec, makeDblDecResult, evlExp, NULL},
|
||||
{"FIRST_DAY", 2, 2, setParamsFirstLastDay, makeFirstLastDayResult, evlFirstLastDay, (void*) funFirstDay},
|
||||
{"FLOOR", 1, 1, setParamsDblDec, makeCeilFloor, evlFloor, NULL},
|
||||
@ -6426,8 +6400,8 @@ const SysFunction SysFunction::functions[] =
|
||||
{"RIGHT", 2, 2, setParamsSecondInteger, makeLeftRight, evlRight, NULL},
|
||||
{"ROUND", 1, 2, setParamsRoundTrunc, makeRound, evlRound, NULL},
|
||||
{"RPAD", 2, 3, setParamsSecondInteger, makePad, evlPad, (void*) funRPad},
|
||||
{"RSA_DECRYPT", 4, 4, setParamsRsaEncrypt, makeRsaDecrypt, evlRsaDecrypt, NULL},
|
||||
{"RSA_ENCRYPT", 4, 4, setParamsRsaEncrypt, makeRsaEncrypt, evlRsaEncrypt, NULL},
|
||||
{"RSA_DECRYPT", 4, 4, setParamsRsaEncrypt, makeRsaCrypt, evlRsaDecrypt, NULL},
|
||||
{"RSA_ENCRYPT", 4, 4, setParamsRsaEncrypt, makeRsaCrypt, evlRsaEncrypt, NULL},
|
||||
{"RSA_PRIVATE", 1, 1, setParamsInteger, makeRsaPrivate, evlRsaPrivate, NULL},
|
||||
{"RSA_PUBLIC", 1, 1, setParamsRsaPublic, makeRsaPublic, evlRsaPublic, NULL},
|
||||
{"RSA_SIGN_HASH", 4, 4, setParamsRsaSign, makeRsaSign, evlRsaSign, NULL},
|
||||
|
Loading…
Reference in New Issue
Block a user