mirror of
https://github.com/postgres/postgres.git
synced 2025-12-24 06:01:07 +03:00
pgcrypto: Make it possible to disable built-in crypto
When using OpenSSL and/or the underlying operating system in FIPS mode no non-FIPS certified crypto implementations should be used. While that is already possible by just not invoking the built-in crypto in pgcrypto, this adds a GUC which prohibit the code from being called. This doesn't change the FIPS status of PostgreSQL but can make it easier for sites which target FIPS compliance to ensure that violations cannot occur. Author: Daniel Gustafsson <daniel@yesql.se> Author: Joe Conway <mail@joeconway.com> Reviewed-by: Joe Conway <mail@joeconway.com> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com> Discussion: https://postgr.es/m/16b4a157-9ea1-44d0-b7b3-4c85df5de97b@joeconway.com
This commit is contained in:
@@ -89,6 +89,12 @@
|
||||
#define PXE_PGP_UNSUPPORTED_PUBALGO -122
|
||||
#define PXE_PGP_MULTIPLE_SUBKEYS -123
|
||||
|
||||
typedef enum BuiltinCryptoOptions
|
||||
{
|
||||
BC_ON,
|
||||
BC_OFF,
|
||||
BC_FIPS,
|
||||
} BuiltinCryptoOptions;
|
||||
|
||||
typedef struct px_digest PX_MD;
|
||||
typedef struct px_alias PX_Alias;
|
||||
@@ -96,6 +102,8 @@ typedef struct px_hmac PX_HMAC;
|
||||
typedef struct px_cipher PX_Cipher;
|
||||
typedef struct px_combo PX_Combo;
|
||||
|
||||
extern int builtin_crypto_enabled;
|
||||
|
||||
struct px_digest
|
||||
{
|
||||
unsigned (*result_size) (PX_MD *h);
|
||||
@@ -183,6 +191,7 @@ void px_set_debug_handler(void (*handler) (const char *));
|
||||
void px_memset(void *ptr, int c, size_t len);
|
||||
|
||||
bool CheckFIPSMode(void);
|
||||
void CheckBuiltinCryptoMode(void);
|
||||
|
||||
#ifdef PX_DEBUG
|
||||
void px_debug(const char *fmt,...) pg_attribute_printf(1, 2);
|
||||
|
||||
Reference in New Issue
Block a user