mirror of
https://github.com/postgres/postgres.git
synced 2025-08-28 18:48:04 +03:00
Remove support for OpenSSL 1.0.1
Here are some notes about this change:
- As X509_get_signature_nid() should always exist (OpenSSL and
LibreSSL), hence HAVE_X509_GET_SIGNATURE_NID is now gone.
- OPENSSL_API_COMPAT is bumped to 0x10002000L.
- One comment related to 1.0.1e introduced by 74242c2
is removed.
Upstream OpenSSL still provides long-term support for 1.0.2 in a closed
fashion, so removing it is out of scope for a few years, at least.
Reviewed-by: Jacob Champion, Daniel Gustafsson
Discussion: https://postgr.es/m/ZG3JNursG69dz1lr@paquier.xyz
This commit is contained in:
@@ -401,7 +401,7 @@ build_client_first_message(fe_scram_state *state)
|
||||
Assert(conn->ssl_in_use);
|
||||
appendPQExpBufferStr(&buf, "p=tls-server-end-point");
|
||||
}
|
||||
#ifdef HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
|
||||
#ifdef USE_SSL
|
||||
else if (conn->channel_binding[0] != 'd' && /* disable */
|
||||
conn->ssl_in_use)
|
||||
{
|
||||
@@ -474,7 +474,7 @@ build_client_final_message(fe_scram_state *state)
|
||||
*/
|
||||
if (strcmp(state->sasl_mechanism, SCRAM_SHA_256_PLUS_NAME) == 0)
|
||||
{
|
||||
#ifdef HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
|
||||
#ifdef USE_SSL
|
||||
char *cbind_data = NULL;
|
||||
size_t cbind_data_len = 0;
|
||||
size_t cbind_header_len;
|
||||
@@ -540,9 +540,9 @@ build_client_final_message(fe_scram_state *state)
|
||||
appendPQExpBufferStr(&conn->errorMessage,
|
||||
"channel binding not supported by this build\n");
|
||||
return NULL;
|
||||
#endif /* HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH */
|
||||
#endif /* USE_SSL */
|
||||
}
|
||||
#ifdef HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
|
||||
#ifdef USE_SSL
|
||||
else if (conn->channel_binding[0] != 'd' && /* disable */
|
||||
conn->ssl_in_use)
|
||||
appendPQExpBufferStr(&buf, "c=eSws"); /* base64 of "y,," */
|
||||
|
@@ -478,7 +478,7 @@ pg_SASL_init(PGconn *conn, int payloadlen)
|
||||
{
|
||||
/* The server has offered SCRAM-SHA-256-PLUS. */
|
||||
|
||||
#ifdef HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
|
||||
#ifdef USE_SSL
|
||||
/*
|
||||
* The client supports channel binding, which is chosen if
|
||||
* channel_binding is not disabled.
|
||||
|
@@ -364,7 +364,6 @@ pgtls_write(PGconn *conn, const void *ptr, size_t len)
|
||||
return n;
|
||||
}
|
||||
|
||||
#if defined(HAVE_X509_GET_SIGNATURE_NID) || defined(HAVE_X509_GET_SIGNATURE_INFO)
|
||||
char *
|
||||
pgtls_get_peer_certificate_hash(PGconn *conn, size_t *len)
|
||||
{
|
||||
@@ -439,7 +438,6 @@ pgtls_get_peer_certificate_hash(PGconn *conn, size_t *len)
|
||||
|
||||
return cert_hash;
|
||||
}
|
||||
#endif /* HAVE_X509_GET_SIGNATURE_NID */
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* OpenSSL specific code */
|
||||
@@ -1826,8 +1824,6 @@ PQsslAttribute(PGconn *conn, const char *attribute_name)
|
||||
*
|
||||
* These functions are closely modelled on the standard socket BIO in OpenSSL;
|
||||
* see sock_read() and sock_write() in OpenSSL's crypto/bio/bss_sock.c.
|
||||
* XXX OpenSSL 1.0.1e considers many more errcodes than just EINTR as reasons
|
||||
* to retry; do we need to adopt their logic for that?
|
||||
*/
|
||||
|
||||
#ifndef HAVE_BIO_GET_DATA
|
||||
|
@@ -833,14 +833,8 @@ extern ssize_t pgtls_write(PGconn *conn, const void *ptr, size_t len);
|
||||
*
|
||||
* NULL is sent back to the caller in the event of an error, with an
|
||||
* error message for the caller to consume.
|
||||
*
|
||||
* This is not supported with old versions of OpenSSL that don't have
|
||||
* the X509_get_signature_nid() function.
|
||||
*/
|
||||
#if defined(USE_OPENSSL) && (defined(HAVE_X509_GET_SIGNATURE_NID) || defined(HAVE_X509_GET_SIGNATURE_INFO))
|
||||
#define HAVE_PGTLS_GET_PEER_CERTIFICATE_HASH
|
||||
extern char *pgtls_get_peer_certificate_hash(PGconn *conn, size_t *len);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Verify that the server certificate matches the host name we connected to.
|
||||
|
Reference in New Issue
Block a user