mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-11-21 03:13:05 +08:00
Disable OpenSSL EVP digest padding in pgcrypto
The PX layer in pgcrypto is handling digest padding on its own uniformly for all backend implementations. Starting with OpenSSL 3.0.0, DecryptUpdate doesn't flush the last block in case padding is enabled so explicitly disable it as we don't use it. This will be backpatched to all supported version once there is sufficient testing in the buildfarm of OpenSSL 3. Reviewed-by: Peter Eisentraut, Michael Paquier Discussion: https://postgr.es/m/FEF81714-D479-4512-839B-C769D2605F8A@yesql.se Backpatch-through: 9.6
This commit is contained in:
parent
a69e1506f6
commit
135d8687ad
@ -379,6 +379,8 @@ gen_ossl_decrypt(PX_Cipher *c, const uint8 *data, unsigned dlen,
|
||||
{
|
||||
if (!EVP_DecryptInit_ex(od->evp_ctx, od->evp_ciph, NULL, NULL, NULL))
|
||||
return PXE_CIPHER_INIT;
|
||||
if (!EVP_CIPHER_CTX_set_padding(od->evp_ctx, 0))
|
||||
return PXE_CIPHER_INIT;
|
||||
if (!EVP_CIPHER_CTX_set_key_length(od->evp_ctx, od->klen))
|
||||
return PXE_CIPHER_INIT;
|
||||
if (!EVP_DecryptInit_ex(od->evp_ctx, NULL, NULL, od->key, od->iv))
|
||||
@ -403,6 +405,8 @@ gen_ossl_encrypt(PX_Cipher *c, const uint8 *data, unsigned dlen,
|
||||
{
|
||||
if (!EVP_EncryptInit_ex(od->evp_ctx, od->evp_ciph, NULL, NULL, NULL))
|
||||
return PXE_CIPHER_INIT;
|
||||
if (!EVP_CIPHER_CTX_set_padding(od->evp_ctx, 0))
|
||||
return PXE_CIPHER_INIT;
|
||||
if (!EVP_CIPHER_CTX_set_key_length(od->evp_ctx, od->klen))
|
||||
return PXE_CIPHER_INIT;
|
||||
if (!EVP_EncryptInit_ex(od->evp_ctx, NULL, NULL, od->key, od->iv))
|
||||
|
Loading…
Reference in New Issue
Block a user