Re: Refactor MD5 implementations and switch to EVP for OpenSSL
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-11-10T04:28:09Z
Lists: pgsql-hackers
Attachments
- v2-0001-Add-APIs-to-control-EVP-contexts-for-resource-own.patch (text/x-diff) patch v2-0001
- v2-0002-Refactor-MD5-implementations-in-the-tree.patch (text/x-diff) patch v2-0002
- v2-0003-Add-MD5-implementation-based-on-OpenSSL.patch (text/x-diff) patch v2-0003
On Fri, Nov 06, 2020 at 04:34:34PM +0900, Michael Paquier wrote: > The attached patch set does a bit of rework to make the Postgres code > more consistent with OpenSSL, similarly to the work I did for all the > SHA2 implementations with EVP in [1]: > - 0001 is something stolen from the SHA2 set, adding to resowner.c > control of EVP contexts, so as it is possible to clean up anything > allocated by OpenSSL. > - 0002 is the central piece, that moves the duplicated > implementation. src/common/ and pgcrypto/ use the same code, but I > have reused pgcrypto as it was already doing the init/update/final > split similarly to PostgreSQL. New APIs are designed to control MD5 > contexts, similarly to the work done for SHA2. Upon using this patch, > note that pgcrypto+OpenSSL uses our in-core implementation instead of > OpenSSL's one, but that's fixed in 0003. We have a set of three > convenience routines used to generate MD5-hashed passwords, that I > have moved to a new file in src/common/md5_common.c, aimed at being > shared between all the implementations. > - 0003 adds the MD5 implementation based on OpenSSL's EVP, ending the > work. The CF bot has been complaining on Windows and this issue is fixed in the attached. A refresh of src/tools/msvc for pgcrypto was just missing. -- Michael
Commits
-
Refactor MD5 implementations according to new cryptohash infrastructure
- b67b57a966af 14.0 landed
-
Remove md5.c check, add CVS log stamp. Update comments.
- 2ca65f716aee 7.2.1 cited
-
Add new files.
- 957613be18e6 7.2.1 cited