]> git.proxmox.com Git - mirror_edk2.git/commitdiff
CryptoPkg: Separate auto-generated openssl config and edk2 openssl config
authorYi Li <yi1.li@intel.com>
Tue, 10 May 2022 07:19:04 +0000 (15:19 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 11 May 2022 00:04:39 +0000 (00:04 +0000)
Move auto-generated openssl config to openssl/opensslconf_generated,
 And openssl/opensslconf.h will contain both edk2 conditional openssl
 feature and openssl/opensslconf_generated.
Will make two part more clear.
New conditional feture code in opensslconf.h will look like:

/* Autogenerated conditional openssl feature list starts here */
[.....]
/* Autogenerated conditional openssl feature list ends here */

Signed-off-by: Yi Li <yi1.li@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyu1.lu@intel.com>
Cc: Guomin Jiang <guomin.jiang@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
CryptoPkg/Library/Include/openssl/opensslconf.h
CryptoPkg/Library/Include/openssl/opensslconf_generated.h [new file with mode: 0644]

index 22a7216cc46c95bb5cd99545fc636b73b96e836d..98962e0fe378eda674d823603e0a2c4dee957bf3 100644 (file)
  * https://www.openssl.org/source/license.html\r
  */\r
 #include <Library/PcdLib.h>\r
-#include <openssl/opensslv.h>\r
+#include <openssl/opensslconf_generated.h>\r
 \r
 #ifdef  __cplusplus\r
 extern "C" {\r
 #endif\r
 \r
-#ifdef OPENSSL_ALGORITHM_DEFINES\r
-  #error OPENSSL_ALGORITHM_DEFINES no longer supported\r
-#endif\r
-\r
-/*\r
- * OpenSSL was configured with the following options:\r
- */\r
-\r
-#ifndef OPENSSL_SYS_UEFI\r
-#define OPENSSL_SYS_UEFI  1\r
-#endif\r
-#define OPENSSL_MIN_API  0x10100000L\r
-#ifndef OPENSSL_NO_BF\r
-#define OPENSSL_NO_BF\r
-#endif\r
-#ifndef OPENSSL_NO_BLAKE2\r
-#define OPENSSL_NO_BLAKE2\r
-#endif\r
-#ifndef OPENSSL_NO_CAMELLIA\r
-#define OPENSSL_NO_CAMELLIA\r
-#endif\r
-#ifndef OPENSSL_NO_CAST\r
-#define OPENSSL_NO_CAST\r
-#endif\r
-#ifndef OPENSSL_NO_CHACHA\r
-#define OPENSSL_NO_CHACHA\r
-#endif\r
-#ifndef OPENSSL_NO_CMS\r
-#define OPENSSL_NO_CMS\r
-#endif\r
-#ifndef OPENSSL_NO_CT\r
-#define OPENSSL_NO_CT\r
-#endif\r
-#ifndef OPENSSL_NO_DES\r
-#define OPENSSL_NO_DES\r
-#endif\r
-#ifndef OPENSSL_NO_DSA\r
-#define OPENSSL_NO_DSA\r
-#endif\r
-#if !FixedPcdGetBool (PcdOpensslEcEnabled)\r
-  #ifndef OPENSSL_NO_EC\r
-#define OPENSSL_NO_EC\r
-  #endif\r
-#endif\r
-#ifndef OPENSSL_NO_IDEA\r
-#define OPENSSL_NO_IDEA\r
-#endif\r
-#ifndef OPENSSL_NO_MD2\r
-#define OPENSSL_NO_MD2\r
-#endif\r
-#ifndef OPENSSL_NO_MD4\r
-#define OPENSSL_NO_MD4\r
-#endif\r
-#ifndef OPENSSL_NO_MDC2\r
-#define OPENSSL_NO_MDC2\r
-#endif\r
-#ifndef OPENSSL_NO_POLY1305\r
-#define OPENSSL_NO_POLY1305\r
-#endif\r
-#ifndef OPENSSL_NO_RC2\r
-#define OPENSSL_NO_RC2\r
-#endif\r
-#ifndef OPENSSL_NO_RC4\r
-#define OPENSSL_NO_RC4\r
-#endif\r
-#ifndef OPENSSL_NO_RC5\r
-#define OPENSSL_NO_RC5\r
-#endif\r
-#ifndef OPENSSL_NO_RMD160\r
-#define OPENSSL_NO_RMD160\r
-#endif\r
-#ifndef OPENSSL_NO_SEED\r
-#define OPENSSL_NO_SEED\r
-#endif\r
-#ifndef OPENSSL_NO_SM2\r
-#define OPENSSL_NO_SM2\r
-#endif\r
-#ifndef OPENSSL_NO_SRP\r
-#define OPENSSL_NO_SRP\r
-#endif\r
-#ifndef OPENSSL_NO_TS\r
-#define OPENSSL_NO_TS\r
-#endif\r
-#ifndef OPENSSL_NO_WHIRLPOOL\r
-#define OPENSSL_NO_WHIRLPOOL\r
-#endif\r
-#ifndef OPENSSL_RAND_SEED_NONE\r
-#define OPENSSL_RAND_SEED_NONE\r
-#endif\r
-#ifndef OPENSSL_NO_AFALGENG\r
-#define OPENSSL_NO_AFALGENG\r
-#endif\r
-#ifndef OPENSSL_NO_APPS\r
-#define OPENSSL_NO_APPS\r
-#endif\r
-#ifndef OPENSSL_NO_ASAN\r
-#define OPENSSL_NO_ASAN\r
-#endif\r
-#ifndef OPENSSL_NO_ASYNC\r
-#define OPENSSL_NO_ASYNC\r
-#endif\r
-#ifndef OPENSSL_NO_AUTOERRINIT\r
-#define OPENSSL_NO_AUTOERRINIT\r
-#endif\r
-#ifndef OPENSSL_NO_AUTOLOAD_CONFIG\r
-#define OPENSSL_NO_AUTOLOAD_CONFIG\r
-#endif\r
-#ifndef OPENSSL_NO_CAPIENG\r
-#define OPENSSL_NO_CAPIENG\r
-#endif\r
-#ifndef OPENSSL_NO_CRYPTO_MDEBUG\r
-#define OPENSSL_NO_CRYPTO_MDEBUG\r
-#endif\r
-#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE\r
-#define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE\r
-#endif\r
-#ifndef OPENSSL_NO_DEPRECATED\r
-#define OPENSSL_NO_DEPRECATED\r
-#endif\r
-#ifndef OPENSSL_NO_DEVCRYPTOENG\r
-#define OPENSSL_NO_DEVCRYPTOENG\r
-#endif\r
-#ifndef OPENSSL_NO_DGRAM\r
-#define OPENSSL_NO_DGRAM\r
-#endif\r
-#ifndef OPENSSL_NO_DTLS\r
-#define OPENSSL_NO_DTLS\r
-#endif\r
-#ifndef OPENSSL_NO_DTLS1\r
-#define OPENSSL_NO_DTLS1\r
-#endif\r
-#ifndef OPENSSL_NO_DTLS1_2\r
-#define OPENSSL_NO_DTLS1_2\r
-#endif\r
-#ifndef OPENSSL_NO_EC2M\r
-#define OPENSSL_NO_EC2M\r
-#endif\r
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128\r
-#define OPENSSL_NO_EC_NISTP_64_GCC_128\r
-#endif\r
-#ifndef OPENSSL_NO_ECDH\r
-#define OPENSSL_NO_ECDH\r
-#endif\r
-#ifndef OPENSSL_NO_ECDSA\r
-#define OPENSSL_NO_ECDSA\r
-#endif\r
-#ifndef OPENSSL_NO_EGD\r
-#define OPENSSL_NO_EGD\r
-#endif\r
-#ifndef OPENSSL_NO_ENGINE\r
-#define OPENSSL_NO_ENGINE\r
-#endif\r
-#ifndef OPENSSL_NO_ERR\r
-#define OPENSSL_NO_ERR\r
-#endif\r
-#ifndef OPENSSL_NO_EXTERNAL_TESTS\r
-#define OPENSSL_NO_EXTERNAL_TESTS\r
-#endif\r
-#ifndef OPENSSL_NO_FILENAMES\r
-#define OPENSSL_NO_FILENAMES\r
-#endif\r
-#ifndef OPENSSL_NO_FUZZ_AFL\r
-#define OPENSSL_NO_FUZZ_AFL\r
-#endif\r
-#ifndef OPENSSL_NO_FUZZ_LIBFUZZER\r
-#define OPENSSL_NO_FUZZ_LIBFUZZER\r
-#endif\r
-#ifndef OPENSSL_NO_GOST\r
-#define OPENSSL_NO_GOST\r
-#endif\r
-#ifndef OPENSSL_NO_HEARTBEATS\r
-#define OPENSSL_NO_HEARTBEATS\r
-#endif\r
-#ifndef OPENSSL_NO_HW\r
-#define OPENSSL_NO_HW\r
-#endif\r
-#ifndef OPENSSL_NO_MSAN\r
-#define OPENSSL_NO_MSAN\r
-#endif\r
-#ifndef OPENSSL_NO_OCB\r
-#define OPENSSL_NO_OCB\r
-#endif\r
-#ifndef OPENSSL_NO_POSIX_IO\r
-#define OPENSSL_NO_POSIX_IO\r
-#endif\r
-#ifndef OPENSSL_NO_RFC3779\r
-#define OPENSSL_NO_RFC3779\r
-#endif\r
-#ifndef OPENSSL_NO_SCRYPT\r
-#define OPENSSL_NO_SCRYPT\r
-#endif\r
-#ifndef OPENSSL_NO_SCTP\r
-#define OPENSSL_NO_SCTP\r
-#endif\r
-#ifndef OPENSSL_NO_SOCK\r
-#define OPENSSL_NO_SOCK\r
-#endif\r
-#ifndef OPENSSL_NO_SSL_TRACE\r
-#define OPENSSL_NO_SSL_TRACE\r
-#endif\r
-#ifndef OPENSSL_NO_SSL3\r
-#define OPENSSL_NO_SSL3\r
-#endif\r
-#ifndef OPENSSL_NO_SSL3_METHOD\r
-#define OPENSSL_NO_SSL3_METHOD\r
-#endif\r
-#ifndef OPENSSL_NO_STDIO\r
-#define OPENSSL_NO_STDIO\r
-#endif\r
-#ifndef OPENSSL_NO_TESTS\r
-#define OPENSSL_NO_TESTS\r
-#endif\r
-#ifndef OPENSSL_NO_TLS1_3\r
-#define OPENSSL_NO_TLS1_3\r
-#endif\r
-#ifndef OPENSSL_NO_UBSAN\r
-#define OPENSSL_NO_UBSAN\r
-#endif\r
-#ifndef OPENSSL_NO_UI_CONSOLE\r
-#define OPENSSL_NO_UI_CONSOLE\r
-#endif\r
-#ifndef OPENSSL_NO_UNIT_TEST\r
-#define OPENSSL_NO_UNIT_TEST\r
-#endif\r
-#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS\r
-#define OPENSSL_NO_WEAK_SSL_CIPHERS\r
-#endif\r
-#ifndef OPENSSL_NO_DYNAMIC_ENGINE\r
-#define OPENSSL_NO_DYNAMIC_ENGINE\r
-#endif\r
-\r
-/*\r
- * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers\r
- * don't like that.  This will hopefully silence them.\r
- */\r
-#define NON_EMPTY_TRANSLATION_UNIT  static void *dummy = &dummy;\r
-\r
-/*\r
- * Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the\r
- * declarations of functions deprecated in or before <version>. Otherwise, they\r
- * still won't see them if the library has been built to disable deprecated\r
- * functions.\r
- */\r
-#ifndef DECLARE_DEPRECATED\r
-#define DECLARE_DEPRECATED(f)  f;\r
-  #ifdef __GNUC__\r
-    #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)\r
-      #undef DECLARE_DEPRECATED\r
-#define DECLARE_DEPRECATED(f)  f __attribute__ ((deprecated));\r
-    #endif\r
-  #elif defined (__SUNPRO_C)\r
-    #if (__SUNPRO_C >= 0x5130)\r
-      #undef DECLARE_DEPRECATED\r
-#define DECLARE_DEPRECATED(f)  f __attribute__ ((deprecated));\r
-    #endif\r
-  #endif\r
-#endif\r
-\r
-#ifndef OPENSSL_FILE\r
-  #ifdef OPENSSL_NO_FILENAMES\r
-#define OPENSSL_FILE  ""\r
-#define OPENSSL_LINE  0\r
-  #else\r
-#define OPENSSL_FILE  __FILE__\r
-#define OPENSSL_LINE  __LINE__\r
-  #endif\r
-#endif\r
-\r
-#ifndef OPENSSL_MIN_API\r
-#define OPENSSL_MIN_API  0\r
-#endif\r
-\r
-#if !defined (OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API\r
-  #undef OPENSSL_API_COMPAT\r
-#define OPENSSL_API_COMPAT  OPENSSL_MIN_API\r
-#endif\r
-\r
-/*\r
- * Do not deprecate things to be deprecated in version 1.2.0 before the\r
- * OpenSSL version number matches.\r
- */\r
-#if OPENSSL_VERSION_NUMBER < 0x10200000L\r
-#define DEPRECATEDIN_1_2_0(f)  f;\r
-#elif OPENSSL_API_COMPAT < 0x10200000L\r
-#define DEPRECATEDIN_1_2_0(f)  DECLARE_DEPRECATED(f)\r
-#else\r
-#define DEPRECATEDIN_1_2_0(f)\r
-#endif\r
-\r
-#if OPENSSL_API_COMPAT < 0x10100000L\r
-#define DEPRECATEDIN_1_1_0(f)  DECLARE_DEPRECATED(f)\r
-#else\r
-#define DEPRECATEDIN_1_1_0(f)\r
-#endif\r
-\r
-#if OPENSSL_API_COMPAT < 0x10000000L\r
-#define DEPRECATEDIN_1_0_0(f)  DECLARE_DEPRECATED(f)\r
-#else\r
-#define DEPRECATEDIN_1_0_0(f)\r
-#endif\r
-\r
-#if OPENSSL_API_COMPAT < 0x00908000L\r
-#define DEPRECATEDIN_0_9_8(f)  DECLARE_DEPRECATED(f)\r
-#else\r
-#define DEPRECATEDIN_0_9_8(f)\r
-#endif\r
-\r
-/* Generate 80386 code? */\r
-#undef I386_ONLY\r
-\r
-#undef OPENSSL_UNISTD\r
-#define OPENSSL_UNISTD  <unistd.h>\r
-\r
-#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\r
-\r
-/*\r
- * The following are cipher-specific, but are part of the public API.\r
- */\r
-#if !defined (OPENSSL_SYS_UEFI)\r
-  #undef BN_LLONG\r
-/* Only one for the following should be defined */\r
-  #undef SIXTY_FOUR_BIT_LONG\r
-  #undef SIXTY_FOUR_BIT\r
-#define THIRTY_TWO_BIT\r
-#endif\r
-\r
-#define RC4_INT  unsigned int\r
+/* Autogenerated conditional openssl feature list starts here */\r
+/* Autogenerated conditional openssl feature list ends here */\r
 \r
 #ifdef  __cplusplus\r
 }\r
diff --git a/CryptoPkg/Library/Include/openssl/opensslconf_generated.h b/CryptoPkg/Library/Include/openssl/opensslconf_generated.h
new file mode 100644 (file)
index 0000000..22a7216
--- /dev/null
@@ -0,0 +1,349 @@
+/*\r
+ * WARNING: do not edit!\r
+ * Generated from include/openssl/opensslconf.h.in\r
+ *\r
+ * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+ *\r
+ * Licensed under the OpenSSL license (the "License").  You may not use\r
+ * this file except in compliance with the License.  You can obtain a copy\r
+ * in the file LICENSE in the source distribution or at\r
+ * https://www.openssl.org/source/license.html\r
+ */\r
+#include <Library/PcdLib.h>\r
+#include <openssl/opensslv.h>\r
+\r
+#ifdef  __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+#ifdef OPENSSL_ALGORITHM_DEFINES\r
+  #error OPENSSL_ALGORITHM_DEFINES no longer supported\r
+#endif\r
+\r
+/*\r
+ * OpenSSL was configured with the following options:\r
+ */\r
+\r
+#ifndef OPENSSL_SYS_UEFI\r
+#define OPENSSL_SYS_UEFI  1\r
+#endif\r
+#define OPENSSL_MIN_API  0x10100000L\r
+#ifndef OPENSSL_NO_BF\r
+#define OPENSSL_NO_BF\r
+#endif\r
+#ifndef OPENSSL_NO_BLAKE2\r
+#define OPENSSL_NO_BLAKE2\r
+#endif\r
+#ifndef OPENSSL_NO_CAMELLIA\r
+#define OPENSSL_NO_CAMELLIA\r
+#endif\r
+#ifndef OPENSSL_NO_CAST\r
+#define OPENSSL_NO_CAST\r
+#endif\r
+#ifndef OPENSSL_NO_CHACHA\r
+#define OPENSSL_NO_CHACHA\r
+#endif\r
+#ifndef OPENSSL_NO_CMS\r
+#define OPENSSL_NO_CMS\r
+#endif\r
+#ifndef OPENSSL_NO_CT\r
+#define OPENSSL_NO_CT\r
+#endif\r
+#ifndef OPENSSL_NO_DES\r
+#define OPENSSL_NO_DES\r
+#endif\r
+#ifndef OPENSSL_NO_DSA\r
+#define OPENSSL_NO_DSA\r
+#endif\r
+#if !FixedPcdGetBool (PcdOpensslEcEnabled)\r
+  #ifndef OPENSSL_NO_EC\r
+#define OPENSSL_NO_EC\r
+  #endif\r
+#endif\r
+#ifndef OPENSSL_NO_IDEA\r
+#define OPENSSL_NO_IDEA\r
+#endif\r
+#ifndef OPENSSL_NO_MD2\r
+#define OPENSSL_NO_MD2\r
+#endif\r
+#ifndef OPENSSL_NO_MD4\r
+#define OPENSSL_NO_MD4\r
+#endif\r
+#ifndef OPENSSL_NO_MDC2\r
+#define OPENSSL_NO_MDC2\r
+#endif\r
+#ifndef OPENSSL_NO_POLY1305\r
+#define OPENSSL_NO_POLY1305\r
+#endif\r
+#ifndef OPENSSL_NO_RC2\r
+#define OPENSSL_NO_RC2\r
+#endif\r
+#ifndef OPENSSL_NO_RC4\r
+#define OPENSSL_NO_RC4\r
+#endif\r
+#ifndef OPENSSL_NO_RC5\r
+#define OPENSSL_NO_RC5\r
+#endif\r
+#ifndef OPENSSL_NO_RMD160\r
+#define OPENSSL_NO_RMD160\r
+#endif\r
+#ifndef OPENSSL_NO_SEED\r
+#define OPENSSL_NO_SEED\r
+#endif\r
+#ifndef OPENSSL_NO_SM2\r
+#define OPENSSL_NO_SM2\r
+#endif\r
+#ifndef OPENSSL_NO_SRP\r
+#define OPENSSL_NO_SRP\r
+#endif\r
+#ifndef OPENSSL_NO_TS\r
+#define OPENSSL_NO_TS\r
+#endif\r
+#ifndef OPENSSL_NO_WHIRLPOOL\r
+#define OPENSSL_NO_WHIRLPOOL\r
+#endif\r
+#ifndef OPENSSL_RAND_SEED_NONE\r
+#define OPENSSL_RAND_SEED_NONE\r
+#endif\r
+#ifndef OPENSSL_NO_AFALGENG\r
+#define OPENSSL_NO_AFALGENG\r
+#endif\r
+#ifndef OPENSSL_NO_APPS\r
+#define OPENSSL_NO_APPS\r
+#endif\r
+#ifndef OPENSSL_NO_ASAN\r
+#define OPENSSL_NO_ASAN\r
+#endif\r
+#ifndef OPENSSL_NO_ASYNC\r
+#define OPENSSL_NO_ASYNC\r
+#endif\r
+#ifndef OPENSSL_NO_AUTOERRINIT\r
+#define OPENSSL_NO_AUTOERRINIT\r
+#endif\r
+#ifndef OPENSSL_NO_AUTOLOAD_CONFIG\r
+#define OPENSSL_NO_AUTOLOAD_CONFIG\r
+#endif\r
+#ifndef OPENSSL_NO_CAPIENG\r
+#define OPENSSL_NO_CAPIENG\r
+#endif\r
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG\r
+#define OPENSSL_NO_CRYPTO_MDEBUG\r
+#endif\r
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE\r
+#define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE\r
+#endif\r
+#ifndef OPENSSL_NO_DEPRECATED\r
+#define OPENSSL_NO_DEPRECATED\r
+#endif\r
+#ifndef OPENSSL_NO_DEVCRYPTOENG\r
+#define OPENSSL_NO_DEVCRYPTOENG\r
+#endif\r
+#ifndef OPENSSL_NO_DGRAM\r
+#define OPENSSL_NO_DGRAM\r
+#endif\r
+#ifndef OPENSSL_NO_DTLS\r
+#define OPENSSL_NO_DTLS\r
+#endif\r
+#ifndef OPENSSL_NO_DTLS1\r
+#define OPENSSL_NO_DTLS1\r
+#endif\r
+#ifndef OPENSSL_NO_DTLS1_2\r
+#define OPENSSL_NO_DTLS1_2\r
+#endif\r
+#ifndef OPENSSL_NO_EC2M\r
+#define OPENSSL_NO_EC2M\r
+#endif\r
+#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128\r
+#define OPENSSL_NO_EC_NISTP_64_GCC_128\r
+#endif\r
+#ifndef OPENSSL_NO_ECDH\r
+#define OPENSSL_NO_ECDH\r
+#endif\r
+#ifndef OPENSSL_NO_ECDSA\r
+#define OPENSSL_NO_ECDSA\r
+#endif\r
+#ifndef OPENSSL_NO_EGD\r
+#define OPENSSL_NO_EGD\r
+#endif\r
+#ifndef OPENSSL_NO_ENGINE\r
+#define OPENSSL_NO_ENGINE\r
+#endif\r
+#ifndef OPENSSL_NO_ERR\r
+#define OPENSSL_NO_ERR\r
+#endif\r
+#ifndef OPENSSL_NO_EXTERNAL_TESTS\r
+#define OPENSSL_NO_EXTERNAL_TESTS\r
+#endif\r
+#ifndef OPENSSL_NO_FILENAMES\r
+#define OPENSSL_NO_FILENAMES\r
+#endif\r
+#ifndef OPENSSL_NO_FUZZ_AFL\r
+#define OPENSSL_NO_FUZZ_AFL\r
+#endif\r
+#ifndef OPENSSL_NO_FUZZ_LIBFUZZER\r
+#define OPENSSL_NO_FUZZ_LIBFUZZER\r
+#endif\r
+#ifndef OPENSSL_NO_GOST\r
+#define OPENSSL_NO_GOST\r
+#endif\r
+#ifndef OPENSSL_NO_HEARTBEATS\r
+#define OPENSSL_NO_HEARTBEATS\r
+#endif\r
+#ifndef OPENSSL_NO_HW\r
+#define OPENSSL_NO_HW\r
+#endif\r
+#ifndef OPENSSL_NO_MSAN\r
+#define OPENSSL_NO_MSAN\r
+#endif\r
+#ifndef OPENSSL_NO_OCB\r
+#define OPENSSL_NO_OCB\r
+#endif\r
+#ifndef OPENSSL_NO_POSIX_IO\r
+#define OPENSSL_NO_POSIX_IO\r
+#endif\r
+#ifndef OPENSSL_NO_RFC3779\r
+#define OPENSSL_NO_RFC3779\r
+#endif\r
+#ifndef OPENSSL_NO_SCRYPT\r
+#define OPENSSL_NO_SCRYPT\r
+#endif\r
+#ifndef OPENSSL_NO_SCTP\r
+#define OPENSSL_NO_SCTP\r
+#endif\r
+#ifndef OPENSSL_NO_SOCK\r
+#define OPENSSL_NO_SOCK\r
+#endif\r
+#ifndef OPENSSL_NO_SSL_TRACE\r
+#define OPENSSL_NO_SSL_TRACE\r
+#endif\r
+#ifndef OPENSSL_NO_SSL3\r
+#define OPENSSL_NO_SSL3\r
+#endif\r
+#ifndef OPENSSL_NO_SSL3_METHOD\r
+#define OPENSSL_NO_SSL3_METHOD\r
+#endif\r
+#ifndef OPENSSL_NO_STDIO\r
+#define OPENSSL_NO_STDIO\r
+#endif\r
+#ifndef OPENSSL_NO_TESTS\r
+#define OPENSSL_NO_TESTS\r
+#endif\r
+#ifndef OPENSSL_NO_TLS1_3\r
+#define OPENSSL_NO_TLS1_3\r
+#endif\r
+#ifndef OPENSSL_NO_UBSAN\r
+#define OPENSSL_NO_UBSAN\r
+#endif\r
+#ifndef OPENSSL_NO_UI_CONSOLE\r
+#define OPENSSL_NO_UI_CONSOLE\r
+#endif\r
+#ifndef OPENSSL_NO_UNIT_TEST\r
+#define OPENSSL_NO_UNIT_TEST\r
+#endif\r
+#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS\r
+#define OPENSSL_NO_WEAK_SSL_CIPHERS\r
+#endif\r
+#ifndef OPENSSL_NO_DYNAMIC_ENGINE\r
+#define OPENSSL_NO_DYNAMIC_ENGINE\r
+#endif\r
+\r
+/*\r
+ * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers\r
+ * don't like that.  This will hopefully silence them.\r
+ */\r
+#define NON_EMPTY_TRANSLATION_UNIT  static void *dummy = &dummy;\r
+\r
+/*\r
+ * Applications should use -DOPENSSL_API_COMPAT=<version> to suppress the\r
+ * declarations of functions deprecated in or before <version>. Otherwise, they\r
+ * still won't see them if the library has been built to disable deprecated\r
+ * functions.\r
+ */\r
+#ifndef DECLARE_DEPRECATED\r
+#define DECLARE_DEPRECATED(f)  f;\r
+  #ifdef __GNUC__\r
+    #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0)\r
+      #undef DECLARE_DEPRECATED\r
+#define DECLARE_DEPRECATED(f)  f __attribute__ ((deprecated));\r
+    #endif\r
+  #elif defined (__SUNPRO_C)\r
+    #if (__SUNPRO_C >= 0x5130)\r
+      #undef DECLARE_DEPRECATED\r
+#define DECLARE_DEPRECATED(f)  f __attribute__ ((deprecated));\r
+    #endif\r
+  #endif\r
+#endif\r
+\r
+#ifndef OPENSSL_FILE\r
+  #ifdef OPENSSL_NO_FILENAMES\r
+#define OPENSSL_FILE  ""\r
+#define OPENSSL_LINE  0\r
+  #else\r
+#define OPENSSL_FILE  __FILE__\r
+#define OPENSSL_LINE  __LINE__\r
+  #endif\r
+#endif\r
+\r
+#ifndef OPENSSL_MIN_API\r
+#define OPENSSL_MIN_API  0\r
+#endif\r
+\r
+#if !defined (OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API\r
+  #undef OPENSSL_API_COMPAT\r
+#define OPENSSL_API_COMPAT  OPENSSL_MIN_API\r
+#endif\r
+\r
+/*\r
+ * Do not deprecate things to be deprecated in version 1.2.0 before the\r
+ * OpenSSL version number matches.\r
+ */\r
+#if OPENSSL_VERSION_NUMBER < 0x10200000L\r
+#define DEPRECATEDIN_1_2_0(f)  f;\r
+#elif OPENSSL_API_COMPAT < 0x10200000L\r
+#define DEPRECATEDIN_1_2_0(f)  DECLARE_DEPRECATED(f)\r
+#else\r
+#define DEPRECATEDIN_1_2_0(f)\r
+#endif\r
+\r
+#if OPENSSL_API_COMPAT < 0x10100000L\r
+#define DEPRECATEDIN_1_1_0(f)  DECLARE_DEPRECATED(f)\r
+#else\r
+#define DEPRECATEDIN_1_1_0(f)\r
+#endif\r
+\r
+#if OPENSSL_API_COMPAT < 0x10000000L\r
+#define DEPRECATEDIN_1_0_0(f)  DECLARE_DEPRECATED(f)\r
+#else\r
+#define DEPRECATEDIN_1_0_0(f)\r
+#endif\r
+\r
+#if OPENSSL_API_COMPAT < 0x00908000L\r
+#define DEPRECATEDIN_0_9_8(f)  DECLARE_DEPRECATED(f)\r
+#else\r
+#define DEPRECATEDIN_0_9_8(f)\r
+#endif\r
+\r
+/* Generate 80386 code? */\r
+#undef I386_ONLY\r
+\r
+#undef OPENSSL_UNISTD\r
+#define OPENSSL_UNISTD  <unistd.h>\r
+\r
+#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\r
+\r
+/*\r
+ * The following are cipher-specific, but are part of the public API.\r
+ */\r
+#if !defined (OPENSSL_SYS_UEFI)\r
+  #undef BN_LLONG\r
+/* Only one for the following should be defined */\r
+  #undef SIXTY_FOUR_BIT_LONG\r
+  #undef SIXTY_FOUR_BIT\r
+#define THIRTY_TWO_BIT\r
+#endif\r
+\r
+#define RC4_INT  unsigned int\r
+\r
+#ifdef  __cplusplus\r
+}\r
+#endif\r