Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Long, Qin <qin.l...@intel.com>
Signed-off-by: qlong <qin.l...@intel.com>
---
 CryptoPkg/Library/OpensslLib/Install.cmd     | 146 ++++---
 CryptoPkg/Library/OpensslLib/Install.sh      | 146 ++++---
 CryptoPkg/Library/OpensslLib/OpensslLib.inf  | 620 +++++++++++++++++++--------
 CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt |  46 +-
 4 files changed, 608 insertions(+), 350 deletions(-)

diff --git a/CryptoPkg/Library/OpensslLib/Install.cmd 
b/CryptoPkg/Library/OpensslLib/Install.cmd
index 8f1d016..a633f57 100755
--- a/CryptoPkg/Library/OpensslLib/Install.cmd
+++ b/CryptoPkg/Library/OpensslLib/Install.cmd
@@ -1,71 +1,77 @@
-cd openssl-0.9.8zf
-copy e_os2.h              ..\..\..\Include\openssl
-copy crypto\crypto.h  ..\..\..\Include\openssl
-copy crypto\tmdiff.h  ..\..\..\Include\openssl
-copy crypto\opensslv.h ..\..\..\Include\openssl
-copy crypto\opensslconf.h ..\..\..\Include\openssl
-copy crypto\ebcdic.h ..\..\..\Include\openssl
-copy crypto\symhacks.h ..\..\..\Include\openssl
-copy crypto\ossl_typ.h ..\..\..\Include\openssl
-copy crypto\md2\md2.h ..\..\..\Include\openssl
-copy crypto\md4\md4.h ..\..\..\Include\openssl
-copy crypto\md5\md5.h ..\..\..\Include\openssl
-copy crypto\sha\sha.h ..\..\..\Include\openssl
-copy crypto\hmac\hmac.h ..\..\..\Include\openssl
-copy crypto\ripemd\ripemd.h ..\..\..\Include\openssl
-copy crypto\des\des.h ..\..\..\Include\openssl
-copy crypto\des\des_old.h ..\..\..\Include\openssl
-copy crypto\rc2\rc2.h ..\..\..\Include\openssl
-copy crypto\rc4\rc4.h ..\..\..\Include\openssl
-copy crypto\idea\idea.h ..\..\..\Include\openssl
-copy crypto\bf\blowfish.h ..\..\..\Include\openssl
-copy crypto\cast\cast.h ..\..\..\Include\openssl
-copy crypto\aes\aes.h ..\..\..\Include\openssl
-copy crypto\bn\bn.h ..\..\..\Include\openssl
-copy crypto\rsa\rsa.h ..\..\..\Include\openssl
-copy crypto\dsa\dsa.h ..\..\..\Include\openssl
-copy crypto\dso\dso.h ..\..\..\Include\openssl
-copy crypto\dh\dh.h ..\..\..\Include\openssl
-copy crypto\ec\ec.h ..\..\..\Include\openssl
-copy crypto\ecdh\ecdh.h ..\..\..\Include\openssl
-copy crypto\ecdsa\ecdsa.h ..\..\..\Include\openssl
-copy crypto\buffer\buffer.h ..\..\..\Include\openssl
-copy crypto\bio\bio.h ..\..\..\Include\openssl
-copy crypto\stack\stack.h ..\..\..\Include\openssl
-copy crypto\stack\safestack.h ..\..\..\Include\openssl
-copy crypto\lhash\lhash.h ..\..\..\Include\openssl
-copy crypto\rand\rand.h ..\..\..\Include\openssl
-copy crypto\err\err.h ..\..\..\Include\openssl
-copy crypto\objects\objects.h ..\..\..\Include\openssl
-copy crypto\objects\obj_mac.h ..\..\..\Include\openssl
-copy crypto\evp\evp.h ..\..\..\Include\openssl
-copy crypto\asn1\asn1.h ..\..\..\Include\openssl
-copy crypto\asn1\asn1_mac.h ..\..\..\Include\openssl
-copy crypto\asn1\asn1t.h ..\..\..\Include\openssl
-copy crypto\pem\pem.h ..\..\..\Include\openssl
-copy crypto\pem\pem2.h ..\..\..\Include\openssl
-copy crypto\x509\x509.h ..\..\..\Include\openssl
-copy crypto\x509\x509_vfy.h ..\..\..\Include\openssl
-copy crypto\x509v3\x509v3.h ..\..\..\Include\openssl
-copy crypto\conf\conf.h ..\..\..\Include\openssl
-copy crypto\conf\conf_api.h ..\..\..\Include\openssl
-copy crypto\txt_db\txt_db.h ..\..\..\Include\openssl
-copy crypto\pkcs7\pkcs7.h ..\..\..\Include\openssl
-copy crypto\pkcs12\pkcs12.h ..\..\..\Include\openssl
-copy crypto\comp\comp.h ..\..\..\Include\openssl
-copy crypto\engine\engine.h ..\..\..\Include\openssl
-copy crypto\ocsp\ocsp.h ..\..\..\Include\openssl
-copy crypto\ui\ui.h ..\..\..\Include\openssl
-copy crypto\ui\ui_compat.h ..\..\..\Include\openssl
-copy crypto\krb5\krb5_asn.h ..\..\..\Include\openssl
-copy crypto\store\store.h ..\..\..\Include\openssl
-copy crypto\pqueue\pqueue.h ..\..\..\Include\openssl
-copy crypto\pqueue\pq_compat.h ..\..\..\Include\openssl
-copy ssl\ssl.h ..\..\..\Include\openssl
-copy ssl\ssl2.h ..\..\..\Include\openssl
-copy ssl\ssl3.h ..\..\..\Include\openssl
-copy ssl\ssl23.h ..\..\..\Include\openssl
-copy ssl\tls1.h ..\..\..\Include\openssl
-copy ssl\dtls1.h ..\..\..\Include\openssl
-copy ssl\kssl.h ..\..\..\Include\openssl
+cd openssl-1.0.2a
+copy e_os2.h                    ..\..\..\Include\openssl
+copy crypto\crypto.h            ..\..\..\Include\openssl
+copy crypto\opensslv.h          ..\..\..\Include\openssl
+copy crypto\opensslconf.h       ..\..\..\Include\openssl
+copy crypto\ebcdic.h            ..\..\..\Include\openssl
+copy crypto\symhacks.h          ..\..\..\Include\openssl
+copy crypto\ossl_typ.h          ..\..\..\Include\openssl
+copy crypto\objects\objects.h   ..\..\..\Include\openssl
+copy crypto\objects\obj_mac.h   ..\..\..\Include\openssl
+copy crypto\md4\md4.h           ..\..\..\Include\openssl
+copy crypto\md5\md5.h           ..\..\..\Include\openssl
+copy crypto\sha\sha.h           ..\..\..\Include\openssl
+copy crypto\mdc2\mdc2.h         ..\..\..\Include\openssl
+copy crypto\hmac\hmac.h         ..\..\..\Include\openssl
+copy crypto\ripemd\ripemd.h     ..\..\..\Include\openssl
+copy crypto\whrlpool\whrlpool.h ..\..\..\Include\openssl
+copy crypto\des\des.h           ..\..\..\Include\openssl
+copy crypto\des\des_old.h       ..\..\..\Include\openssl
+copy crypto\aes\aes.h           ..\..\..\Include\openssl
+copy crypto\rc2\rc2.h           ..\..\..\Include\openssl
+copy crypto\rc4\rc4.h           ..\..\..\Include\openssl
+copy crypto\idea\idea.h         ..\..\..\Include\openssl
+copy crypto\bf\blowfish.h       ..\..\..\Include\openssl
+copy crypto\cast\cast.h         ..\..\..\Include\openssl
+copy crypto\camellia\camellia.h ..\..\..\Include\openssl
+copy crypto\seed\seed.h         ..\..\..\Include\openssl
+copy crypto\modes\modes.h       ..\..\..\Include\openssl
+copy crypto\bn\bn.h             ..\..\..\Include\openssl
+copy crypto\ec\ec.h             ..\..\..\Include\openssl
+copy crypto\rsa\rsa.h           ..\..\..\Include\openssl
+copy crypto\dsa\dsa.h           ..\..\..\Include\openssl
+copy crypto\ecdsa\ecdsa.h       ..\..\..\Include\openssl
+copy crypto\dh\dh.h             ..\..\..\Include\openssl
+copy crypto\ecdh\ecdh.h         ..\..\..\Include\openssl
+copy crypto\dso\dso.h           ..\..\..\Include\openssl
+copy crypto\engine\engine.h     ..\..\..\Include\openssl
+copy crypto\buffer\buffer.h     ..\..\..\Include\openssl
+copy crypto\bio\bio.h           ..\..\..\Include\openssl
+copy crypto\stack\stack.h       ..\..\..\Include\openssl
+copy crypto\stack\safestack.h   ..\..\..\Include\openssl
+copy crypto\lhash\lhash.h       ..\..\..\Include\openssl
+copy crypto\rand\rand.h         ..\..\..\Include\openssl
+copy crypto\err\err.h           ..\..\..\Include\openssl
+copy crypto\evp\evp.h           ..\..\..\Include\openssl
+copy crypto\asn1\asn1.h         ..\..\..\Include\openssl
+copy crypto\asn1\asn1_mac.h     ..\..\..\Include\openssl
+copy crypto\asn1\asn1t.h        ..\..\..\Include\openssl
+copy crypto\pem\pem.h           ..\..\..\Include\openssl
+copy crypto\pem\pem2.h          ..\..\..\Include\openssl
+copy crypto\x509\x509.h         ..\..\..\Include\openssl
+copy crypto\x509\x509_vfy.h     ..\..\..\Include\openssl
+copy crypto\x509v3\x509v3.h     ..\..\..\Include\openssl
+copy crypto\conf\conf.h         ..\..\..\Include\openssl
+copy crypto\conf\conf_api.h     ..\..\..\Include\openssl
+copy crypto\txt_db\txt_db.h     ..\..\..\Include\openssl
+copy crypto\pkcs7\pkcs7.h       ..\..\..\Include\openssl
+copy crypto\pkcs12\pkcs12.h     ..\..\..\Include\openssl
+copy crypto\comp\comp.h         ..\..\..\Include\openssl
+copy crypto\ocsp\ocsp.h         ..\..\..\Include\openssl
+copy crypto\ui\ui.h             ..\..\..\Include\openssl
+copy crypto\ui\ui_compat.h      ..\..\..\Include\openssl
+copy crypto\krb5\krb5_asn.h     ..\..\..\Include\openssl
+copy crypto\cms\cms.h           ..\..\..\Include\openssl
+copy crypto\pqueue\pqueue.h     ..\..\..\Include\openssl
+copy crypto\ts\ts.h             ..\..\..\Include\openssl
+copy crypto\srp\srp.h           ..\..\..\Include\openssl
+copy crypto\cmac\cmac.h         ..\..\..\Include\openssl
+copy ssl\ssl.h                  ..\..\..\Include\openssl
+copy ssl\ssl2.h                 ..\..\..\Include\openssl
+copy ssl\ssl3.h                 ..\..\..\Include\openssl
+copy ssl\ssl23.h                ..\..\..\Include\openssl
+copy ssl\tls1.h                 ..\..\..\Include\openssl
+copy ssl\dtls1.h                ..\..\..\Include\openssl
+copy ssl\kssl.h                 ..\..\..\Include\openssl
+copy ssl\srtp.h                 ..\..\..\Include\openssl
 cd ..
diff --git a/CryptoPkg/Library/OpensslLib/Install.sh 
b/CryptoPkg/Library/OpensslLib/Install.sh
index 4a022e6..6973ab7 100755
--- a/CryptoPkg/Library/OpensslLib/Install.sh
+++ b/CryptoPkg/Library/OpensslLib/Install.sh
@@ -1,73 +1,79 @@
 #!/bin/sh
 
-cd openssl-0.9.8zf
-cp e_os2.h ../../../Include/openssl
-cp crypto/crypto.h ../../../Include/openssl
-cp crypto/tmdiff.h ../../../Include/openssl
-cp crypto/opensslv.h ../../../Include/openssl
-cp crypto/opensslconf.h ../../../Include/openssl
-cp crypto/ebcdic.h ../../../Include/openssl
-cp crypto/symhacks.h ../../../Include/openssl
-cp crypto/ossl_typ.h ../../../Include/openssl
-cp crypto/md2/md2.h ../../../Include/openssl
-cp crypto/md4/md4.h ../../../Include/openssl
-cp crypto/md5/md5.h ../../../Include/openssl
-cp crypto/sha/sha.h ../../../Include/openssl
-cp crypto/hmac/hmac.h ../../../Include/openssl
-cp crypto/ripemd/ripemd.h ../../../Include/openssl
-cp crypto/des/des.h ../../../Include/openssl
-cp crypto/des/des_old.h ../../../Include/openssl
-cp crypto/rc2/rc2.h ../../../Include/openssl
-cp crypto/rc4/rc4.h ../../../Include/openssl
-cp crypto/idea/idea.h ../../../Include/openssl
-cp crypto/bf/blowfish.h ../../../Include/openssl
-cp crypto/cast/cast.h ../../../Include/openssl
-cp crypto/aes/aes.h ../../../Include/openssl
-cp crypto/bn/bn.h ../../../Include/openssl
-cp crypto/rsa/rsa.h ../../../Include/openssl
-cp crypto/dsa/dsa.h ../../../Include/openssl
-cp crypto/dso/dso.h ../../../Include/openssl
-cp crypto/dh/dh.h ../../../Include/openssl
-cp crypto/ec/ec.h ../../../Include/openssl
-cp crypto/ecdh/ecdh.h ../../../Include/openssl
-cp crypto/ecdsa/ecdsa.h ../../../Include/openssl
-cp crypto/buffer/buffer.h ../../../Include/openssl
-cp crypto/bio/bio.h ../../../Include/openssl
-cp crypto/stack/stack.h ../../../Include/openssl
-cp crypto/stack/safestack.h ../../../Include/openssl
-cp crypto/lhash/lhash.h ../../../Include/openssl
-cp crypto/rand/rand.h ../../../Include/openssl
-cp crypto/err/err.h ../../../Include/openssl
-cp crypto/objects/objects.h ../../../Include/openssl
-cp crypto/objects/obj_mac.h ../../../Include/openssl
-cp crypto/evp/evp.h ../../../Include/openssl
-cp crypto/asn1/asn1.h ../../../Include/openssl
-cp crypto/asn1/asn1_mac.h ../../../Include/openssl
-cp crypto/asn1/asn1t.h ../../../Include/openssl
-cp crypto/pem/pem.h ../../../Include/openssl
-cp crypto/pem/pem2.h ../../../Include/openssl
-cp crypto/x509/x509.h ../../../Include/openssl
-cp crypto/x509/x509_vfy.h ../../../Include/openssl
-cp crypto/x509v3/x509v3.h ../../../Include/openssl
-cp crypto/conf/conf.h ../../../Include/openssl
-cp crypto/conf/conf_api.h ../../../Include/openssl
-cp crypto/txt_db/txt_db.h ../../../Include/openssl
-cp crypto/pkcs7/pkcs7.h ../../../Include/openssl
-cp crypto/pkcs12/pkcs12.h ../../../Include/openssl
-cp crypto/comp/comp.h ../../../Include/openssl
-cp crypto/engine/engine.h ../../../Include/openssl
-cp crypto/ocsp/ocsp.h ../../../Include/openssl
-cp crypto/ui/ui.h ../../../Include/openssl
-cp crypto/ui/ui_compat.h ../../../Include/openssl
-cp crypto/krb5/krb5_asn.h ../../../Include/openssl
-cp crypto/store/store.h ../../../Include/openssl
-cp crypto/pqueue/pqueue.h ../../../Include/openssl
-cp crypto/pqueue/pq_compat.h ../../../Include/openssl
-cp ssl/ssl.h ../../../Include/openssl
-cp ssl/ssl2.h ../../../Include/openssl
-cp ssl/ssl3.h ../../../Include/openssl
-cp ssl/ssl23.h ../../../Include/openssl
-cp ssl/tls1.h ../../../Include/openssl
-cp ssl/dtls1.h ../../../Include/openssl
-cp ssl/kssl.h ../../../Include/openssl
+cd openssl-1.0.2a
+cp e_os2.h                    ../../../Include/openssl
+cp crypto/crypto.h            ../../../Include/openssl
+cp crypto/opensslv.h          ../../../Include/openssl
+cp crypto/opensslconf.h       ../../../Include/openssl
+cp crypto/ebcdic.h            ../../../Include/openssl
+cp crypto/symhacks.h          ../../../Include/openssl
+cp crypto/ossl_typ.h          ../../../Include/openssl
+cp crypto/objects/objects.h   ../../../Include/openssl
+cp crypto/objects/obj_mac.h   ../../../Include/openssl
+cp crypto/md4/md4.h           ../../../Include/openssl
+cp crypto/md5/md5.h           ../../../Include/openssl
+cp crypto/sha/sha.h           ../../../Include/openssl
+cp crypto/mdc2/mdc2.h         ../../../Include/openssl
+cp crypto/hmac/hmac.h         ../../../Include/openssl
+cp crypto/ripemd/ripemd.h     ../../../Include/openssl
+cp crypto/whrlpool/whrlpool.h ../../../Include/openssl
+cp crypto/des/des.h           ../../../Include/openssl
+cp crypto/des/des_old.h       ../../../Include/openssl
+cp crypto/aes/aes.h           ../../../Include/openssl
+cp crypto/rc2/rc2.h           ../../../Include/openssl
+cp crypto/rc4/rc4.h           ../../../Include/openssl
+cp crypto/idea/idea.h         ../../../Include/openssl
+cp crypto/bf/blowfish.h       ../../../Include/openssl
+cp crypto/cast/cast.h         ../../../Include/openssl
+cp crypto/camellia/camellia.h ../../../Include/openssl
+cp crypto/seed/seed.h         ../../../Include/openssl
+cp crypto/modes/modes.h       ../../../Include/openssl
+cp crypto/bn/bn.h             ../../../Include/openssl
+cp crypto/ec/ec.h             ../../../Include/openssl
+cp crypto/rsa/rsa.h           ../../../Include/openssl
+cp crypto/dsa/dsa.h           ../../../Include/openssl
+cp crypto/ecdsa/ecdsa.h       ../../../Include/openssl
+cp crypto/dh/dh.h             ../../../Include/openssl
+cp crypto/ecdh/ecdh.h         ../../../Include/openssl
+cp crypto/dso/dso.h           ../../../Include/openssl
+cp crypto/engine/engine.h     ../../../Include/openssl
+cp crypto/buffer/buffer.h     ../../../Include/openssl
+cp crypto/bio/bio.h           ../../../Include/openssl
+cp crypto/stack/stack.h       ../../../Include/openssl
+cp crypto/stack/safestack.h   ../../../Include/openssl
+cp crypto/lhash/lhash.h       ../../../Include/openssl
+cp crypto/rand/rand.h         ../../../Include/openssl
+cp crypto/err/err.h           ../../../Include/openssl
+cp crypto/evp/evp.h           ../../../Include/openssl
+cp crypto/asn1/asn1.h         ../../../Include/openssl
+cp crypto/asn1/asn1_mac.h     ../../../Include/openssl
+cp crypto/asn1/asn1t.h        ../../../Include/openssl
+cp crypto/pem/pem.h           ../../../Include/openssl
+cp crypto/pem/pem2.h          ../../../Include/openssl
+cp crypto/x509/x509.h         ../../../Include/openssl
+cp crypto/x509/x509_vfy.h     ../../../Include/openssl
+cp crypto/x509v3/x509v3.h     ../../../Include/openssl
+cp crypto/conf/conf.h         ../../../Include/openssl
+cp crypto/conf/conf_api.h     ../../../Include/openssl
+cp crypto/txt_db/txt_db.h     ../../../Include/openssl
+cp crypto/pkcs7/pkcs7.h       ../../../Include/openssl
+cp crypto/pkcs12/pkcs12.h     ../../../Include/openssl
+cp crypto/comp/comp.h         ../../../Include/openssl
+cp crypto/ocsp/ocsp.h         ../../../Include/openssl
+cp crypto/ui/ui.h             ../../../Include/openssl
+cp crypto/ui/ui_compat.h      ../../../Include/openssl
+cp crypto/krb5/krb5_asn.h     ../../../Include/openssl
+cp crypto/cms/cms.h           ../../../Include/openssl
+cp crypto/pqueue/pqueue.h     ../../../Include/openssl
+cp crypto/ts/ts.h             ../../../Include/openssl
+cp crypto/srp/srp.h           ../../../Include/openssl
+cp crypto/cmac/cmac.h         ../../../Include/openssl
+cp ssl/ssl.h                  ../../../Include/openssl
+cp ssl/ssl2.h                 ../../../Include/openssl
+cp ssl/ssl3.h                 ../../../Include/openssl
+cp ssl/ssl23.h                ../../../Include/openssl
+cp ssl/tls1.h                 ../../../Include/openssl
+cp ssl/dtls1.h                ../../../Include/openssl
+cp ssl/kssl.h                 ../../../Include/openssl
+cp ssl/srtp.h                 ../../../Include/openssl
 cd ..
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf 
b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
index f564145..ee7dbd8 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
@@ -20,9 +20,9 @@
   MODULE_TYPE                    = BASE
   VERSION_STRING                 = 1.0
   LIBRARY_CLASS                  = OpensslLib
-  DEFINE OPENSSL_PATH            = openssl-0.9.8zf
-  DEFINE OPENSSL_FLAGS           = -DOPENSSL_SYSNAME_UWIN -DOPENSSL_SYS_UEFI 
-DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 
-DOPENSSL_NO_SOCK -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG 
-DOPENSSL_NO_ERR -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE 
-DGETPID_IS_MEANINGLESS -DOPENSSL_NO_STDIO -DOPENSSL_NO_FP_API 
-DOPENSSL_NO_DGRAM -DOPENSSL_NO_ASM
-  DEFINE OPENSSL_EXFLAGS         = -DOPENSSL_SMALL_FOOTPRINT -DOPENSSL_NO_MD2 
-DOPENSSL_NO_SHA0 -DOPENSSL_NO_LHASH -DOPENSSL_NO_HW -DOPENSSL_NO_OCSP 
-DOPENSSL_NO_LOCKING -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_RIPEMD 
-DOPENSSL_NO_RC2 -DOPENSSL_NO_IDEA -DOPENSSL_NO_BF -DOPENSSL_NO_CAST 
-DOPENSSL_NO_WHIRLPOOL -DOPENSSL_NO_DSA -DOPENSSL_NO_EC -DOPENSSL_NO_ECDH 
-DOPENSSL_NO_ECDSA -DOPENSSL_NO_ENGINE
+  DEFINE OPENSSL_PATH            = openssl-1.0.2a
+  DEFINE OPENSSL_FLAGS           = -DOPENSSL_SYSNAME_UWIN -DOPENSSL_SYS_UEFI 
-DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
-DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC2 
-DOPENSSL_NO_SOCK -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG 
-DOPENSSL_NO_ERR -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE 
-DGETPID_IS_MEANINGLESS -DOPENSSL_NO_STDIO -DOPENSSL_NO_POSIX_IO 
-DOPENSSL_NO_FP_API -DOPENSSL_NO_DGRAM -DOPENSSL_NO_ASM
+  DEFINE OPENSSL_EXFLAGS         = -DOPENSSL_SMALL_FOOTPRINT -DOPENSSL_NO_SHA0 
-DOPENSSL_NO_LHASH -DOPENSSL_NO_HW -DOPENSSL_NO_OCSP -DOPENSSL_NO_LOCKING 
-DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_RIPEMD -DOPENSSL_NO_RC2 -DOPENSSL_NO_IDEA 
-DOPENSSL_NO_BF -DOPENSSL_NO_CAST -DOPENSSL_NO_WHIRLPOOL -DOPENSSL_NO_DSA 
-DOPENSSL_NO_EC -DOPENSSL_NO_ECDH -DOPENSSL_NO_ECDSA -DOPENSSL_NO_SRP 
-DOPENSSL_NO_ENGINE
 
 #
 # OPENSSL_FLAGS is set to define the following flags to be compatible with
@@ -46,6 +46,7 @@
 #   OPENSSL_NO_DYNAMIC_ENGINE
 #   GETPID_IS_MEANINGLESS
 #   OPENSSL_NO_STDIO
+#   OPENSSL_NO_POSIX_IO
 #   OPENSSL_NO_FP_API
 #   OPENSSL_NO_DGRAM
 #   OPENSSL_NO_ASM
@@ -58,80 +59,122 @@
 [Sources]
   $(OPENSSL_PATH)/e_os.h
   $(OPENSSL_PATH)/crypto/cryptlib.c
-  $(OPENSSL_PATH)/crypto/dyn_lck.c
   $(OPENSSL_PATH)/crypto/mem.c
   $(OPENSSL_PATH)/crypto/mem_clr.c
   $(OPENSSL_PATH)/crypto/mem_dbg.c
   $(OPENSSL_PATH)/crypto/cversion.c
   $(OPENSSL_PATH)/crypto/ex_data.c
-
-  #
-  # Not required for UEFI.
-  #
-  # $(OPENSSL_PATH)/crypto/tmdiff.c
-
   $(OPENSSL_PATH)/crypto/cpt_err.c
   $(OPENSSL_PATH)/crypto/ebcdic.c
   $(OPENSSL_PATH)/crypto/uid.c
   $(OPENSSL_PATH)/crypto/o_time.c
   $(OPENSSL_PATH)/crypto/o_str.c
   $(OPENSSL_PATH)/crypto/o_dir.c
+  $(OPENSSL_PATH)/crypto/o_fips.c
   $(OPENSSL_PATH)/crypto/o_init.c
-  $(OPENSSL_PATH)/crypto/fips_err.c
+  $(OPENSSL_PATH)/crypto/fips_ers.c
 
   #
-  # DIsabled by OPENSSL_NO_MD2
+  # OBJECTS
+  #
+  $(OPENSSL_PATH)/crypto/objects/o_names.c
+  $(OPENSSL_PATH)/crypto/objects/obj_dat.c
+  $(OPENSSL_PATH)/crypto/objects/obj_lib.c
+  $(OPENSSL_PATH)/crypto/objects/obj_err.c
+  $(OPENSSL_PATH)/crypto/objects/obj_xref.c
+
+  #
+  # MD4
   #
-  # $(OPENSSL_PATH)/crypto/md2/md2_dgst.c
-  # $(OPENSSL_PATH)/crypto/md2/md2_one.c
   $(OPENSSL_PATH)/crypto/md4/md4_dgst.c
   $(OPENSSL_PATH)/crypto/md4/md4_one.c
+
+  #
+  # MD5
+  #
   $(OPENSSL_PATH)/crypto/md5/md5_dgst.c
   $(OPENSSL_PATH)/crypto/md5/md5_one.c
+
+  #
+  # SHA
+  #
   $(OPENSSL_PATH)/crypto/sha/sha_dgst.c
   $(OPENSSL_PATH)/crypto/sha/sha1dgst.c
   $(OPENSSL_PATH)/crypto/sha/sha_one.c
   $(OPENSSL_PATH)/crypto/sha/sha1_one.c
   $(OPENSSL_PATH)/crypto/sha/sha256.c
   $(OPENSSL_PATH)/crypto/sha/sha512.c
+
+  #
+  # MDC2 - Disabled by OPENSSL_NO_MDC2
+  #
+  # $(OPENSSL_PATH)/crypto/mdc2/mdc2dgst.c
+  # $(OPENSSL_PATH)/crypto/mdc2/mdc2_one.c
+
+  #
+  # HMAC
+  #
   $(OPENSSL_PATH)/crypto/hmac/hmac.c
+  $(OPENSSL_PATH)/crypto/hmac/hm_ameth.c
+  $(OPENSSL_PATH)/crypto/hmac/hm_pmeth.c
 
   #
-  # Disabled by OPENSSL_NO_RIPEMD
+  # RIPEMD - Disabled by OPENSSL_NO_RIPEMD
   #
   # $(OPENSSL_PATH)/crypto/ripemd/rmd_dgst.c
   # $(OPENSSL_PATH)/crypto/ripemd/rmd_one.c
 
-  $(OPENSSL_PATH)/crypto/des/des_lib.c
-  $(OPENSSL_PATH)/crypto/des/set_key.c
-  $(OPENSSL_PATH)/crypto/des/ecb_enc.c
+  #
+  # WHIRLPOOL - Disabled by OPENSSL_NO_WHIRLPOOL
+  #
+  # $(OPENSSL_PATH)/crypto/whrlpool/wp_dgst.c
+  # $(OPENSSL_PATH)/crypto/whrlpool/wp_block.c
+
+  #
+  # DES
+  #
+  $(OPENSSL_PATH)/crypto/des/cbc_cksm.c
   $(OPENSSL_PATH)/crypto/des/cbc_enc.c
-  $(OPENSSL_PATH)/crypto/des/ecb3_enc.c
   $(OPENSSL_PATH)/crypto/des/cfb64enc.c
-  $(OPENSSL_PATH)/crypto/des/cfb64ede.c
   $(OPENSSL_PATH)/crypto/des/cfb_enc.c
-  $(OPENSSL_PATH)/crypto/des/ofb64ede.c
+  $(OPENSSL_PATH)/crypto/des/ecb3_enc.c
+  $(OPENSSL_PATH)/crypto/des/ecb_enc.c
   $(OPENSSL_PATH)/crypto/des/enc_read.c
   $(OPENSSL_PATH)/crypto/des/enc_writ.c
+  $(OPENSSL_PATH)/crypto/des/fcrypt.c
   $(OPENSSL_PATH)/crypto/des/ofb64enc.c
   $(OPENSSL_PATH)/crypto/des/ofb_enc.c
-  $(OPENSSL_PATH)/crypto/des/str2key.c
   $(OPENSSL_PATH)/crypto/des/pcbc_enc.c
   $(OPENSSL_PATH)/crypto/des/qud_cksm.c
   $(OPENSSL_PATH)/crypto/des/rand_key.c
+  $(OPENSSL_PATH)/crypto/des/rpc_enc.c
+  $(OPENSSL_PATH)/crypto/des/set_key.c
   $(OPENSSL_PATH)/crypto/des/des_enc.c
   $(OPENSSL_PATH)/crypto/des/fcrypt_b.c
-  $(OPENSSL_PATH)/crypto/des/fcrypt.c
   $(OPENSSL_PATH)/crypto/des/xcbc_enc.c
-  $(OPENSSL_PATH)/crypto/des/rpc_enc.c
-  $(OPENSSL_PATH)/crypto/des/cbc_cksm.c
+  $(OPENSSL_PATH)/crypto/des/str2key.c
+  $(OPENSSL_PATH)/crypto/des/cfb64ede.c
+  $(OPENSSL_PATH)/crypto/des/ofb64ede.c
   $(OPENSSL_PATH)/crypto/des/ede_cbcm_enc.c
   $(OPENSSL_PATH)/crypto/des/des_old.c
   $(OPENSSL_PATH)/crypto/des/des_old2.c
   $(OPENSSL_PATH)/crypto/des/read2pwd.c
 
   #
-  # Disabled by OPENSSL_NO_RC2
+  # AES
+  #
+  $(OPENSSL_PATH)/crypto/aes/aes_core.c
+  $(OPENSSL_PATH)/crypto/aes/aes_misc.c
+  $(OPENSSL_PATH)/crypto/aes/aes_ecb.c
+  $(OPENSSL_PATH)/crypto/aes/aes_cbc.c
+  $(OPENSSL_PATH)/crypto/aes/aes_cfb.c
+  $(OPENSSL_PATH)/crypto/aes/aes_ofb.c
+  $(OPENSSL_PATH)/crypto/aes/aes_ctr.c
+  $(OPENSSL_PATH)/crypto/aes/aes_ige.c
+  $(OPENSSL_PATH)/crypto/aes/aes_wrap.c
+
+  #
+  # RC2 - Disabled by OPENSSL_NO_RC2
   #
   # $(OPENSSL_PATH)/crypto/rc2/rc2_ecb.c
   # $(OPENSSL_PATH)/crypto/rc2/rc2_skey.c
@@ -139,28 +182,42 @@
   # $(OPENSSL_PATH)/crypto/rc2/rc2cfb64.c
   # $(OPENSSL_PATH)/crypto/rc2/rc2ofb64.c
 
-  $(OPENSSL_PATH)/crypto/rc4/rc4_enc.c
+  #
+  # RC4
+  #
   $(OPENSSL_PATH)/crypto/rc4/rc4_skey.c
-  $(OPENSSL_PATH)/crypto/rc4/rc4_fblk.c
+  $(OPENSSL_PATH)/crypto/rc4/rc4_enc.c
+  $(OPENSSL_PATH)/crypto/rc4/rc4_utl.c
+
+  #
+  # RC5 - Disabled by OPENSSL_NO_RC5
+  #
+  # $(OPENSSL_PATH)/crypto/rc5/rc5_skey.c
+  # $(OPENSSL_PATH)/crypto/rc5/rc5_ecb.c
+  # $(OPENSSL_PATH)/crypto/rc5/rc5_enc.c
+  # $(OPENSSL_PATH)/crypto/rc5/rc5cfb64.c
+  # $(OPENSSL_PATH)/crypto/rc5/rc5ofb64.c
 
   #
-  # Disabled by OPENSSL_NO_IDEA
+  # IDEA - Disabled by OPENSSL_NO_IDEA
   #
   # $(OPENSSL_PATH)/crypto/idea/i_cbc.c
   # $(OPENSSL_PATH)/crypto/idea/i_cfb64.c
   # $(OPENSSL_PATH)/crypto/idea/i_ofb64.c
   # $(OPENSSL_PATH)/crypto/idea/i_ecb.c
   # $(OPENSSL_PATH)/crypto/idea/i_skey.c
+
   #
-  # Disabled by OPENSSL_NO_BF
+  # BLOWFISH - Disabled by OPENSSL_NO_BF
   #
   # $(OPENSSL_PATH)/crypto/bf/bf_skey.c
   # $(OPENSSL_PATH)/crypto/bf/bf_ecb.c
   # $(OPENSSL_PATH)/crypto/bf/bf_enc.c
   # $(OPENSSL_PATH)/crypto/bf/bf_cfb64.c
   # $(OPENSSL_PATH)/crypto/bf/bf_ofb64.c
+
   #
-  # Disabled by OPENSSL_NO_CAST
+  # CAST - Disabled by OPENSSL_NO_CAST
   #
   # $(OPENSSL_PATH)/crypto/cast/c_skey.c
   # $(OPENSSL_PATH)/crypto/cast/c_ecb.c
@@ -168,15 +225,43 @@
   # $(OPENSSL_PATH)/crypto/cast/c_cfb64.c
   # $(OPENSSL_PATH)/crypto/cast/c_ofb64.c
 
-  $(OPENSSL_PATH)/crypto/aes/aes_misc.c
-  $(OPENSSL_PATH)/crypto/aes/aes_ecb.c
-  $(OPENSSL_PATH)/crypto/aes/aes_cfb.c
-  $(OPENSSL_PATH)/crypto/aes/aes_ofb.c
-  $(OPENSSL_PATH)/crypto/aes/aes_ctr.c
-  $(OPENSSL_PATH)/crypto/aes/aes_ige.c
-  $(OPENSSL_PATH)/crypto/aes/aes_wrap.c
-  $(OPENSSL_PATH)/crypto/aes/aes_core.c
-  $(OPENSSL_PATH)/crypto/aes/aes_cbc.c
+  #
+  # CAMELLIA - Disabled by OPENSSL_NO_CAMELLIA
+  #
+  # $(OPENSSL_PATH)/crypto/camellia/camellia.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_misc.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_ecb.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_cbc.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_ofb.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_cfb.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_ctr.c
+  # $(OPENSSL_PATH)/crypto/camellia/cmll_utl.c
+
+  #
+  # SEED - Disabled by OPENSSL_NO_SEED
+  #
+  # $(OPENSSL_PATH)/crypto/seed/seed.c
+  # $(OPENSSL_PATH)/crypto/seed/seed_ecb.c
+  # $(OPENSSL_PATH)/crypto/seed/seed_cbc.c
+  # $(OPENSSL_PATH)/crypto/seed/seed_cfb.c
+  # $(OPENSSL_PATH)/crypto/seed/seed_ofb.c
+
+  #
+  # MODES
+  #
+  $(OPENSSL_PATH)/crypto/modes/cbc128.c
+  $(OPENSSL_PATH)/crypto/modes/ctr128.c
+  $(OPENSSL_PATH)/crypto/modes/cts128.c
+  $(OPENSSL_PATH)/crypto/modes/cfb128.c
+  $(OPENSSL_PATH)/crypto/modes/ofb128.c
+  $(OPENSSL_PATH)/crypto/modes/gcm128.c
+  $(OPENSSL_PATH)/crypto/modes/ccm128.c
+  $(OPENSSL_PATH)/crypto/modes/xts128.c
+  $(OPENSSL_PATH)/crypto/modes/wrap128.c
+
+  #
+  # BIGNUM
+  #
   $(OPENSSL_PATH)/crypto/bn/bn_add.c
   $(OPENSSL_PATH)/crypto/bn/bn_div.c
   $(OPENSSL_PATH)/crypto/bn/bn_exp.c
@@ -203,9 +288,40 @@
   $(OPENSSL_PATH)/crypto/bn/bn_gf2m.c
   $(OPENSSL_PATH)/crypto/bn/bn_nist.c
   $(OPENSSL_PATH)/crypto/bn/bn_depr.c
-  $(OPENSSL_PATH)/crypto/bn/bn_x931p.c
   $(OPENSSL_PATH)/crypto/bn/bn_const.c
-  $(OPENSSL_PATH)/crypto/bn/bn_opt.c
+  $(OPENSSL_PATH)/crypto/bn/bn_x931p.c
+
+  #
+  # ELLIPTIC CURVE - Disabled by OPENSSL_NO_EC
+  #
+  # $(OPENSSL_PATH)/crypto/ec/ec_lib.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_smpl.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_mont.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_nist.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_cvt.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_mult.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_err.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_curve.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_check.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_print.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_asn1.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_key.c
+  # $(OPENSSL_PATH)/crypto/ec/ec2_smpl.c
+  # $(OPENSSL_PATH)/crypto/ec/ec2_mult.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_ameth.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_pmeth.c
+  # $(OPENSSL_PATH)/crypto/ec/eck_prn.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_nistp224.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_nistp256.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_nistp521.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_nistputil.c
+  # $(OPENSSL_PATH)/crypto/ec/ecp_oct.c
+  # $(OPENSSL_PATH)/crypto/ec/ec2_oct.c
+  # $(OPENSSL_PATH)/crypto/ec/ec_oct.c
+
+  #
+  # RSA
+  #
   $(OPENSSL_PATH)/crypto/rsa/rsa_eay.c
   $(OPENSSL_PATH)/crypto/rsa/rsa_gen.c
   $(OPENSSL_PATH)/crypto/rsa/rsa_lib.c
@@ -220,13 +336,15 @@
   $(OPENSSL_PATH)/crypto/rsa/rsa_null.c
   $(OPENSSL_PATH)/crypto/rsa/rsa_pss.c
   $(OPENSSL_PATH)/crypto/rsa/rsa_x931.c
-  $(OPENSSL_PATH)/crypto/rsa/rsa_x931g.c
   $(OPENSSL_PATH)/crypto/rsa/rsa_asn1.c
   $(OPENSSL_PATH)/crypto/rsa/rsa_depr.c
-  $(OPENSSL_PATH)/crypto/rsa/rsa_eng.c
+  $(OPENSSL_PATH)/crypto/rsa/rsa_ameth.c
+  $(OPENSSL_PATH)/crypto/rsa/rsa_prn.c
+  $(OPENSSL_PATH)/crypto/rsa/rsa_pmeth.c
+  $(OPENSSL_PATH)/crypto/rsa/rsa_crpt.c
 
   #
-  # Disabled by OPENSSL_NO_DSA
+  # DSA - Disabled by OPENSSL_NO_DSA
   #
   # $(OPENSSL_PATH)/crypto/dsa/dsa_gen.c
   # $(OPENSSL_PATH)/crypto/dsa/dsa_key.c
@@ -237,16 +355,23 @@
   # $(OPENSSL_PATH)/crypto/dsa/dsa_err.c
   # $(OPENSSL_PATH)/crypto/dsa/dsa_ossl.c
   # $(OPENSSL_PATH)/crypto/dsa/dsa_depr.c
-  # $(OPENSSL_PATH)/crypto/dsa/dsa_utl.c
+  # $(OPENSSL_PATH)/crypto/dsa/dsa_ameth.c
+  # $(OPENSSL_PATH)/crypto/dsa/dsa_pmeth.c
+  # $(OPENSSL_PATH)/crypto/dsa/dsa_prn.c
 
-  $(OPENSSL_PATH)/crypto/dso/dso_dl.c
-  $(OPENSSL_PATH)/crypto/dso/dso_dlfcn.c
-  $(OPENSSL_PATH)/crypto/dso/dso_err.c
-  $(OPENSSL_PATH)/crypto/dso/dso_lib.c
-  $(OPENSSL_PATH)/crypto/dso/dso_null.c
-  $(OPENSSL_PATH)/crypto/dso/dso_openssl.c
-  $(OPENSSL_PATH)/crypto/dso/dso_win32.c
-  $(OPENSSL_PATH)/crypto/dso/dso_vms.c
+  #
+  # ECDSA - Disabled by OPENSSL_NO_ECDSA
+  #
+  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_lib.c
+  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_asn1.c
+  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_ossl.c
+  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_sign.c
+  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_vrf.c
+  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_err.c
+
+  #
+  # DIFFIE-HELLMAN
+  #
   $(OPENSSL_PATH)/crypto/dh/dh_asn1.c
   $(OPENSSL_PATH)/crypto/dh/dh_gen.c
   $(OPENSSL_PATH)/crypto/dh/dh_key.c
@@ -254,44 +379,73 @@
   $(OPENSSL_PATH)/crypto/dh/dh_check.c
   $(OPENSSL_PATH)/crypto/dh/dh_err.c
   $(OPENSSL_PATH)/crypto/dh/dh_depr.c
+  $(OPENSSL_PATH)/crypto/dh/dh_ameth.c
+  $(OPENSSL_PATH)/crypto/dh/dh_pmeth.c
+  $(OPENSSL_PATH)/crypto/dh/dh_prn.c
+  $(OPENSSL_PATH)/crypto/dh/dh_rfc5114.c
+  # $(OPENSSL_PATH)/crypto/dh/dh_kdf.c
 
   #
-  # Disabled by OPENSSL_NO_EC
-  #
-  # $(OPENSSL_PATH)/crypto/ec/ec_lib.c
-  # $(OPENSSL_PATH)/crypto/ec/ecp_smpl.c
-  # $(OPENSSL_PATH)/crypto/ec/ecp_mont.c
-  # $(OPENSSL_PATH)/crypto/ec/ecp_nist.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_cvt.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_mult.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_err.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_curve.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_check.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_print.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_asn1.c
-  # $(OPENSSL_PATH)/crypto/ec/ec_key.c
-  # $(OPENSSL_PATH)/crypto/ec/ec2_smpl.c
-  # $(OPENSSL_PATH)/crypto/ec/ec2_mult.c
-  #
-  # Disabled by OPENSSL_NO_ECDH
+  # ECDH - Disabled by OPENSSL_NO_ECDH
   #
   # $(OPENSSL_PATH)/crypto/ecdh/ech_lib.c
   # $(OPENSSL_PATH)/crypto/ecdh/ech_ossl.c
   # $(OPENSSL_PATH)/crypto/ecdh/ech_key.c
   # $(OPENSSL_PATH)/crypto/ecdh/ech_err.c
+  # $(OPENSSL_PATH)/crypto/ecdh/ech_kdf.c
+
   #
-  # Disabled by OPENSSL_NO_ECDSA
+  # DSO
   #
-  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_lib.c
-  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_asn1.c
-  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_ossl.c
-  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_sign.c
-  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_vrf.c
-  # $(OPENSSL_PATH)/crypto/ecdsa/ecs_err.c
+  $(OPENSSL_PATH)/crypto/dso/dso_dl.c
+  $(OPENSSL_PATH)/crypto/dso/dso_dlfcn.c
+  $(OPENSSL_PATH)/crypto/dso/dso_err.c
+  $(OPENSSL_PATH)/crypto/dso/dso_lib.c
+  $(OPENSSL_PATH)/crypto/dso/dso_null.c
+  $(OPENSSL_PATH)/crypto/dso/dso_openssl.c
+  $(OPENSSL_PATH)/crypto/dso/dso_win32.c
+  $(OPENSSL_PATH)/crypto/dso/dso_vms.c
+  $(OPENSSL_PATH)/crypto/dso/dso_beos.c
+
+  #
+  # ENGINE - Disabled by OPENSSL_NO_ENGINE
+  #
+  # $(OPENSSL_PATH)/crypto/engine/eng_err.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_lib.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_list.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_init.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_ctrl.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_table.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_pkey.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_fat.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_all.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_rsa.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_dsa.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_ecdsa.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_dh.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_ecdh.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_rand.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_store.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_cipher.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_digest.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_pkmeth.c
+  # $(OPENSSL_PATH)/crypto/engine/tb_asnmth.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_openssl.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_cnf.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_dyn.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_cryptodev.c
+  # $(OPENSSL_PATH)/crypto/engine/eng_rdrand.c
 
+  #
+  # BUFFER
+  #
   $(OPENSSL_PATH)/crypto/buffer/buffer.c
   $(OPENSSL_PATH)/crypto/buffer/buf_str.c
   $(OPENSSL_PATH)/crypto/buffer/buf_err.c
+
+  #
+  # BIO
+  #
   $(OPENSSL_PATH)/crypto/bio/bio_lib.c
   $(OPENSSL_PATH)/crypto/bio/bio_cb.c
   $(OPENSSL_PATH)/crypto/bio/bio_err.c
@@ -299,45 +453,58 @@
   $(OPENSSL_PATH)/crypto/bio/bss_null.c
   $(OPENSSL_PATH)/crypto/bio/bss_fd.c
   $(OPENSSL_PATH)/crypto/bio/bss_file.c
+  $(OPENSSL_PATH)/crypto/bio/bss_sock.c
+  $(OPENSSL_PATH)/crypto/bio/bss_conn.c
   $(OPENSSL_PATH)/crypto/bio/bf_null.c
   $(OPENSSL_PATH)/crypto/bio/bf_buff.c
-
   #
-  # Not required for UEFI.
+  # Not Required by UEFI.
   #
   # $(OPENSSL_PATH)/crypto/bio/b_print.c
-
   $(OPENSSL_PATH)/crypto/bio/b_dump.c
+  $(OPENSSL_PATH)/crypto/bio/b_sock.c
+  $(OPENSSL_PATH)/crypto/bio/bss_acpt.c
   $(OPENSSL_PATH)/crypto/bio/bf_nbio.c
   $(OPENSSL_PATH)/crypto/bio/bss_log.c
   $(OPENSSL_PATH)/crypto/bio/bss_bio.c
   $(OPENSSL_PATH)/crypto/bio/bss_dgram.c
+
+  #
+  # STACK
+  #
   $(OPENSSL_PATH)/crypto/stack/stack.c
+
+  #
+  # LHASH
+  #
   $(OPENSSL_PATH)/crypto/lhash/lhash.c
   $(OPENSSL_PATH)/crypto/lhash/lh_stats.c
+
+  #
+  # RAND
+  #
   $(OPENSSL_PATH)/crypto/rand/md_rand.c
   $(OPENSSL_PATH)/crypto/rand/randfile.c
   $(OPENSSL_PATH)/crypto/rand/rand_lib.c
-  $(OPENSSL_PATH)/crypto/rand/rand_eng.c
   $(OPENSSL_PATH)/crypto/rand/rand_err.c
-  $(OPENSSL_PATH)/crypto/rand/rand_egd.c
-  $(OPENSSL_PATH)/crypto/rand/rand_win.c
+  # $(OPENSSL_PATH)/crypto/rand/rand_egd.c
+  # $(OPENSSL_PATH)/crypto/rand/rand_win.c
   $(OPENSSL_PATH)/crypto/rand/rand_unix.c
-  $(OPENSSL_PATH)/crypto/rand/rand_os2.c
-  $(OPENSSL_PATH)/crypto/rand/rand_nw.c
+  # $(OPENSSL_PATH)/crypto/rand/rand_os2.c
+  # $(OPENSSL_PATH)/crypto/rand/rand_nw.c
+
+  #
+  # ERR
+  #
   $(OPENSSL_PATH)/crypto/err/err.c
-  $(OPENSSL_PATH)/crypto/err/err_def.c
   $(OPENSSL_PATH)/crypto/err/err_all.c
   $(OPENSSL_PATH)/crypto/err/err_prn.c
-  $(OPENSSL_PATH)/crypto/err/err_str.c
-  $(OPENSSL_PATH)/crypto/err/err_bio.c
-  $(OPENSSL_PATH)/crypto/objects/o_names.c
-  $(OPENSSL_PATH)/crypto/objects/obj_dat.c
-  $(OPENSSL_PATH)/crypto/objects/obj_lib.c
-  $(OPENSSL_PATH)/crypto/objects/obj_err.c
+
+  #
+  # EVP
+  #
   $(OPENSSL_PATH)/crypto/evp/encode.c
   $(OPENSSL_PATH)/crypto/evp/digest.c
-  $(OPENSSL_PATH)/crypto/evp/dig_eng.c
   $(OPENSSL_PATH)/crypto/evp/evp_enc.c
   $(OPENSSL_PATH)/crypto/evp/evp_key.c
   $(OPENSSL_PATH)/crypto/evp/evp_acnf.c
@@ -346,22 +513,25 @@
   $(OPENSSL_PATH)/crypto/evp/e_bf.c
   $(OPENSSL_PATH)/crypto/evp/e_idea.c
   $(OPENSSL_PATH)/crypto/evp/e_des3.c
+  $(OPENSSL_PATH)/crypto/evp/e_camellia.c
   $(OPENSSL_PATH)/crypto/evp/e_rc4.c
   $(OPENSSL_PATH)/crypto/evp/e_aes.c
   $(OPENSSL_PATH)/crypto/evp/names.c
+  $(OPENSSL_PATH)/crypto/evp/e_seed.c
   $(OPENSSL_PATH)/crypto/evp/e_xcbc_d.c
   $(OPENSSL_PATH)/crypto/evp/e_rc2.c
   $(OPENSSL_PATH)/crypto/evp/e_cast.c
   $(OPENSSL_PATH)/crypto/evp/e_rc5.c
-  $(OPENSSL_PATH)/crypto/evp/enc_min.c
   $(OPENSSL_PATH)/crypto/evp/m_null.c
   $(OPENSSL_PATH)/crypto/evp/m_md2.c
   $(OPENSSL_PATH)/crypto/evp/m_md4.c
   $(OPENSSL_PATH)/crypto/evp/m_md5.c
   $(OPENSSL_PATH)/crypto/evp/m_sha.c
   $(OPENSSL_PATH)/crypto/evp/m_sha1.c
+  $(OPENSSL_PATH)/crypto/evp/m_wp.c
   $(OPENSSL_PATH)/crypto/evp/m_dss.c
   $(OPENSSL_PATH)/crypto/evp/m_dss1.c
+  $(OPENSSL_PATH)/crypto/evp/m_mdc2.c
   $(OPENSSL_PATH)/crypto/evp/m_ripemd.c
   $(OPENSSL_PATH)/crypto/evp/m_ecdsa.c
   $(OPENSSL_PATH)/crypto/evp/p_open.c
@@ -386,6 +556,17 @@
   $(OPENSSL_PATH)/crypto/evp/p5_crpt.c
   $(OPENSSL_PATH)/crypto/evp/p5_crpt2.c
   $(OPENSSL_PATH)/crypto/evp/e_old.c
+  $(OPENSSL_PATH)/crypto/evp/pmeth_lib.c
+  $(OPENSSL_PATH)/crypto/evp/pmeth_fn.c
+  $(OPENSSL_PATH)/crypto/evp/pmeth_gn.c
+  $(OPENSSL_PATH)/crypto/evp/m_sigver.c
+  $(OPENSSL_PATH)/crypto/evp/e_aes_cbc_hmac_sha1.c
+  $(OPENSSL_PATH)/crypto/evp/e_aes_cbc_hmac_sha256.c
+  $(OPENSSL_PATH)/crypto/evp/e_rc4_hmac_md5.c
+
+  #
+  # ASN1
+  #
   $(OPENSSL_PATH)/crypto/asn1/a_object.c
   $(OPENSSL_PATH)/crypto/asn1/a_bitstr.c
   $(OPENSSL_PATH)/crypto/asn1/a_utctm.c
@@ -421,6 +602,7 @@
   $(OPENSSL_PATH)/crypto/asn1/x_info.c
   $(OPENSSL_PATH)/crypto/asn1/x_spki.c
   $(OPENSSL_PATH)/crypto/asn1/nsseq.c
+  $(OPENSSL_PATH)/crypto/asn1/x_nx509.c
   $(OPENSSL_PATH)/crypto/asn1/d2i_pu.c
   $(OPENSSL_PATH)/crypto/asn1/d2i_pr.c
   $(OPENSSL_PATH)/crypto/asn1/i2d_pu.c
@@ -438,20 +620,22 @@
   $(OPENSSL_PATH)/crypto/asn1/tasn_dec.c
   $(OPENSSL_PATH)/crypto/asn1/tasn_utl.c
   $(OPENSSL_PATH)/crypto/asn1/tasn_typ.c
+  $(OPENSSL_PATH)/crypto/asn1/tasn_prn.c
+  $(OPENSSL_PATH)/crypto/asn1/ameth_lib.c
   $(OPENSSL_PATH)/crypto/asn1/f_int.c
   $(OPENSSL_PATH)/crypto/asn1/f_string.c
   $(OPENSSL_PATH)/crypto/asn1/n_pkey.c
   $(OPENSSL_PATH)/crypto/asn1/f_enum.c
-  $(OPENSSL_PATH)/crypto/asn1/a_hdr.c
   $(OPENSSL_PATH)/crypto/asn1/x_pkey.c
   $(OPENSSL_PATH)/crypto/asn1/a_bool.c
   $(OPENSSL_PATH)/crypto/asn1/x_exten.c
+  $(OPENSSL_PATH)/crypto/asn1/bio_asn1.c
+  $(OPENSSL_PATH)/crypto/asn1/bio_ndef.c
   $(OPENSSL_PATH)/crypto/asn1/asn_mime.c
   $(OPENSSL_PATH)/crypto/asn1/asn1_gen.c
   $(OPENSSL_PATH)/crypto/asn1/asn1_par.c
   $(OPENSSL_PATH)/crypto/asn1/asn1_lib.c
   $(OPENSSL_PATH)/crypto/asn1/asn1_err.c
-  $(OPENSSL_PATH)/crypto/asn1/a_meth.c
   $(OPENSSL_PATH)/crypto/asn1/a_bytes.c
   $(OPENSSL_PATH)/crypto/asn1/a_strnid.c
   $(OPENSSL_PATH)/crypto/asn1/evp_asn1.c
@@ -460,6 +644,10 @@
   $(OPENSSL_PATH)/crypto/asn1/p5_pbev2.c
   $(OPENSSL_PATH)/crypto/asn1/p8_pkey.c
   $(OPENSSL_PATH)/crypto/asn1/asn_moid.c
+
+  #
+  # PEM
+  #
   $(OPENSSL_PATH)/crypto/pem/pem_sign.c
   $(OPENSSL_PATH)/crypto/pem/pem_seal.c
   $(OPENSSL_PATH)/crypto/pem/pem_info.c
@@ -471,6 +659,11 @@
   $(OPENSSL_PATH)/crypto/pem/pem_oth.c
   $(OPENSSL_PATH)/crypto/pem/pem_pk8.c
   $(OPENSSL_PATH)/crypto/pem/pem_pkey.c
+  $(OPENSSL_PATH)/crypto/pem/pvkfmt.c
+
+  #
+  # X509
+  #
   $(OPENSSL_PATH)/crypto/x509/x509_def.c
   $(OPENSSL_PATH)/crypto/x509/x509_d2.c
   $(OPENSSL_PATH)/crypto/x509/x509_r2x.c
@@ -492,9 +685,16 @@
   $(OPENSSL_PATH)/crypto/x509/x_all.c
   $(OPENSSL_PATH)/crypto/x509/x509_txt.c
   $(OPENSSL_PATH)/crypto/x509/x509_trs.c
-  $(OPENSSL_PATH)/crypto/x509/by_file.c
-  $(OPENSSL_PATH)/crypto/x509/by_dir.c
+  #
+  #  Not Required by UEFI.
+  #
+  # $(OPENSSL_PATH)/crypto/x509/by_file.c
+  # $(OPENSSL_PATH)/crypto/x509/by_dir.c
   $(OPENSSL_PATH)/crypto/x509/x509_vpm.c
+
+  #
+  # X509v3
+  #
   $(OPENSSL_PATH)/crypto/x509v3/v3_bcons.c
   $(OPENSSL_PATH)/crypto/x509v3/v3_bitst.c
   $(OPENSSL_PATH)/crypto/x509v3/v3_conf.c
@@ -531,6 +731,14 @@
   $(OPENSSL_PATH)/crypto/x509v3/pcy_lib.c
   $(OPENSSL_PATH)/crypto/x509v3/v3_asid.c
   $(OPENSSL_PATH)/crypto/x509v3/v3_addr.c
+  #
+  #  Not Required by UEFI.
+  #
+  # $(OPENSSL_PATH)/crypto/x509v3/v3_scts.c
+
+  #
+  # CONF
+  #
   $(OPENSSL_PATH)/crypto/conf/conf_err.c
   $(OPENSSL_PATH)/crypto/conf/conf_lib.c
   $(OPENSSL_PATH)/crypto/conf/conf_api.c
@@ -538,7 +746,15 @@
   $(OPENSSL_PATH)/crypto/conf/conf_mod.c
   $(OPENSSL_PATH)/crypto/conf/conf_mall.c
   $(OPENSSL_PATH)/crypto/conf/conf_sap.c
+
+  #
+  # TXT_DB
+  #
   $(OPENSSL_PATH)/crypto/txt_db/txt_db.c
+
+  #
+  # PKCS7
+  #
   $(OPENSSL_PATH)/crypto/pkcs7/pk7_asn1.c
   $(OPENSSL_PATH)/crypto/pkcs7/pk7_lib.c
   $(OPENSSL_PATH)/crypto/pkcs7/pkcs7err.c
@@ -546,6 +762,11 @@
   $(OPENSSL_PATH)/crypto/pkcs7/pk7_smime.c
   $(OPENSSL_PATH)/crypto/pkcs7/pk7_attr.c
   $(OPENSSL_PATH)/crypto/pkcs7/pk7_mime.c
+  $(OPENSSL_PATH)/crypto/pkcs7/bio_pk7.c
+
+  #
+  # PKCS12
+  #
   $(OPENSSL_PATH)/crypto/pkcs12/p12_add.c
   $(OPENSSL_PATH)/crypto/pkcs12/p12_asn.c
   $(OPENSSL_PATH)/crypto/pkcs12/p12_attr.c
@@ -561,68 +782,96 @@
   $(OPENSSL_PATH)/crypto/pkcs12/pk12err.c
   $(OPENSSL_PATH)/crypto/pkcs12/p12_p8d.c
   $(OPENSSL_PATH)/crypto/pkcs12/p12_p8e.c
+
+  #
+  # COMP
+  #
   $(OPENSSL_PATH)/crypto/comp/comp_lib.c
   $(OPENSSL_PATH)/crypto/comp/comp_err.c
   $(OPENSSL_PATH)/crypto/comp/c_rle.c
   $(OPENSSL_PATH)/crypto/comp/c_zlib.c
 
   #
-  # Disabled by OPENSSL_NO_ENGINE
+  # OCSP - Disabled by OPENSSL_NO_OCSP
   #
-  # $(OPENSSL_PATH)/crypto/engine/eng_err.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_lib.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_list.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_init.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_ctrl.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_table.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_pkey.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_fat.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_all.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_rsa.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_dsa.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_ecdsa.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_dh.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_ecdh.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_rand.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_store.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_cipher.c
-  # $(OPENSSL_PATH)/crypto/engine/tb_digest.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_openssl.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_cnf.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_dyn.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_cryptodev.c
-  # $(OPENSSL_PATH)/crypto/engine/eng_padlock.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_asn.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_ext.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_ht.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_lib.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_cl.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_srv.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_prn.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_vfy.c
+  $(OPENSSL_PATH)/crypto/ocsp/ocsp_err.c
 
   #
-  # Disabled by OPENSSL_NO_OCSP
+  # UI
   #
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_asn.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_ext.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_ht.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_lib.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_cl.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_srv.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_prn.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_vfy.c
-  # $(OPENSSL_PATH)/crypto/ocsp/ocsp_err.c
-
-  $(OPENSSL_PATH)/crypto/ui/ui_err.c
   $(OPENSSL_PATH)/crypto/ui/ui_lib.c
-
   #
-  # Not required when OPENSSL_NO_STDIO is set, which is is for UEFI.
+  #  Not Required by UEFI.
   #
+  # $(OPENSSL_PATH)/crypto/ui/ui_err.c
   # $(OPENSSL_PATH)/crypto/ui/ui_openssl.c
-
   $(OPENSSL_PATH)/crypto/ui/ui_util.c
   $(OPENSSL_PATH)/crypto/ui/ui_compat.c
+
+  #
+  # KRB5
+  #
   $(OPENSSL_PATH)/crypto/krb5/krb5_asn.c
-  $(OPENSSL_PATH)/crypto/store/str_err.c
-  $(OPENSSL_PATH)/crypto/store/str_lib.c
-  $(OPENSSL_PATH)/crypto/store/str_meth.c
-  $(OPENSSL_PATH)/crypto/store/str_mem.c
+
+  #
+  # CMS
+  #
+  # $(OPENSSL_PATH)/crypto/cms/cms_lib.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_asn1.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_att.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_io.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_smime.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_err.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_sd.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_dd.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_cd.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_env.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_enc.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_ess.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_pwri.c
+  # $(OPENSSL_PATH)/crypto/cms/cms_kari.c
+
+  #
+  # PQUEUE
+  #
   $(OPENSSL_PATH)/crypto/pqueue/pqueue.c
 
+  #
+  # TS
+  #
+  $(OPENSSL_PATH)/crypto/ts/ts_err.c
+  $(OPENSSL_PATH)/crypto/ts/ts_req_utils.c
+  $(OPENSSL_PATH)/crypto/ts/ts_req_print.c
+  $(OPENSSL_PATH)/crypto/ts/ts_rsp_utils.c
+  $(OPENSSL_PATH)/crypto/ts/ts_rsp_print.c
+  $(OPENSSL_PATH)/crypto/ts/ts_rsp_sign.c
+  $(OPENSSL_PATH)/crypto/ts/ts_rsp_verify.c
+  $(OPENSSL_PATH)/crypto/ts/ts_verify_ctx.c
+  $(OPENSSL_PATH)/crypto/ts/ts_lib.c
+  $(OPENSSL_PATH)/crypto/ts/ts_conf.c
+  $(OPENSSL_PATH)/crypto/ts/ts_asn1.c
+
+  #
+  # SRP - Disabled by OPENSSL_NO_SRP
+  #
+  # $(OPENSSL_PATH)/crypto/srp/srp_lib.c
+  # $(OPENSSL_PATH)/crypto/srp/srp_vfy.c
+
+  #
+  # CMAS
+  #
+  $(OPENSSL_PATH)/crypto/cmac/cmac.c
+  $(OPENSSL_PATH)/crypto/cmac/cm_ameth.c
+  $(OPENSSL_PATH)/crypto/cmac/cm_pmeth.c
+
 [Packages]
   MdePkg/MdePkg.dec
   CryptoPkg/CryptoPkg.dec
@@ -631,47 +880,44 @@
   DebugLib
 
 [BuildOptions]
-   #
-   # Override MSFT build option to remove /W4 (to silence warning messages 
when building OpenSSL).
-   #
-   MSFT:DEBUG_VS2003_IA32_CC_FLAGS        == /nologo /c /WX /Gs32768 /Gy /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:RELEASE_VS2003_IA32_CC_FLAGS      == /nologo /c /WX /Gs32768 /Gy /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w  -DTHIRTY_TWO_BIT
-   MSFT:DEBUG_VS2003xASL_IA32_CC_FLAGS    == /nologo /c /WX /Gs32768 /Gy /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:RELEASE_VS2003xASL_IA32_CC_FLAGS  == /nologo /c /WX /Gs32768 /Gy /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:DEBUG_DDK3790_IA32_CC_FLAGS       == /nologo /c /WX /Gy /Gs32768 /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:RELEASE_DDK3790_IA32_CC_FLAGS     == /nologo /c /WX /Gy /Gs32768 /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -U_WIN32 -U_WIN64 -U_MSC_VER 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:DEBUG_DDK3790xASL_IA32_CC_FLAGS   == /nologo /c /WX /Gy /Gs32768 /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:RELEASE_DDK3790xASL_IA32_CC_FLAGS == /nologo /c /WX /Gy /Gs32768 /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -U_WIN32 -U_WIN64 -U_MSC_VER 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:DEBUG_*_IA32_CC_FLAGS             == /nologo /c /WX /GS- /Gs32768 /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:RELEASE_*_IA32_CC_FLAGS           == /nologo /c /WX /GS- /Gs32768 /D 
UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF -U_WIN32 -U_WIN64 -U_MSC_VER 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:NOOPT_*_IA32_CC_FLAGS             == /nologo /c /WX /GS- /Gs32768 /D 
UNICODE /Od /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   MSFT:DEBUG_*_X64_CC_FLAGS              == /nologo /c /WX /GS- /X /Gs32768 
/D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -U_WIN32 
-U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   MSFT:RELEASE_*_X64_CC_FLAGS            == /nologo /c /WX /GS- /X /Gs32768 
/D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   MSFT:NOOPT_*_X64_CC_FLAGS              == /nologo /c /WX /GS- /X /Gs32768 
/D UNICODE /Od /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm -U_WIN32 -U_WIN64 
-U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   MSFT:DEBUG_*_IPF_CC_FLAGS              == /nologo /c /WX /GS- /X /EHs-c- 
/GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 /Zi -U_WIN32 -U_WIN64 -U_MSC_VER 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   MSFT:RELEASE_*_IPF_CC_FLAGS            == /nologo /c /WX /GS- /X /EHs-c- 
/GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32 -U_WIN32 -U_WIN64 -U_MSC_VER 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   MSFT:NOOPT_*_IPF_CC_FLAGS              == /nologo /c /WX /GS- /X /EHs-c- 
/GR- /Gy /Od /FIAutoGen.h /QIPF_fr32 /Zi -U_WIN32 -U_WIN64 -U_MSC_VER 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   INTEL:*_*_IA32_CC_FLAGS                = -U_WIN32 -U_WIN64 -U_MSC_VER 
-U__ICC $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
-   INTEL:*_*_X64_CC_FLAGS                 = -U_WIN32 -U_WIN64 -U_MSC_VER 
-U__ICC $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   INTEL:*_*_IPF_CC_FLAGS                 = -U_WIN32 -U_WIN64 -U_MSC_VER 
-U__ICC $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
-   GCC:*_*_IA32_CC_FLAGS                  = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DTHIRTY_TWO_BIT
-   GCC:*_*_X64_CC_FLAGS                   = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
-   GCC:*_*_IPF_CC_FLAGS                   = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
-   GCC:*_*_ARM_CC_FLAGS                   = $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DTHIRTY_TWO_BIT
-   GCC:*_*_AARCH64_CC_FLAGS               = $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
-
-   # suppress the following warnings in openssl so we don't break the build 
with warnings-as-errors:
-   # 1295: Deprecated declaration <entity> - give arg types
-   #  550: <entity> was set but never used
-   # 1293: assignment in condition
-   #  111: statement is unreachable (invariably "break;" after "return X;" in 
case statement)
-   #   68: integer conversion resulted in a change of sign ("if (Status == 
-1)")
-   #  177: <entity> was declared but never referenced
-   #  223: function <entity> declared implicitly
-   #  144: a value of type <type> cannot be used to initialize an entity of 
type <type>
-   #  513: a value of type <type> cannot be assigned to an entity of type 
<type>
-   #  188: enumerated type mixed with another type (i.e. passing an integer as 
an enum without a cast)
-   # 1296: Extended constant initialiser used
-   RVCT:*_*_ARM_CC_FLAGS                  = $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) --library_interface=aeabi_clib99 --fpu=vfpv3 
-DTHIRTY_TWO_BIT --diag_suppress=1296,1295,550,1293,111,68,177,223,144,513,188
-   XCODE:*_*_IA32_CC_FLAGS                = -mmmx -msse -U_WIN32 -U_WIN64 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) -w -DTHIRTY_TWO_BIT
-   XCODE:*_*_X64_CC_FLAGS                 = -mmmx -msse -U_WIN32 -U_WIN64 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
\ No newline at end of file
+  #
+  # Disables the following Visual Studio compiler warnings brought by openssl 
source, so we do not break the build with /WX option:
+  # C4244: conversion from type1 to type2, possible loss of data
+  # C4702: unreachable code
+  # C4706: assignment within conditional expression
+  # C4133: incompatible types - from type1 to type2
+  # C4245: conversion from type1 to type2, signed/unsigned mismatch
+  # C4267: conversion from size_t to type, possible loss of data
+  # C4305: truncation from type1 to type2 of smaller size
+  # C4306: conversion from type1 to type2 of greater size
+  # C4702: Potentially uninitialized local variable name used
+  #
+  MSFT:*_*_IA32_CC_FLAGS    = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -DTHIRTY_TWO_BIT /wd4244 /wd4701 /wd4702 /wd4706
+  MSFT:*_*_X64_CC_FLAGS     = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -DSIXTY_FOUR_BIT /wd4133 /wd4244 /wd4245 /wd4267 /wd4701 
/wd4305 /wd4306 /wd4702 /wd4706
+  MSFT:*_*_IPF_CC_FLAGS     = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -DSIXTY_FOUR_BIT /wd4133 /wd4244 /wd4245 /wd4267 /wd4701 
/wd4305 /wd4306 /wd4702 /wd4706
+
+  INTEL:*_*_IA32_CC_FLAGS   = -U_WIN32 -U_WIN64 -U_MSC_VER -U__ICC 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DTHIRTY_TWO_BIT
+  INTEL:*_*_X64_CC_FLAGS    = -U_WIN32 -U_WIN64 -U_MSC_VER -U__ICC 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
+  INTEL:*_*_IPF_CC_FLAGS    = -U_WIN32 -U_WIN64 -U_MSC_VER -U__ICC 
$(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) /w -DSIXTY_FOUR_BIT
+
+  GCC:*_*_IA32_CC_FLAGS     = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DTHIRTY_TWO_BIT
+  GCC:*_*_X64_CC_FLAGS      = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
+  GCC:*_*_IPF_CC_FLAGS      = -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
+  GCC:*_*_ARM_CC_FLAGS      = $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) -w 
-DTHIRTY_TWO_BIT
+  GCC:*_*_AARCH64_CC_FLAGS  = $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) -w 
-DSIXTY_FOUR_BIT_LONG
+
+  # suppress the following warnings in openssl so we don't break the build 
with warnings-as-errors:
+  # 1295: Deprecated declaration <entity> - give arg types
+  #  550: <entity> was set but never used
+  # 1293: assignment in condition
+  #  111: statement is unreachable (invariably "break;" after "return X;" in 
case statement)
+  #   68: integer conversion resulted in a change of sign ("if (Status == -1)")
+  #  177: <entity> was declared but never referenced
+  #  223: function <entity> declared implicitly
+  #  144: a value of type <type> cannot be used to initialize an entity of 
type <type>
+  #  513: a value of type <type> cannot be assigned to an entity of type <type>
+  #  188: enumerated type mixed with another type (i.e. passing an integer as 
an enum without a cast)
+  # 1296: Extended constant initialiser used
+  RVCT:*_*_ARM_CC_FLAGS     = $(OPENSSL_FLAGS) $(OPENSSL_EXFLAGS) 
--library_interface=aeabi_clib99 --fpu=vfpv3 -DTHIRTY_TWO_BIT 
--diag_suppress=1296,1295,550,1293,111,68,177,223,144,513,188
+  XCODE:*_*_IA32_CC_FLAGS   = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DTHIRTY_TWO_BIT
+  XCODE:*_*_X64_CC_FLAGS    = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) 
$(OPENSSL_EXFLAGS) -w -DSIXTY_FOUR_BIT_LONG
diff --git a/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt 
b/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt
index de60a5f..d24cc15 100644
--- a/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt
+++ b/CryptoPkg/Library/OpensslLib/Patch-HOWTO.txt
@@ -4,49 +4,49 @@
 
================================================================================
   OpenSSL is a well-known open source implementation of SSL and TLS protocols.
 The core library implements the basic cryptographic functions and provides 
various
-utility functions. The OpenSSL library is widely used in variety of security 
-products development as base crypto provider. (See http://www.openssl.org for 
more 
+utility functions. The OpenSSL library is widely used in variety of security
+products development as base crypto provider. (See http://www.openssl.org for 
more
 information for OpenSSL).
-  UEFI (Unified Extensible Firmware Interface) is a specification detailing 
the 
-interfaces between OS and platform firmware. Several security features were 
-introduced (e.g. Authenticated Variable Service, Driver Signing, etc) from 
UEFI 
-2.2 (http://www.uefi.org). These security features highly depends on the 
+  UEFI (Unified Extensible Firmware Interface) is a specification detailing the
+interfaces between OS and platform firmware. Several security features were
+introduced (e.g. Authenticated Variable Service, Driver Signing, etc) from UEFI
+2.2 (http://www.uefi.org). These security features highly depends on the
 cryptography. This patch will enable openssl building under UEFI environment.
 
 
 
================================================================================
                                 OpenSSL-Version
 
================================================================================
-  Current supported OpenSSL version for UEFI Crypto Library is 0.9.8zf.
-    http://www.openssl.org/source/openssl-0.9.8zf.tar.gz
+  Current supported OpenSSL version for UEFI Crypto Library is 1.0.2a.
+    http://www.openssl.org/source/openssl-1.0.2a.tar.gz
 
 
 
================================================================================
                       HOW to Install Openssl for UEFI Building
 
================================================================================
-1.  Download OpenSSL 0.9.8zf from official website:
-       http://www.openssl.org/source/openssl-0.9.8zf.tar.gz
+1.  Download OpenSSL 1.0.2a from official website:
+    http://www.openssl.org/source/openssl-1.0.2a.tar.gz
 
-    NOTE: Some web browsers may rename the downloaded TAR file to 
openssl-0.9.8zf.tar.tar.
-          When you do the download, rename the "openssl-0.9.8zf.tar.tar" to
-          "openssl-0.9.8zf.tar.gz" or rename the local downloaded file with 
".tar.tar"
+    NOTE: Some web browsers may rename the downloaded TAR file to 
openssl-1.0.2a.tar.tar.
+          When you do the download, rename the "openssl-1.0.2a.tar.tar" to
+          "openssl-1.0.2a.tar.gz" or rename the local downloaded file with 
".tar.tar"
           extension to ".tar.gz".
 
-2.  Extract TAR into CryptoPkg/Library/OpenSslLib/openssl-0.9.8zf
+2.  Extract TAR into CryptoPkg/Library/OpenSslLib/openssl-1.0.2a
 
-    NOTE: If you use WinZip to unpack the openssl source in Windows, please 
-          uncheck the WinZip smart CR/LF conversion option (WINZIP: Options 
--> 
+    NOTE: If you use WinZip to unpack the openssl source in Windows, please
+          uncheck the WinZip smart CR/LF conversion option (WINZIP: Options -->
           Configuration --> Miscellaneous --> "TAR file smart CR/LF 
conversion").
-  
-3.  Apply this patch: EDKII_openssl-0.9.8zf.patch, and make installation
+
+3.  Apply this patch: EDKII_openssl-1.0.2a.patch, and make installation
 
     For Windows Environment:
     ------------------------
     1) Make sure the patch utility has been installed in your machine.
-       Install Cygwin or get the patch utility binary from 
+       Install Cygwin or get the patch utility binary from
           http://gnuwin32.sourceforge.net/packages/patch.htm
-    2) cd $(WORKSPACE)\CryptoPkg\Library\OpensslLib\openssl-0.9.8zf
-    3) patch -p0 -i ..\EDKII_openssl-0.9.8zf.patch
+    2) cd $(WORKSPACE)\CryptoPkg\Library\OpensslLib\openssl-1.0.2a
+    3) patch -p0 -i ..\EDKII_openssl-1.0.2a.patch
     4) cd ..
     5) Install.cmd
 
@@ -54,8 +54,8 @@ cryptography. This patch will enable openssl building under 
UEFI environment.
     -----------------------
     1) Make sure the patch utility has been installed in your machine.
        Patch utility is available from http://directory.fsf.org/project/patch/
-    2) cd $(WORKSPACE)/CryptoPkg/Library/OpensslLib/openssl-0.9.8zf
-    3) patch -p0 -i ../EDKII_openssl-0.9.8zf.patch
+    2) cd $(WORKSPACE)/CryptoPkg/Library/OpensslLib/openssl-1.0.2a
+    3) patch -p0 -i ../EDKII_openssl-1.0.2a.patch
     4) cd ..
     5) ./Install.sh
 
-- 
1.9.5.msysgit.1


------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to