Re: Felix Lechner
> There may be an alternative for some cases mentioned here. The wolfSSL
> encryption library is a FIPS-certified, commercial product with a
> fully usable, although incomplete, OpenSSL compatibility layer.

Interesting pointer, thanks.

For postgresql-12, it fails at the configure stage, though:

configure:11890: checking for CRYPTO_new_ex_data in -lcrypto
configure:11915: gcc -o conftest -Wall -Wmissing-prototypes -Wpointer-arith 
-Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmis
sing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv 
-fexcess-precision=standard -Wno-format-truncation -Wno-stringop-trun
cation -O2  -D_GNU_SOURCE    conftest.c -lcrypto  -lz -ledit -lrt -lcrypt -ldl 
-lm  >&5
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
configure:11915: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "PostgreSQL"
| #define PACKAGE_TARNAME "postgresql"
| #define PACKAGE_VERSION "12.2"
| #define PACKAGE_STRING "PostgreSQL 12.2"
| #define PACKAGE_BUGREPORT "[email protected]"
| #define PACKAGE_URL ""
| #define PG_MAJORVERSION "12"
| #define PG_VERSION "12.2"
| #define DEF_PGPORT 5432
| #define DEF_PGPORT_STR "5432"
| #define BLCKSZ 8192
| #define RELSEG_SIZE 131072
| #define XLOG_BLCKSZ 8192
| #define ENABLE_THREAD_SAFETY 1
| #define PG_KRB_SRVNAM "postgres"
| #define USE_OPENSSL 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_PTHREAD_PRIO_INHERIT 1
| #define HAVE_PTHREAD 1
| #define HAVE_STRERROR_R 1
| #define HAVE_GETPWUID_R 1
| #define HAVE_GETHOSTBYNAME_R 1
| #define HAVE_LIBM 1
| #define HAVE_LIBREADLINE 1
| #define HAVE_LIBZ 1
| #define HAVE_SPINLOCKS 1
| #define HAVE_ATOMICS 1
| /* end confdefs.h.  */
|
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char CRYPTO_new_ex_data ();
| int
| main ()
| {
| return CRYPTO_new_ex_data ();
|   ;
|   return 0;
| }
configure:11924: result: no
configure:11934: error: library 'crypto' is required for OpenSSL

Christoph

Reply via email to