aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2021-09-27 13:32:03 +0900
committerKazuki Yamaguchi <k@rhe.jp>2021-10-24 17:24:50 +0900
commit00abee791da3ee9fd5d8d4ae904718edabb48333 (patch)
tree8505d5bf2a730c77b92a42acece4e0f2feb36211
parent9b4f761e74a6f718d982d34d0bc45fa859fc264d (diff)
downloadruby-openssl-00abee791da3ee9fd5d8d4ae904718edabb48333.tar.gz
ext/openssl/ossl.h: add helper macros for OpenSSL/LibreSSL versions
Add following convenient macros: - OSSL_IS_LIBRESSL - OSSL_OPENSSL_PREREQ(maj, min, pat) - OSSL_LIBRESSL_PREREQ(maj, min, pat)
-rw-r--r--ext/openssl/ossl.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h
index be9dcbdf..3a0ab1e5 100644
--- a/ext/openssl/ossl.h
+++ b/ext/openssl/ossl.h
@@ -42,6 +42,18 @@
#include <openssl/evp.h>
#include <openssl/dh.h>
+#ifndef LIBRESSL_VERSION_NUMBER
+# define OSSL_IS_LIBRESSL 0
+# define OSSL_OPENSSL_PREREQ(maj, min, pat) \
+ (OPENSSL_VERSION_NUMBER >= (maj << 28) | (min << 20) | (pat << 12))
+# define OSSL_LIBRESSL_PREREQ(maj, min, pat) 0
+#else
+# define OSSL_IS_LIBRESSL 1
+# define OSSL_OPENSSL_PREREQ(maj, min, pat) 0
+# define OSSL_LIBRESSL_PREREQ(maj, min, pat) \
+ (LIBRESSL_VERSION_NUMBER >= (maj << 28) | (min << 20) | (pat << 12))
+#endif
+
/*
* Common Module
*/