diff U3 crypto/x509/x509_vfy.c crypto/x509/x509_vfy.c\r
--- crypto/x509/x509_vfy.c Thu Jun 11 21:52:58 2015\r
+++ crypto/x509/x509_vfy.c Fri Jun 12 11:29:37 2015\r
-@@ -1653,6 +1653,10 @@\r
- \r
- static int check_cert_time(X509_STORE_CTX *ctx, X509 *x)\r
- {\r
-+#ifdef OPENSSL_SYS_UEFI\r
-+ /* Bypass Certificate Time Checking for UEFI version. */\r
-+ return 1;\r
-+#else\r
- time_t *ptime;\r
- int i;\r
- \r
-@@ -1692,6 +1696,7 @@\r
- }\r
- \r
- return 1;\r
-+#endif\r
- }\r
- \r
- static int internal_verify(X509_STORE_CTX *ctx)\r
+@@ -935,6 +935,8 @@\r
+ ctx->current_crl = crl;\r
+ if (ctx->param->flags & X509_V_FLAG_USE_CHECK_TIME)\r
+ ptime = &ctx->param->check_time;\r
++ else if (ctx->param->flags & X509_V_FLAG_NO_CHECK_TIME)\r
++ return 1;\r
+ else\r
+ ptime = NULL;\r
+ \r
+@@ -1658,6 +1660,8 @@\r
+ \r
+ if (ctx->param->flags & X509_V_FLAG_USE_CHECK_TIME)\r
+ ptime = &ctx->param->check_time;\r
++ else if (ctx->param->flags & X509_V_FLAG_NO_CHECK_TIME)\r
++ return 1;\r
+ else\r
+ ptime = NULL;\r
+ \r
+diff U3 crypto/x509/x509_vfy.h crypto/x509/x509_vfy.h\r
+--- crypto/x509/x509_vfy.h Thu Jul 09 19:57:16 2015\r
++++ crypto/x509/x509_vfy.h Thu Oct 29 14:05:57 2015\r
+@@ -438,6 +438,8 @@\r
+ * will force the behaviour to match that of previous versions.\r
+ */\r
+ # define X509_V_FLAG_NO_ALT_CHAINS 0x100000\r
++/* Do not check certificate/CRL validity against current time */\r
++# define X509_V_FLAG_NO_CHECK_TIME 0x200000\r
+ \r
+ # define X509_VP_FLAG_DEFAULT 0x1\r
+ # define X509_VP_FLAG_OVERWRITE 0x2\r
diff U3 crypto/x509v3/ext_dat.h crypto/x509v3/ext_dat.h\r
--- crypto/x509v3/ext_dat.h Thu Jun 11 21:50:12 2015\r
+++ crypto/x509v3/ext_dat.h Fri Jun 12 11:11:03 2015\r
diff U3 crypto/opensslconf.h crypto/opensslconf.h\r
--- crypto/opensslconf.h Thu Jun 11 21:55:38 2015\r
+++ crypto/opensslconf.h Fri Jun 12 10:28:27 2015\r
-@@ -159,9 +159,12 @@\r
- /* Should we define BN_DIV2W here? */\r
+@@ -5,15 +5,72 @@\r
+ extern "C" {\r
+ #endif\r
+ /* OpenSSL was configured with the following options: */\r
++#ifndef OPENSSL_SYSNAME_UEFI\r
++# define OPENSSL_SYSNAME_UEFI\r
++#endif\r
+ #ifndef OPENSSL_DOING_MAKEDEPEND\r
\r
- /* Only one for the following should be defined */\r
-+/* Bypass the following definitions for UEFI version. */\r
-+#if !defined(OPENSSL_SYS_UEFI)\r
- #undef SIXTY_FOUR_BIT_LONG\r
- #undef SIXTY_FOUR_BIT\r
- #define THIRTY_TWO_BIT\r
+ \r
++#ifndef OPENSSL_NO_BF\r
++# define OPENSSL_NO_BF\r
++#endif\r
++#ifndef OPENSSL_NO_CAMELLIA\r
++# define OPENSSL_NO_CAMELLIA\r
++#endif\r
++#ifndef OPENSSL_NO_CAPIENG\r
++# define OPENSSL_NO_CAPIENG\r
++#endif\r
++#ifndef OPENSSL_NO_CAST\r
++# define OPENSSL_NO_CAST\r
++#endif\r
++#ifndef OPENSSL_NO_CMS\r
++# define OPENSSL_NO_CMS\r
++#endif\r
++#ifndef OPENSSL_NO_DEPRECATED\r
++# define OPENSSL_NO_DEPRECATED\r
++#endif\r
++#ifndef OPENSSL_NO_DGRAM\r
++# define OPENSSL_NO_DGRAM\r
++#endif\r
++#ifndef OPENSSL_NO_DSA\r
++# define OPENSSL_NO_DSA\r
++#endif\r
++#ifndef OPENSSL_NO_DYNAMIC_ENGINE\r
++# define OPENSSL_NO_DYNAMIC_ENGINE\r
++#endif\r
++#ifndef OPENSSL_NO_EC\r
++# define OPENSSL_NO_EC\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_ENGINE\r
++# define OPENSSL_NO_ENGINE\r
++#endif\r
++#ifndef OPENSSL_NO_ENGINES\r
++# define OPENSSL_NO_ENGINES\r
++#endif\r
++#ifndef OPENSSL_NO_FILENAMES\r
++# define OPENSSL_NO_FILENAMES\r
++#endif\r
++#ifndef OPENSSL_NO_FP_API\r
++# define OPENSSL_NO_FP_API\r
++#endif\r
+ #ifndef OPENSSL_NO_GMP\r
+ # define OPENSSL_NO_GMP\r
+ #endif\r
++#ifndef OPENSSL_NO_GOST\r
++# define OPENSSL_NO_GOST\r
++#endif\r
++#ifndef OPENSSL_NO_IDEA\r
++# define OPENSSL_NO_IDEA\r
++#endif\r
+ #ifndef OPENSSL_NO_JPAKE\r
+ # define OPENSSL_NO_JPAKE\r
+ #endif\r
+@@ -23,30 +80,90 @@\r
+ #ifndef OPENSSL_NO_LIBUNBOUND\r
+ # define OPENSSL_NO_LIBUNBOUND\r
+ #endif\r
++#ifndef OPENSSL_NO_LOCKING\r
++# define OPENSSL_NO_LOCKING\r
++#endif\r
+ #ifndef OPENSSL_NO_MD2\r
+ # define OPENSSL_NO_MD2\r
+ #endif\r
++#ifndef OPENSSL_NO_MDC2\r
++# define OPENSSL_NO_MDC2\r
++#endif\r
++#ifndef OPENSSL_NO_POSIX_IO\r
++# define OPENSSL_NO_POSIX_IO\r
++#endif\r
++#ifndef OPENSSL_NO_RC2\r
++# define OPENSSL_NO_RC2\r
++#endif\r
+ #ifndef OPENSSL_NO_RC5\r
+ # define OPENSSL_NO_RC5\r
+ #endif\r
++#ifndef OPENSSL_NO_RCS\r
++# define OPENSSL_NO_RCS\r
++#endif\r
+ #ifndef OPENSSL_NO_RFC3779\r
+ # define OPENSSL_NO_RFC3779\r
+ #endif\r
++#ifndef OPENSSL_NO_RIPEMD\r
++# define OPENSSL_NO_RIPEMD\r
++#endif\r
++#ifndef OPENSSL_NO_SCRYPT\r
++# define OPENSSL_NO_SCRYPT\r
++#endif\r
++#ifndef OPENSSL_NO_SCT\r
++# define OPENSSL_NO_SCT\r
++#endif\r
+ #ifndef OPENSSL_NO_SCTP\r
+ # define OPENSSL_NO_SCTP\r
+ #endif\r
++#ifndef OPENSSL_NO_SEED\r
++# define OPENSSL_NO_SEED\r
++#endif\r
++#ifndef OPENSSL_NO_SHA0\r
++# define OPENSSL_NO_SHA0\r
++#endif\r
++#ifndef OPENSSL_NO_SOCK\r
++# define OPENSSL_NO_SOCK\r
++#endif\r
++#ifndef OPENSSL_NO_SRP\r
++# define OPENSSL_NO_SRP\r
++#endif\r
+ #ifndef OPENSSL_NO_SSL_TRACE\r
+ # define OPENSSL_NO_SSL_TRACE\r
+ #endif\r
++#ifndef OPENSSL_NO_SSL2\r
++# define OPENSSL_NO_SSL2\r
++#endif\r
++#ifndef OPENSSL_NO_SSL3\r
++# define OPENSSL_NO_SSL3\r
++#endif\r
++#ifndef OPENSSL_NO_STDIO\r
++# define OPENSSL_NO_STDIO\r
++#endif\r
+ #ifndef OPENSSL_NO_STORE\r
+ # define OPENSSL_NO_STORE\r
+ #endif\r
++#ifndef OPENSSL_NO_UI\r
++# define OPENSSL_NO_UI\r
++#endif\r
+ #ifndef OPENSSL_NO_UNIT_TEST\r
+ # define OPENSSL_NO_UNIT_TEST\r
+ #endif\r
++#ifndef OPENSSL_NO_WHIRLPOOL\r
++# define OPENSSL_NO_WHIRLPOOL\r
++#endif\r
\r
- #if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)\r
-diff U3 crypto/err/err.c crypto/err/err.c\r
---- crypto/err/err.c\r
-+++ crypto/err/err.c\r
-@@ -1072,7 +1072,12 @@ void ERR_set_error_data(char *data, int flags)\r
- es->err_data_flags[i] = flags;\r
- }\r
+ #endif /* OPENSSL_DOING_MAKEDEPEND */\r
\r
-+/* Add EFIAPI for UEFI version. */\r
-+#if defined(OPENSSL_SYS_UEFI)\r
-+void EFIAPI ERR_add_error_data(int num, ...)\r
-+#else\r
- void ERR_add_error_data(int num, ...)\r
++#ifndef OPENSSL_NO_ASM\r
++# define OPENSSL_NO_ASM\r
+#endif\r
- {\r
- va_list args;\r
- va_start(args, num);\r
-diff U3 crypto/err/err.h crypto/err/err.h\r
---- crypto/err/err.h\r
-+++ crypto/err/err.h\r
-@@ -344,7 +344,14 @@ void ERR_print_errors_fp(FILE *fp);\r
- # ifndef OPENSSL_NO_BIO\r
- void ERR_print_errors(BIO *bp);\r
- # endif\r
-+\r
-+/* Add EFIAPI for UEFI version. */\r
-+#if defined(OPENSSL_SYS_UEFI)\r
-+void EFIAPI ERR_add_error_data(int num, ...);\r
-+#else\r
- void ERR_add_error_data(int num, ...);\r
++#ifndef OPENSSL_NO_ERR\r
++# define OPENSSL_NO_ERR\r
+#endif\r
-+\r
- void ERR_add_error_vdata(int num, va_list args);\r
- void ERR_load_strings(int lib, ERR_STRING_DATA str[]);\r
- void ERR_unload_strings(int lib, ERR_STRING_DATA str[]);\r
++#ifndef OPENSSL_NO_HW\r
++# define OPENSSL_NO_HW\r
++#endif\r
+ #ifndef OPENSSL_NO_DYNAMIC_ENGINE\r
+ # define OPENSSL_NO_DYNAMIC_ENGINE\r
+ #endif\r
+@@ -56,12 +173,66 @@\r
+ who haven't had the time to do the appropriate changes in their\r
+ applications. */\r
+ #ifdef OPENSSL_ALGORITHM_DEFINES\r
++# if defined(OPENSSL_NO_BF) && !defined(NO_BF)\r
++# define NO_BF\r
++# endif\r
++# if defined(OPENSSL_NO_CAMELLIA) && !defined(NO_CAMELLIA)\r
++# define NO_CAMELLIA\r
++# endif\r
++# if defined(OPENSSL_NO_CAPIENG) && !defined(NO_CAPIENG)\r
++# define NO_CAPIENG\r
++# endif\r
++# if defined(OPENSSL_NO_CAST) && !defined(NO_CAST)\r
++# define NO_CAST\r
++# endif\r
++# if defined(OPENSSL_NO_CMS) && !defined(NO_CMS)\r
++# define NO_CMS\r
++# endif\r
++# if defined(OPENSSL_NO_DEPRECATED) && !defined(NO_DEPRECATED)\r
++# define NO_DEPRECATED\r
++# endif\r
++# if defined(OPENSSL_NO_DGRAM) && !defined(NO_DGRAM)\r
++# define NO_DGRAM\r
++# endif\r
++# if defined(OPENSSL_NO_DSA) && !defined(NO_DSA)\r
++# define NO_DSA\r
++# endif\r
++# if defined(OPENSSL_NO_DYNAMIC_ENGINE) && !defined(NO_DYNAMIC_ENGINE)\r
++# define NO_DYNAMIC_ENGINE\r
++# endif\r
++# if defined(OPENSSL_NO_EC) && !defined(NO_EC)\r
++# define NO_EC\r
++# endif\r
+ # if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128)\r
+ # define NO_EC_NISTP_64_GCC_128\r
+ # endif\r
++# if defined(OPENSSL_NO_ECDH) && !defined(NO_ECDH)\r
++# define NO_ECDH\r
++# endif\r
++# if defined(OPENSSL_NO_ECDSA) && !defined(NO_ECDSA)\r
++# define NO_ECDSA\r
++# endif\r
++# if defined(OPENSSL_NO_ENGINE) && !defined(NO_ENGINE)\r
++# define NO_ENGINE\r
++# endif\r
++# if defined(OPENSSL_NO_ENGINES) && !defined(NO_ENGINES)\r
++# define NO_ENGINES\r
++# endif\r
++# if defined(OPENSSL_NO_FILENAMES) && !defined(NO_FILENAMES)\r
++# define NO_FILENAMES\r
++# endif\r
++# if defined(OPENSSL_NO_FP_API) && !defined(NO_FP_API)\r
++# define NO_FP_API\r
++# endif\r
+ # if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)\r
+ # define NO_GMP\r
+ # endif\r
++# if defined(OPENSSL_NO_GOST) && !defined(NO_GOST)\r
++# define NO_GOST\r
++# endif\r
++# if defined(OPENSSL_NO_IDEA) && !defined(NO_IDEA)\r
++# define NO_IDEA\r
++# endif\r
+ # if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)\r
+ # define NO_JPAKE\r
+ # endif\r
+@@ -71,27 +242,78 @@\r
+ # if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND)\r
+ # define NO_LIBUNBOUND\r
+ # endif\r
++# if defined(OPENSSL_NO_LOCKING) && !defined(NO_LOCKING)\r
++# define NO_LOCKING\r
++# endif\r
+ # if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)\r
+ # define NO_MD2\r
+ # endif\r
++# if defined(OPENSSL_NO_MDC2) && !defined(NO_MDC2)\r
++# define NO_MDC2\r
++# endif\r
++# if defined(OPENSSL_NO_POSIX_IO) && !defined(NO_POSIX_IO)\r
++# define NO_POSIX_IO\r
++# endif\r
++# if defined(OPENSSL_NO_RC2) && !defined(NO_RC2)\r
++# define NO_RC2\r
++# endif\r
+ # if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)\r
+ # define NO_RC5\r
+ # endif\r
++# if defined(OPENSSL_NO_RCS) && !defined(NO_RCS)\r
++# define NO_RCS\r
++# endif\r
+ # if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)\r
+ # define NO_RFC3779\r
+ # endif\r
++# if defined(OPENSSL_NO_RIPEMD) && !defined(NO_RIPEMD)\r
++# define NO_RIPEMD\r
++# endif\r
++# if defined(OPENSSL_NO_SCRYPT) && !defined(NO_SCRYPT)\r
++# define NO_SCRYPT\r
++# endif\r
++# if defined(OPENSSL_NO_SCT) && !defined(NO_SCT)\r
++# define NO_SCT\r
++# endif\r
+ # if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP)\r
+ # define NO_SCTP\r
+ # endif\r
++# if defined(OPENSSL_NO_SEED) && !defined(NO_SEED)\r
++# define NO_SEED\r
++# endif\r
++# if defined(OPENSSL_NO_SHA0) && !defined(NO_SHA0)\r
++# define NO_SHA0\r
++# endif\r
++# if defined(OPENSSL_NO_SOCK) && !defined(NO_SOCK)\r
++# define NO_SOCK\r
++# endif\r
++# if defined(OPENSSL_NO_SRP) && !defined(NO_SRP)\r
++# define NO_SRP\r
++# endif\r
+ # if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE)\r
+ # define NO_SSL_TRACE\r
+ # endif\r
++# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2)\r
++# define NO_SSL2\r
++# endif\r
++# if defined(OPENSSL_NO_SSL3) && !defined(NO_SSL3)\r
++# define NO_SSL3\r
++# endif\r
++# if defined(OPENSSL_NO_STDIO) && !defined(NO_STDIO)\r
++# define NO_STDIO\r
++# endif\r
+ # if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)\r
+ # define NO_STORE\r
+ # endif\r
++# if defined(OPENSSL_NO_UI) && !defined(NO_UI)\r
++# define NO_UI\r
++# endif\r
+ # if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST)\r
+ # define NO_UNIT_TEST\r
+ # endif\r
++# if defined(OPENSSL_NO_WHIRLPOOL) && !defined(NO_WHIRLPOOL)\r
++# define NO_WHIRLPOOL\r
++# endif\r
+ #endif\r
+ \r
+ /* crypto/opensslconf.h.in */\r
+@@ -152,7 +374,7 @@\r
+ #endif\r
+ #endif\r
+ \r
+-#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)\r
++#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) && !defined(OPENSSL_SYSNAME_UEFI)\r
+ #define CONFIG_HEADER_BN_H\r
+ #undef BN_LLONG\r
+ \r
+diff U3 e_os.h e_os.h\r
+--- e_os.h Thu Jul 09 19:57:16 2015\r
++++ e_os.h Thu Oct 29 16:54:10 2015\r
+@@ -136,7 +136,7 @@\r
+ # define MSDOS\r
+ # endif\r
+ \r
+-# if defined(MSDOS) && !defined(GETPID_IS_MEANINGLESS)\r
++# if (defined(MSDOS) || defined(OPENSSL_SYS_UEFI)) && !defined(GETPID_IS_MEANINGLESS)\r
+ # define GETPID_IS_MEANINGLESS\r
+ # endif\r
+ \r
+diff U3 e_os2.h e_os2.h\r
+--- e_os2.h Thu Jul 09 19:57:16 2015\r
++++ e_os2.h Thu Oct 29 15:08:19 2015\r
+@@ -97,7 +97,14 @@\r
+ * For 32 bit environment, there seems to be the CygWin environment and then\r
+ * all the others that try to do the same thing Microsoft does...\r
+ */\r
+-# if defined(OPENSSL_SYSNAME_UWIN)\r
++/*\r
++ * UEFI lives here because it might be built with a Microsoft toolchain and\r
++ * we need to avoid the false positive match on Windows.\r
++ */\r
++# if defined(OPENSSL_SYSNAME_UEFI)\r
++# undef OPENSSL_SYS_UNIX\r
++# define OPENSSL_SYS_UEFI\r
++# elif defined(OPENSSL_SYSNAME_UWIN)\r
+ # undef OPENSSL_SYS_UNIX\r
+ # define OPENSSL_SYS_WIN32_UWIN\r
+ # else\r