Thread: pgsql: Add user-callable SHA-2 functions

pgsql: Add user-callable SHA-2 functions

From
Peter Eisentraut
Date:
Add user-callable SHA-2 functions

Add the user-callable functions sha224, sha256, sha384, sha512.  We
already had these in the C code to support SCRAM, but there was no test
coverage outside of the SCRAM tests.  Adding these as user-callable
functions allows writing some tests.  Also, we have a user-callable md5
function but no more modern alternative, which led to wide use of md5 as
a general-purpose hash function, which leads to occasional complaints
about using md5.

Also mark the existing md5 functions as leak-proof.

Reviewed-by: Michael Paquier <michael@paquier.xyz>

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/10cfce34c0fe20d2caed5750bbc5c315c0e4cc63

Modified Files
--------------
doc/src/sgml/func.sgml                   |  71 ++++++++++++-
src/backend/utils/adt/Makefile           |   3 +-
src/backend/utils/adt/cryptohashes.c     | 169 +++++++++++++++++++++++++++++++
src/backend/utils/adt/varlena.c          |  48 ---------
src/include/catalog/pg_proc.h            |  12 ++-
src/test/regress/expected/opr_sanity.out |   6 ++
src/test/regress/expected/strings.out    |  53 ++++++++++
src/test/regress/sql/strings.sql         |  18 ++++
8 files changed, 328 insertions(+), 52 deletions(-)