On 10 June 2015 at 12:22, Ard Biesheuvel <ard.biesheu...@linaro.org> wrote: > On 10 June 2015 at 04:21, qlong <qin.l...@intel.com> wrote: >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Long, Qin <qin.l...@intel.com> >> Signed-off-by: qlong <qin.l...@intel.com> > > Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org> >
I do have a question, though. Why does the underlying patch replace __FILE__ and __LINE__ references? These macros appear in MdeModulePkg unconditionally, so I suppose all supported toolchains can deal with them >> --- >> .../Library/OpensslLib/EDKII_openssl-0.9.8zf.patch | 279 ---------------- >> .../Library/OpensslLib/EDKII_openssl-1.0.2a.patch | 358 >> +++++++++++++++++++++ >> 2 files changed, 358 insertions(+), 279 deletions(-) >> delete mode 100644 CryptoPkg/Library/OpensslLib/EDKII_openssl-0.9.8zf.patch >> create mode 100644 CryptoPkg/Library/OpensslLib/EDKII_openssl-1.0.2a.patch >> >> diff --git a/CryptoPkg/Library/OpensslLib/EDKII_openssl-0.9.8zf.patch >> b/CryptoPkg/Library/OpensslLib/EDKII_openssl-0.9.8zf.patch >> deleted file mode 100644 >> index 4abe62c..0000000 >> --- a/CryptoPkg/Library/OpensslLib/EDKII_openssl-0.9.8zf.patch >> +++ /dev/null >> @@ -1,279 +0,0 @@ >> -Index: crypto/bio/bss_file.c >> -=================================================================== >> ---- crypto/bio/bss_file.c (revision 1) >> -+++ crypto/bio/bss_file.c (working copy) >> -@@ -418,6 +418,23 @@ >> - return (ret); >> - } >> - >> -+#else >> -+ >> -+BIO_METHOD *BIO_s_file(void) >> -+{ >> -+ return NULL; >> -+} >> -+ >> -+BIO *BIO_new_file(const char *filename, const char *mode) >> -+{ >> -+ return NULL; >> -+} >> -+ >> -+BIO *BIO_new_fp(FILE *stream, int close_flag) >> -+{ >> -+ return NULL; >> -+} >> -+ >> - # endif /* OPENSSL_NO_STDIO */ >> - >> - #endif /* HEADER_BSS_FILE_C */ >> -Index: crypto/crypto.h >> -=================================================================== >> ---- crypto/crypto.h (revision 1) >> -+++ crypto/crypto.h (working copy) >> -@@ -239,15 +239,15 @@ >> - # ifndef OPENSSL_NO_LOCKING >> - # ifndef CRYPTO_w_lock >> - # define CRYPTO_w_lock(type) \ >> -- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) >> -+ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,NULL,0) >> - # define CRYPTO_w_unlock(type) \ >> -- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) >> -+ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,NULL,0) >> - # define CRYPTO_r_lock(type) \ >> -- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) >> -+ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,NULL,0) >> - # define CRYPTO_r_unlock(type) \ >> -- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) >> -+ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,NULL,0) >> - # define CRYPTO_add(addr,amount,type) \ >> -- CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__) >> -+ CRYPTO_add_lock(addr,amount,type,NULL,0) >> - # endif >> - # else >> - # define CRYPTO_w_lock(a) >> -@@ -374,19 +374,19 @@ >> - # define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE) >> - # define is_MemCheck_on() CRYPTO_is_mem_check_on() >> - >> --# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__) >> --# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__) >> -+# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,NULL,0) >> -+# define OPENSSL_strdup(str) CRYPTO_strdup((str),NULL,0) >> - # define OPENSSL_realloc(addr,num) \ >> -- CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__) >> -+ CRYPTO_realloc((char *)addr,(int)num,NULL,0) >> - # define OPENSSL_realloc_clean(addr,old_num,num) \ >> -- CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__) >> -+ CRYPTO_realloc_clean(addr,old_num,num,NULL,0) >> - # define OPENSSL_remalloc(addr,num) \ >> -- CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__) >> -+ CRYPTO_remalloc((char **)addr,(int)num,NULL,0) >> - # define OPENSSL_freeFunc CRYPTO_free >> - # define OPENSSL_free(addr) CRYPTO_free(addr) >> - >> - # define OPENSSL_malloc_locked(num) \ >> -- CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) >> -+ CRYPTO_malloc_locked((int)num,NULL,0) >> - # define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) >> - >> - const char *SSLeay_version(int type); >> -@@ -531,7 +531,7 @@ >> - long CRYPTO_get_mem_debug_options(void); >> - >> - # define CRYPTO_push_info(info) \ >> -- CRYPTO_push_info_(info, __FILE__, __LINE__); >> -+ CRYPTO_push_info_(info, NULL, 0); >> - int CRYPTO_push_info_(const char *info, const char *file, int line); >> - int CRYPTO_pop_info(void); >> - int CRYPTO_remove_all_info(void); >> -@@ -578,7 +578,7 @@ >> - >> - /* die if we have to */ >> - void OpenSSLDie(const char *file, int line, const char *assertion); >> --# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, >> __LINE__, #e),1)) >> -+# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(NULL, 0, >> #e),1)) >> - >> - unsigned long *OPENSSL_ia32cap_loc(void); >> - # define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) >> -@@ -585,10 +585,10 @@ >> - int OPENSSL_isservice(void); >> - >> - # ifdef OPENSSL_FIPS >> --# define FIPS_ERROR_IGNORED(alg) OpenSSLDie(__FILE__, __LINE__, \ >> -+# define FIPS_ERROR_IGNORED(alg) OpenSSLDie(NULL, 0, \ >> - alg " previous FIPS forbidden algorithm error ignored"); >> - >> --# define FIPS_BAD_ABORT(alg) OpenSSLDie(__FILE__, __LINE__, \ >> -+# define FIPS_BAD_ABORT(alg) OpenSSLDie(NULL, 0, \ >> - #alg " Algorithm forbidden in FIPS mode"); >> - >> - # ifdef OPENSSL_FIPS_STRICT >> -Index: crypto/err/err.c >> -=================================================================== >> ---- crypto/err/err.c (revision 1) >> -+++ crypto/err/err.c (working copy) >> -@@ -321,7 +321,12 @@ >> - es->err_data_flags[i] = flags; >> - } >> - >> -+/* Add EFIAPI for UEFI version. */ >> -+#if defined(OPENSSL_SYS_UEFI) >> -+void EFIAPI ERR_add_error_data(int num, ...) >> -+#else >> - void ERR_add_error_data(int num, ...) >> -+#endif >> - { >> - va_list args; >> - int i, n, s; >> -Index: crypto/err/err.h >> -=================================================================== >> ---- crypto/err/err.h (revision 1) >> -+++ crypto/err/err.h (working copy) >> -@@ -285,7 +285,13 @@ >> - # endif >> - # ifndef OPENSSL_NO_BIO >> - void ERR_print_errors(BIO *bp); >> -+ >> -+/* Add EFIAPI for UEFI version. */ >> -+#if defined(OPENSSL_SYS_UEFI) >> -+void EFIAPI ERR_add_error_data(int num, ...); >> -+#else >> - void ERR_add_error_data(int num, ...); >> -+#endif >> - # endif >> - void ERR_load_strings(int lib, ERR_STRING_DATA str[]); >> - void ERR_unload_strings(int lib, ERR_STRING_DATA str[]); >> -Index: crypto/opensslconf.h >> -=================================================================== >> ---- crypto/opensslconf.h (revision 1) >> -+++ crypto/opensslconf.h (working copy) >> -@@ -162,6 +162,9 @@ >> - /* The prime number generation stuff may not work when >> - * EIGHT_BIT but I don't care since I've only used this mode >> - * for debuging the bignum libraries */ >> -+ >> -+/* Bypass following definition for UEFI version. */ >> -+#if !defined(OPENSSL_SYS_UEFI) >> - #undef SIXTY_FOUR_BIT_LONG >> - #undef SIXTY_FOUR_BIT >> - #define THIRTY_TWO_BIT >> -@@ -169,6 +172,8 @@ >> - #undef EIGHT_BIT >> - #endif >> - >> -+#endif >> -+ >> - #if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) >> - #define CONFIG_HEADER_RC4_LOCL_H >> - /* if this is defined data[i] is used instead of *data, this is a %20 >> -Index: crypto/pkcs7/pk7_smime.c >> -=================================================================== >> ---- crypto/pkcs7/pk7_smime.c (revision 1) >> -+++ crypto/pkcs7/pk7_smime.c (working copy) >> -@@ -90,7 +90,14 @@ >> - if (!PKCS7_content_new(p7, NID_pkcs7_data)) >> - goto err; >> - >> -+#if defined(OPENSSL_SYS_UEFI) >> -+ /* >> -+ * NOTE: Update to SHA-256 digest algorithm for UEFI version. >> -+ */ >> -+ if (!(si = PKCS7_add_signature(p7, signcert, pkey, EVP_sha256()))) { >> -+#else >> - if (!(si = PKCS7_add_signature(p7, signcert, pkey, EVP_sha1()))) { >> -+#endif >> - PKCS7err(PKCS7_F_PKCS7_SIGN, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR); >> - goto err; >> - } >> -@@ -175,7 +182,8 @@ >> - STACK_OF(PKCS7_SIGNER_INFO) *sinfos; >> - PKCS7_SIGNER_INFO *si; >> - X509_STORE_CTX cert_ctx; >> -- char buf[4096]; >> -+ char *buf = NULL; >> -+ int bufsiz; >> - int i, j = 0, k, ret = 0; >> - BIO *p7bio; >> - BIO *tmpin, *tmpout; >> -@@ -286,6 +294,12 @@ >> - } else >> - tmpout = out; >> - >> -+ bufsiz = 4096; >> -+ buf = OPENSSL_malloc (bufsiz); >> -+ if (buf == NULL) { >> -+ goto err; >> -+ } >> -+ >> - /* We now have to 'read' from p7bio to calculate digests etc. */ >> - for (;;) { >> - i = BIO_read(p7bio, buf, sizeof(buf)); >> -@@ -328,6 +342,10 @@ >> - >> - sk_X509_free(signers); >> - >> -+ if (buf != NULL) { >> -+ OPENSSL_free (buf); >> -+ } >> -+ >> - return ret; >> - } >> - >> -Index: crypto/rand/rand_egd.c >> -=================================================================== >> ---- crypto/rand/rand_egd.c (revision 1) >> -+++ crypto/rand/rand_egd.c (working copy) >> -@@ -95,7 +95,7 @@ >> - * RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255. >> - */ >> - >> --#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || >> defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || >> defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS) >> -+#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || >> defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || >> defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS) || >> defined(OPENSSL_SYS_UEFI) >> - int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes) >> - { >> - return (-1); >> -Index: crypto/rand/rand_unix.c >> -=================================================================== >> ---- crypto/rand/rand_unix.c (revision 1) >> -+++ crypto/rand/rand_unix.c (working copy) >> -@@ -116,7 +116,7 @@ >> - #include <openssl/rand.h> >> - #include "rand_lcl.h" >> - >> --#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || >> defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) || >> defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE)) >> -+#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || >> defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) || >> defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || >> defined(OPENSSL_SYS_UEFI)) >> - >> - # include <sys/types.h> >> - # include <sys/time.h> >> -@@ -332,7 +332,7 @@ >> - * defined(OPENSSL_SYS_VXWORKS) || >> - * defined(OPENSSL_SYS_NETWARE)) */ >> - >> --#if defined(OPENSSL_SYS_VXWORKS) >> -+#if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) >> - int RAND_poll(void) >> - { >> - return 0; >> -Index: crypto/x509/x509_vfy.c >> -=================================================================== >> ---- crypto/x509/x509_vfy.c (revision 1) >> -+++ crypto/x509/x509_vfy.c (working copy) >> -@@ -871,6 +871,10 @@ >> - >> - static int check_cert_time(X509_STORE_CTX *ctx, X509 *x) >> - { >> -+#if defined(OPENSSL_SYS_UEFI) >> -+ /* Bypass Certificate Time Checking for UEFI version. */ >> -+ return 1; >> -+#else >> - time_t *ptime; >> - int i; >> - >> -@@ -910,6 +914,7 @@ >> - } >> - >> - return 1; >> -+#endif >> - } >> - >> - static int internal_verify(X509_STORE_CTX *ctx) >> diff --git a/CryptoPkg/Library/OpensslLib/EDKII_openssl-1.0.2a.patch >> b/CryptoPkg/Library/OpensslLib/EDKII_openssl-1.0.2a.patch >> new file mode 100644 >> index 0000000..55056ec >> --- /dev/null >> +++ b/CryptoPkg/Library/OpensslLib/EDKII_openssl-1.0.2a.patch >> @@ -0,0 +1,358 @@ >> +diff U3 crypto/bio/bio.h crypto/bio/bio.h >> +--- crypto/bio/bio.h Wed Jun 03 21:29:20 2015 >> ++++ crypto/bio/bio.h Thu Jun 04 16:28:25 2015 >> +@@ -646,10 +646,10 @@ >> + int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, >> + asn1_ps_func **psuffix_free); >> + >> +-# ifndef OPENSSL_NO_FP_API >> + BIO_METHOD *BIO_s_file(void); >> + BIO *BIO_new_file(const char *filename, const char *mode); >> + BIO *BIO_new_fp(FILE *stream, int close_flag); >> ++# ifndef OPENSSL_NO_FP_API >> + # define BIO_s_file_internal BIO_s_file >> + # endif >> + BIO *BIO_new(BIO_METHOD *type); >> +diff U3 crypto/bio/bss_file.c crypto/bio/bss_file.c >> +--- crypto/bio/bss_file.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/bio/bss_file.c Thu Jun 04 16:29:18 2015 >> +@@ -460,6 +460,23 @@ >> + return (ret); >> + } >> + >> ++# else >> ++ >> ++BIO_METHOD *BIO_s_file(void) >> ++{ >> ++ return NULL; >> ++} >> ++ >> ++BIO *BIO_new_file(const char *filename, const char *mode) >> ++{ >> ++ return NULL; >> ++} >> ++ >> ++BIO *BIO_new_fp(FILE *stream, int close_flag) >> ++{ >> ++ return NULL; >> ++} >> ++ >> + # endif /* OPENSSL_NO_STDIO */ >> + >> + #endif /* HEADER_BSS_FILE_C */ >> +diff U3 crypto/dh/dh_pmeth.c crypto/dh/dh_pmeth.c >> +--- crypto/dh/dh_pmeth.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/dh/dh_pmeth.c Thu Jun 04 16:30:17 2015 >> +@@ -449,6 +449,9 @@ >> + *keylen = ret; >> + return 1; >> + } else if (dctx->kdf_type == EVP_PKEY_DH_KDF_X9_42) { >> ++#ifdef OPENSSL_NO_CMS >> ++ return 0; >> ++#else >> + unsigned char *Z = NULL; >> + size_t Zlen = 0; >> + if (!dctx->kdf_outlen || !dctx->kdf_oid) >> +@@ -478,6 +481,7 @@ >> + OPENSSL_free(Z); >> + } >> + return ret; >> ++#endif >> + } >> + return 1; >> + } >> +diff U3 crypto/pem/pem.h crypto/pem/pem.h >> +--- crypto/pem/pem.h Wed Jun 03 21:29:20 2015 >> ++++ crypto/pem/pem.h Thu Jun 04 16:31:08 2015 >> +@@ -324,6 +324,7 @@ >> + >> + # define DECLARE_PEM_read_fp(name, type) /**/ >> + # define DECLARE_PEM_write_fp(name, type) /**/ >> ++# define DECLARE_PEM_write_fp_const(name, type) /**/ >> + # define DECLARE_PEM_write_cb_fp(name, type) /**/ >> + # else >> + >> +diff U3 crypto/pkcs7/pk7_smime.c crypto/pkcs7/pk7_smime.c >> +--- crypto/pkcs7/pk7_smime.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/pkcs7/pk7_smime.c Thu Jun 04 16:34:03 2015 >> +@@ -254,7 +254,8 @@ >> + STACK_OF(PKCS7_SIGNER_INFO) *sinfos; >> + PKCS7_SIGNER_INFO *si; >> + X509_STORE_CTX cert_ctx; >> +- char buf[4096]; >> ++ char *buf = NULL; >> ++ int bufsiz; >> + int i, j = 0, k, ret = 0; >> + BIO *p7bio; >> + BIO *tmpin, *tmpout; >> +@@ -365,9 +366,14 @@ >> + } else >> + tmpout = out; >> + >> ++ bufsiz = 4096; >> ++ buf = OPENSSL_malloc (bufsiz); >> ++ if (buf == NULL) { >> ++ goto err; >> ++ } >> + /* We now have to 'read' from p7bio to calculate digests etc. */ >> + for (;;) { >> +- i = BIO_read(p7bio, buf, sizeof(buf)); >> ++ i = BIO_read(p7bio, buf, bufsiz); >> + if (i <= 0) >> + break; >> + if (tmpout) >> +@@ -406,6 +412,10 @@ >> + BIO_free_all(p7bio); >> + >> + sk_X509_free(signers); >> ++ >> ++ if (buf != NULL) { >> ++ OPENSSL_free (buf); >> ++ } >> + >> + return ret; >> + } >> +diff U3 crypto/rand/rand_unix.c crypto/rand/rand_unix.c >> +--- crypto/rand/rand_unix.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/rand/rand_unix.c Thu Jun 04 16:34:58 2015 >> +@@ -116,7 +116,7 @@ >> + #include <openssl/rand.h> >> + #include "rand_lcl.h" >> + >> +-#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || >> defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) || >> defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE)) >> ++#if !(defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || >> defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) || >> defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || >> defined(OPENSSL_SYS_UEFI)) >> + >> + # include <sys/types.h> >> + # include <sys/time.h> >> +@@ -439,7 +439,7 @@ >> + * defined(OPENSSL_SYS_VXWORKS) || >> + * defined(OPENSSL_SYS_NETWARE)) */ >> + >> +-#if defined(OPENSSL_SYS_VXWORKS) >> ++#if defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI) >> + int RAND_poll(void) >> + { >> + return 0; >> +diff U3 crypto/rsa/rsa_ameth.c crypto/rsa/rsa_ameth.c >> +--- crypto/rsa/rsa_ameth.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/rsa/rsa_ameth.c Thu Jun 04 16:36:28 2015 >> +@@ -68,10 +68,12 @@ >> + #endif >> + #include "asn1_locl.h" >> + >> ++#ifndef OPENSSL_NO_CMS >> + static int rsa_cms_sign(CMS_SignerInfo *si); >> + static int rsa_cms_verify(CMS_SignerInfo *si); >> + static int rsa_cms_decrypt(CMS_RecipientInfo *ri); >> + static int rsa_cms_encrypt(CMS_RecipientInfo *ri); >> ++#endif >> + >> + static int rsa_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey) >> + { >> +@@ -665,6 +667,7 @@ >> + return rv; >> + } >> + >> ++#ifndef OPENSSL_NO_CMS >> + static int rsa_cms_verify(CMS_SignerInfo *si) >> + { >> + int nid, nid2; >> +@@ -683,6 +686,7 @@ >> + } >> + return 0; >> + } >> ++#endif >> + >> + /* >> + * Customised RSA item verification routine. This is called when a >> signature >> +@@ -705,6 +709,7 @@ >> + return -1; >> + } >> + >> ++#ifndef OPENSSL_NO_CMS >> + static int rsa_cms_sign(CMS_SignerInfo *si) >> + { >> + int pad_mode = RSA_PKCS1_PADDING; >> +@@ -729,6 +734,7 @@ >> + X509_ALGOR_set0(alg, OBJ_nid2obj(NID_rsassaPss), V_ASN1_SEQUENCE, os); >> + return 1; >> + } >> ++#endif >> + >> + static int rsa_item_sign(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, >> + X509_ALGOR *alg1, X509_ALGOR *alg2, >> +@@ -785,6 +791,7 @@ >> + return pss; >> + } >> + >> ++#ifndef OPENSSL_NO_CMS >> + static int rsa_cms_decrypt(CMS_RecipientInfo *ri) >> + { >> + EVP_PKEY_CTX *pkctx; >> +@@ -857,7 +864,9 @@ >> + X509_ALGOR_free(maskHash); >> + return rv; >> + } >> ++#endif >> + >> ++#ifndef OPENSSL_NO_CMS >> + static int rsa_cms_encrypt(CMS_RecipientInfo *ri) >> + { >> + const EVP_MD *md, *mgf1md; >> +@@ -920,6 +929,7 @@ >> + ASN1_STRING_free(os); >> + return rv; >> + } >> ++#endif >> + >> + const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[] = { >> + { >> +diff U3 crypto/x509/x509_vfy.c crypto/x509/x509_vfy.c >> +--- crypto/x509/x509_vfy.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/x509/x509_vfy.c Thu Jun 04 16:37:39 2015 >> +@@ -1610,6 +1610,10 @@ >> + >> + static int check_cert_time(X509_STORE_CTX *ctx, X509 *x) >> + { >> ++#if defined(OPENSSL_SYS_UEFI) >> ++ /* Bypass Certificate Time Checking for UEFI version. */ >> ++ return 1; >> ++#else >> + time_t *ptime; >> + int i; >> + >> +@@ -1649,6 +1653,7 @@ >> + } >> + >> + return 1; >> ++#endif >> + } >> + >> + static int internal_verify(X509_STORE_CTX *ctx) >> +diff U3 crypto/x509/x509_vpm.c crypto/x509/x509_vpm.c >> +--- crypto/x509/x509_vpm.c Wed Jun 03 21:29:20 2015 >> ++++ crypto/x509/x509_vpm.c Thu Jun 04 16:40:04 2015 >> +@@ -175,7 +175,7 @@ >> + param = OPENSSL_malloc(sizeof(X509_VERIFY_PARAM)); >> + if (!param) >> + return NULL; >> +- paramid = OPENSSL_malloc(sizeof(X509_VERIFY_PARAM)); >> ++ paramid = OPENSSL_malloc(sizeof(X509_VERIFY_PARAM_ID)); >> + if (!paramid) { >> + OPENSSL_free(param); >> + return NULL; >> +diff U3 crypto/x509v3/ext_dat.h crypto/x509v3/ext_dat.h >> +--- crypto/x509v3/ext_dat.h Wed Jun 03 21:29:20 2015 >> ++++ crypto/x509v3/ext_dat.h Thu Jun 04 16:38:15 2015 >> +@@ -127,8 +127,10 @@ >> + &v3_idp, >> + &v3_alt[2], >> + &v3_freshest_crl, >> ++#ifndef OPENSSL_SYS_UEFI >> + &v3_ct_scts[0], >> + &v3_ct_scts[1], >> ++#endif >> + }; >> + >> + /* Number of standard extensions */ >> +diff U3 crypto/crypto.h crypto/crypto.h >> +--- crypto/crypto.h Wed Jun 03 21:29:20 2015 >> ++++ crypto/crypto.h Thu Jun 04 16:25:21 2015 >> +@@ -235,15 +235,15 @@ >> + # ifndef OPENSSL_NO_LOCKING >> + # ifndef CRYPTO_w_lock >> + # define CRYPTO_w_lock(type) \ >> +- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) >> ++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,NULL,0) >> + # define CRYPTO_w_unlock(type) \ >> +- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) >> ++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,NULL,0) >> + # define CRYPTO_r_lock(type) \ >> +- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) >> ++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,NULL,0) >> + # define CRYPTO_r_unlock(type) \ >> +- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) >> ++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,NULL,0) >> + # define CRYPTO_add(addr,amount,type) \ >> +- CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__) >> ++ CRYPTO_add_lock(addr,amount,type,NULL,0) >> + # endif >> + # else >> + # define CRYPTO_w_lock(a) >> +@@ -378,19 +378,19 @@ >> + # define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE) >> + # define is_MemCheck_on() CRYPTO_is_mem_check_on() >> + >> +-# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__) >> +-# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__) >> ++# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,NULL,0) >> ++# define OPENSSL_strdup(str) CRYPTO_strdup((str),NULL,0) >> + # define OPENSSL_realloc(addr,num) \ >> +- CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__) >> ++ CRYPTO_realloc((char *)addr,(int)num,NULL,0) >> + # define OPENSSL_realloc_clean(addr,old_num,num) \ >> +- CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__) >> ++ CRYPTO_realloc_clean(addr,old_num,num,NULL,0) >> + # define OPENSSL_remalloc(addr,num) \ >> +- CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__) >> ++ CRYPTO_remalloc((char **)addr,(int)num,NULL,0) >> + # define OPENSSL_freeFunc CRYPTO_free >> + # define OPENSSL_free(addr) CRYPTO_free(addr) >> + >> + # define OPENSSL_malloc_locked(num) \ >> +- CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) >> ++ CRYPTO_malloc_locked((int)num,NULL,0) >> + # define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) >> + >> + const char *SSLeay_version(int type); >> +@@ -545,7 +545,7 @@ >> + long CRYPTO_get_mem_debug_options(void); >> + >> + # define CRYPTO_push_info(info) \ >> +- CRYPTO_push_info_(info, __FILE__, __LINE__); >> ++ CRYPTO_push_info_(info, NULL, 0); >> + int CRYPTO_push_info_(const char *info, const char *file, int line); >> + int CRYPTO_pop_info(void); >> + int CRYPTO_remove_all_info(void); >> +@@ -588,7 +588,7 @@ >> + >> + /* die if we have to */ >> + void OpenSSLDie(const char *file, int line, const char *assertion); >> +-# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, >> __LINE__, #e),1)) >> ++# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(NULL, 0, >> #e),1)) >> + >> + unsigned long *OPENSSL_ia32cap_loc(void); >> + # define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) >> +@@ -605,14 +605,14 @@ >> + # define fips_md_init_ctx(alg, cx) \ >> + int alg##_Init(cx##_CTX *c) \ >> + { \ >> +- if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ >> ++ if (FIPS_mode()) OpenSSLDie(NULL, 0, \ >> + "Low level API call to digest " #alg " forbidden in FIPS >> mode!"); \ >> + return private_##alg##_Init(c); \ >> + } \ >> + int private_##alg##_Init(cx##_CTX *c) >> + >> + # define fips_cipher_abort(alg) \ >> +- if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ >> ++ if (FIPS_mode()) OpenSSLDie(NULL, 0, \ >> + "Low level API call to cipher " #alg " forbidden in FIPS >> mode!") >> + >> + # else >> +diff U3 crypto/opensslconf.h crypto/opensslconf.h >> +--- crypto/opensslconf.h Wed Jun 03 21:29:20 2015 >> ++++ crypto/opensslconf.h Thu Jun 04 16:27:13 2015 >> +@@ -159,9 +159,12 @@ >> + /* Should we define BN_DIV2W here? */ >> + >> + /* Only one for the following should be defined */ >> ++/* Bypass the following definitions for UEFI version. */ >> ++#if !defined(OPENSSL_SYS_UEFI) >> + #undef SIXTY_FOUR_BIT_LONG >> + #undef SIXTY_FOUR_BIT >> + #define THIRTY_TWO_BIT >> ++#endif >> + #endif >> + >> + #if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) >> -- >> 1.9.5.msysgit.1 >> ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel