Commit Graph

36 Commits

Author SHA1 Message Date
Alexey Milovidov
10022ee974 Fix insufficient argument check for encryption functions 2022-08-14 04:28:30 +02:00
Robert Schulze
13482af4ee
First try at reducing the use of StringRef
- to be replaced by std::string_view
- suggested in #39262
2022-07-17 17:26:02 +00:00
Robert Schulze
deda29b46b
Pass const StringRef by value, not by reference
See #39224
2022-07-15 11:34:56 +00:00
Alexey Milovidov
0e07fe1002 Fix error 2021-11-28 07:18:00 +03:00
Alexey Milovidov
a4e57228cf Add a test from #31662 2021-11-24 23:09:50 +03:00
Alexey Milovidov
bd1964a2eb Fix exception on some of the applications of "decrypt" function on Nullable columns 2021-11-24 16:46:20 +03:00
Alexey Milovidov
8b4a6a2416 Remove cruft 2021-10-28 02:10:39 +03:00
Maksim Kita
c2407fee06 Fixed tests 2021-09-30 14:35:24 +03:00
Pavel Kruglov
70b51133c1 Try to simplify code 2021-08-09 18:01:08 +03:00
Pavel Kruglov
0662df8b76 Fix performance with JIT, add arguments to function isSuitableForShortCircuitArgumentsExecution 2021-08-09 17:54:14 +03:00
Pavel Kruglov
e792fa588f Mark all Functions as sutable or not for executing as short circuit arguments 2021-08-09 17:50:09 +03:00
Nikolai Kochetov
dbaa6ffc62 Rename ContextConstPtr to ContextPtr. 2021-06-01 15:20:52 +03:00
Alexander Kuzmenkov
3f57fc085b remove mutable context references from functions interface
Also remove it from some visitors.
2021-05-28 19:45:37 +03:00
Ivan
495c6e03aa
Replace all Context references with std::weak_ptr (#22297)
* Replace all Context references with std::weak_ptr

* Fix shared context captured by value

* Fix build

* Fix Context with named sessions

* Fix copy context

* Fix gcc build

* Merge with master and fix build

* Fix gcc-9 build
2021-04-11 02:33:54 +03:00
Alexey Milovidov
3e74f56261 Fix missing check in decrypt for AEAD mode 2021-03-24 03:34:30 +03:00
Alexey Milovidov
f7db6e10d3 Fix very strange code in AES functions 2021-01-23 02:35:40 +03:00
Alexey Milovidov
bbe3c54f34 Merge branch 'aes-msan' into aes-remove-complications 2021-01-23 00:48:45 +03:00
Alexey Milovidov
9ee9d7293a Remove complications from FunctionsAES 2021-01-23 00:48:03 +03:00
Alexey Milovidov
56d09886e2 Fix MSan report in AES functions 2021-01-22 04:08:10 +03:00
Alexey Milovidov
e42ff1ae02 Port ClickHouse code to BoringSSL 2020-11-30 10:01:55 +03:00
Ivan Lezhankin
f897f7c93f Refactor IFunction to execute with const arguments 2020-11-17 16:24:45 +03:00
Mikhail Filimonov
41971e073a
Fix typos reported by codespell 2020-10-27 12:04:03 +01:00
Xianda Ke
97d84dd855 minor fix.
redundant variable, duplicated defination of the variable aad_data
compiler error: variable ‘aad_value’ set but not used [-Werror=unused-but-set-variable]
2020-10-24 17:37:51 +08:00
Azat Khuzhin
6f78243e32 Use std::nullptr_t over nullptr_t 2020-10-22 01:21:06 +03:00
Nikolai Kochetov
c4c1446111 Fix build. 2020-10-21 09:22:20 +03:00
Vasily Nemkov
4124538b56 Merge remote-tracking branch 'upstream/master' into AES_encrypt_decrypt 2020-10-18 00:00:13 +03:00
Vasily Nemkov
f0d5ade1c1 Fixed argument checks and updated tests accordingly 2020-10-17 19:50:58 +03:00
Alexey Milovidov
ac670d6868 Merge with master 2020-10-14 16:52:59 +03:00
Vasily Nemkov
8984f4b8c2 Empty string optimization for encryption 2020-10-14 16:33:07 +03:00
alexey-milovidov
200bc9b9b2
Update FunctionsAES.h 2020-09-17 00:57:26 +03:00
alexey-milovidov
60f91332b3
Update FunctionsAES.h 2020-09-17 00:52:01 +03:00
Vasily Nemkov
8129169ead Fixed Yandex-specific builds :( 2020-09-10 22:52:42 +03:00
Vasily Nemkov
d6c84291c9 Fixed data race caused by EVP_CIPHER_fetch() 2020-09-08 16:28:52 +03:00
Vasily Nemkov
bdaa012239 Fixed compilation for older (pre-3.0.0) OpenSSL versions 2020-09-01 12:42:23 +03:00
Vasily Nemkov
7cc4118dab Fixed AES encrypt/decrypt performance
Improved execution time of EVP_DecryptInit_ex/EVP_EncryptInit_ex with some hacks
Fixed all-const case
2020-09-01 12:42:23 +03:00
Vasily Nemkov
b147ffcd43 encrypt, aes_encrypt_mysql, decrypt, aes_decrypt_mysql functions
Functions to encrypt/decrypt any input data with OpenSSL's ciphers
with custom key, iv, and add (-gcm mode only).

_mysql versions are 100% compatitable with corresponding MySQL functions

Supported modes depend on OpenSSL version, but generally are:
aes-{128,192,56}-{ecb,cbc,cfb1,cfb8,cfb128,ofb,gcm}

Please note that in a -gcm mode a 16-byte tag is appended to the ciphertext
on encryption and is expected to be found at the end of ciphertext on decryption.

Added tests that verify compatibility with MySQL functions,
and test vectors for GCM mode from OpenSSL.

Added masking rules for aes_X funtions
Rules are installed by default to config.d/query_masking_rules.xml
2020-09-01 12:42:15 +03:00