Re: Refactor MD5 implementations and switch to EVP for OpenSSL

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Refactor MD5 implementations and switch to EVP for OpenSSL
Date: 2020-11-10 04:28:09
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

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

Attachment Content-Type Size
v2-0001-Add-APIs-to-control-EVP-contexts-for-resource-own.patch text/x-diff 4.9 KB
v2-0002-Refactor-MD5-implementations-in-the-tree.patch text/x-diff 44.1 KB
v2-0003-Add-MD5-implementation-based-on-OpenSSL.patch text/x-diff 5.1 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2020-11-10 04:29:47 Re: [Patch] Optimize dropping of relation buffers using dlist
Previous Message Masahiko Sawada 2020-11-10 04:27:53 Re: [HACKERS] logical decoding of two-phase transactions