On 10 June 2015 at 19:22, Long, Qin <qin.l...@intel.com> wrote: > Thanks, Ard. > > This is one historical changes, and come from some early user's requests: > they would like to keep the built result / image of this module identical as > possible, whatever any path was used (e.g. aaa/edk2/.../openssl v.s. > bbb/edk2/...openssl, ...). To meet this, we have to patch those __FILE__ > macro then. :-( >
OK, fair enough. > I keep this for all later updates. > I guess not all toolchains support #undef __FILE__ #define __FILE__ NULL ?? because that would be a bit simpler. -- Ard. > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org] > Sent: Wednesday, June 10, 2015 7:55 PM > To: Long, Qin > Cc: Ye, Ting; edk2-devel@lists.sourceforge.net > Subject: Re: [patch 1/3] [CryptoPkg] Remove the old patch file for > openssl-0.9.8zf build, and add the patch file for openssl-1.0.2a. > > 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