[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 03/11] build: omit libcrypto-compat.{c,h} when OPENSSL_IS_BORINGSSL


The libcrypto-compat.{c,h} files should never be used when
building with BoringSSL, so ensure to error out if they are
ever used when OPENSSL_IS_BORINGSSL is set.

Signed-off-by: Jon Simons <jon@xxxxxxxxxxxxx>
---
 src/CMakeLists.txt     | 4 +++-
 src/libcrypto-compat.c | 4 ++++
 src/libcrypto-compat.h | 4 ++++
 src/libcrypto.c        | 3 +++
 src/pki_crypto.c       | 3 +++
 5 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e5a93538..489e4ab4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -168,7 +168,9 @@ else (WITH_GCRYPT)
         libcrypto.c
        )
     if(OPENSSL_VERSION VERSION_LESS "1.1.0")
-        set(libssh_SRCS ${libssh_SRCS} libcrypto-compat.c)
+        if (NOT WITH_BORINGSSL)
+            set(libssh_SRCS ${libssh_SRCS} libcrypto-compat.c)
+        endif (NOT WITH_BORINGSSL)
     endif()
 endif (WITH_GCRYPT)
 
diff --git a/src/libcrypto-compat.c b/src/libcrypto-compat.c
index 45dffbb4..e0de8fce 100644
--- a/src/libcrypto-compat.c
+++ b/src/libcrypto-compat.c
@@ -13,6 +13,10 @@
 #include <openssl/engine.h>
 #include "libcrypto-compat.h"
 
+#if defined(OPENSSL_IS_BORINGSSL)
+#error "OpenSSL libcrypto compat used for BoringSSL build"
+#endif /* defined(OPENSSL_IS_BORINGSSL) */
+
 static void *OPENSSL_zalloc(size_t num)
 {
     void *ret = OPENSSL_malloc(num);
diff --git a/src/libcrypto-compat.h b/src/libcrypto-compat.h
index 21542c65..dd04e739 100644
--- a/src/libcrypto-compat.h
+++ b/src/libcrypto-compat.h
@@ -4,6 +4,10 @@
 #include <openssl/opensslv.h>
 #if OPENSSL_VERSION_NUMBER < 0x10100000L
 
+#if defined(OPENSSL_IS_BORINGSSL)
+#error "OpenSSL libcrypto compat header used for BoringSSL build"
+#endif /* defined(OPENSSL_IS_BORINGSSL) */
+
 #include <openssl/rsa.h>
 #include <openssl/dsa.h>
 #include <openssl/ecdsa.h>
diff --git a/src/libcrypto.c b/src/libcrypto.c
index 59c99568..59f87e0c 100644
--- a/src/libcrypto.c
+++ b/src/libcrypto.c
@@ -43,7 +43,10 @@
 #include <openssl/hmac.h>
 #include <openssl/opensslv.h>
 #include <openssl/rand.h>
+
+#if !defined(OPENSSL_IS_BORINGSSL)
 #include "libcrypto-compat.h"
+#endif /* !defined(OPENSSL_IS_BORINGSSL) */
 
 #ifdef HAVE_OPENSSL_AES_H
 #define HAS_AES
diff --git a/src/pki_crypto.c b/src/pki_crypto.c
index 70ac6854..f5e8fb09 100644
--- a/src/pki_crypto.c
+++ b/src/pki_crypto.c
@@ -31,7 +31,10 @@
 #include <openssl/dsa.h>
 #include <openssl/err.h>
 #include <openssl/rsa.h>
+
+#if !defined(OPENSSL_IS_BORINGSSL)
 #include "libcrypto-compat.h"
+#endif /* !defined(OPENSSL_IS_BORINGSSL) */
 
 #ifdef HAVE_OPENSSL_EC_H
 #include <openssl/ec.h>
-- 
2.14.1


References:
[PATCH 00/11] libssh: enable building with BoringSSLJon Simons <jon@xxxxxxxxxxxxx>
Archive administrator: postmaster@lists.cynapses.org