Revert "Change SHA2 implementation based on OpenSSL to use EVP digest routines"
authorMichael Paquier <michael@paquier.xyz>
Tue, 29 Sep 2020 00:25:51 +0000 (09:25 +0900)
committerMichael Paquier <michael@paquier.xyz>
Tue, 29 Sep 2020 00:25:51 +0000 (09:25 +0900)
commitfe0a1dc52c7332a65b44db8e8408a5fd1d8fc8fb
tree4a0813aeaa0b3f7f7ee3cf5515b071d6cbb1fa5a
parent042d8017ec7bca244db4a53bc3d72d218495136d
Revert "Change SHA2 implementation based on OpenSSL to use EVP digest routines"

This reverts commit e21cbb4, as the switch to EVP routines requires a
more careful design where we would need to have at least our wrapper
routines return a status instead of issuing an error by themselves to
let the caller do the error handling.  The memory handling was also
incorrect and could cause leaks in the backend if a failure happened,
requiring most likely a callback to do the necessary cleanup as the only
clean way to be able to allocate an EVP context requires the use of an
allocation within OpenSSL.  The potential rework of the wrappers also
impacts the fallback implementation when not building with OpenSSL.

Originally, prairiedog has reported a compilation failure, but after
discussion with Tom Lane this needs a better design.

Discussion: https://postgr.es/m/20200928073330.GC2316@paquier.xyz
src/common/sha2_openssl.c
src/include/common/sha2.h