I would like to attach this feature branch "Readme.MD" file first before the
new branch created. And also update one of the request patch since the latest
version commit in CryptoPkg is in conflict with this fix. The patch subject is
<[Patch 2/6] CryptoPkg: Add OpensslTlsLib module to enable 'openssl\ssl'>. See
attached email.
If no objection, the branch will be created and named to "HTTPS-TLS".
Thanks.
Jiaxin
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of El-
> Haj-Mahmoud, Samer
> Sent: Friday, April 15, 2016 12:44 AM
> To: edk2-devel@lists.01.org
> Subject: [edk2] Request HTTPS branch in edk2-staging
>
> I would like to request the creation of a feature branch under
> https://github.com/tianocore/edk2-staging for the development of the
> HTTPs/TLS feature.
>
> The patches (attached) were sent to EDK2 dev list (first patches were on 2/24)
> with multiple reviews. Yet, the code is not committed to EDK2. This is
> understandable because the feature may not be ready yet.
>
> We have some additional changes we would like to make (to fix bugs and
> enhance the implementation), and would like to do this in the feature branch.
>
> Thanks,
> --Samer
--- Begin Message ---
v2:
* The latest version commit in CryptoPkg is in conflict with
this fix. So, this update resolve the conflict issue.
* Remove NULL 'time' parameter fix and make it as a standalone
commit.
* Update OpensslTlsLib implementation.
* convert OpensslTlsLib.uni from UTF-16 to UTF-8.
This patch is used to add OpensslTlsLib module to enable
'openssl\ssl' function.
Cc: Long Qin <qin.l...@intel.com>
Cc: Ye Ting <ting...@intel.com>
Cc: Fu Siyuan <siyuan...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin...@intel.com>
---
CryptoPkg/CryptoPkg.dsc | 1 +
CryptoPkg/Include/OpenSslSupport.h | 11 ++-
CryptoPkg/Library/OpensslLib/Install.cmd | 1 +
CryptoPkg/Library/OpensslLib/Install.sh | 1 +
CryptoPkg/Library/OpensslLib/OpensslLib.inf | 1 +
CryptoPkg/Library/OpensslLib/OpensslTlsLib.inf | 110 +++++++++++++++++++++++++
CryptoPkg/Library/OpensslLib/OpensslTlsLib.uni | 21 +++++
7 files changed, 145 insertions(+), 1 deletion(-)
create mode 100644 CryptoPkg/Library/OpensslLib/OpensslTlsLib.inf
create mode 100644 CryptoPkg/Library/OpensslLib/OpensslTlsLib.uni
diff --git a/CryptoPkg/CryptoPkg.dsc b/CryptoPkg/CryptoPkg.dsc
index 5ae0e67..bb7f082 100644
--- a/CryptoPkg/CryptoPkg.dsc
+++ b/CryptoPkg/CryptoPkg.dsc
@@ -48,10 +48,11 @@
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
+ OpensslTlsLib|CryptoPkg/Library/OpensslLib/OpensslTlsLib.inf
[LibraryClasses.ARM, LibraryClasses.AARCH64]
#
# It is not possible to prevent the ARM compiler for generic intrinsic
functions.
# This library provides the instrinsic functions generate by a given
compiler.
diff --git a/CryptoPkg/Include/OpenSslSupport.h
b/CryptoPkg/Include/OpenSslSupport.h
index 239ae8b..13c73b5 100644
--- a/CryptoPkg/Include/OpenSslSupport.h
+++ b/CryptoPkg/Include/OpenSslSupport.h
@@ -1,9 +1,9 @@
/** @file
Root include file to support building OpenSSL Crypto Library.
-Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
which accompanies this distribution. The full text of the license may be
found at
http://opensource.org/licenses/bsd-license.php
@@ -116,10 +116,12 @@ typedef UINT32 ino_t;
typedef UINT32 dev_t;
typedef UINT16 nlink_t;
typedef int pid_t;
typedef void *DIR;
typedef void __sighandler_t (int);
+typedef UINT8 __uint8_t;
+typedef UINT8 sa_family_t;
//
// Structures from EFI Application Toolkit required to buiild Open SSL
//
struct tm {
@@ -170,10 +172,16 @@ struct stat {
UINT32 st_gen; /* file generation number */
INT32 st_lspare;
INT64 st_qspare[2];
};
+struct sockaddr {
+ __uint8_t sa_len; /* total length */
+ sa_family_t sa_family; /* address family */
+ char sa_data[14]; /* actually longer; address value */
+};
+
//
// Externs from EFI Application Toolkit required to buiild Open SSL
//
extern int errno;
@@ -270,8 +278,9 @@ extern FILE *stdout;
#define strchr(str,ch) ScanMem8((VOID
*)(str),AsciiStrSize(str),(UINT8)ch)
#define abort() ASSERT (FALSE)
#define assert(expression)
#define localtime(timer) NULL
#define gmtime_r(timer,result) (result = NULL)
+#define gettimeofday(tvp,tz) do { (tvp)->tv_sec = time(NULL);
(tvp)->tv_usec = 0; } while (0)
#define atoi(nptr) AsciiStrDecimalToUintn(nptr)
#endif
diff --git a/CryptoPkg/Library/OpensslLib/Install.cmd
b/CryptoPkg/Library/OpensslLib/Install.cmd
index 51e5414..e5a5f0d 100755
--- a/CryptoPkg/Library/OpensslLib/Install.cmd
+++ b/CryptoPkg/Library/OpensslLib/Install.cmd
@@ -6,10 +6,11 @@ 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\o_dir.h include
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
diff --git a/CryptoPkg/Library/OpensslLib/Install.sh
b/CryptoPkg/Library/OpensslLib/Install.sh
index 06f1dcd..4ff1d39 100755
--- a/CryptoPkg/Library/OpensslLib/Install.sh
+++ b/CryptoPkg/Library/OpensslLib/Install.sh
@@ -8,10 +8,11 @@ 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/o_dir.h include
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
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
index 8757100..88dac2f 100644
--- a/CryptoPkg/Library/OpensslLib/OpensslLib.inf
+++ b/CryptoPkg/Library/OpensslLib/OpensslLib.inf
@@ -468,10 +468,11 @@
$(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/krb5/krb5_asn.c
+ $(OPENSSL_PATH)/crypto/pqueue/pqueue.c
$(OPENSSL_PATH)/crypto/cmac/cmac.c
$(OPENSSL_PATH)/crypto/cmac/cm_ameth.c
$(OPENSSL_PATH)/crypto/cmac/cm_pmeth.c
# Autogenerated files list ends here
diff --git a/CryptoPkg/Library/OpensslLib/OpensslTlsLib.inf
b/CryptoPkg/Library/OpensslLib/OpensslTlsLib.inf
new file mode 100644
index 0000000..e3dfbec
--- /dev/null
+++ b/CryptoPkg/Library/OpensslLib/OpensslTlsLib.inf
@@ -0,0 +1,110 @@
+## @file
+# This module provides OpenSSL SSL/TLS Library implementation.
+#
+# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD
License
+# which accompanies this distribution. The full text of the license may be
found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED.
+#
+##
+
+[Defines]
+ INF_VERSION = 0x00010005
+ BASE_NAME = OpensslTlsLib
+ MODULE_UNI_FILE = OpensslTlsLib.uni
+ FILE_GUID = 8F636E6A-394C-428A-A3A5-CE2AAAA7D55B
+ MODULE_TYPE = BASE
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = OpensslTlsLib
+ DEFINE OPENSSL_PATH = openssl-1.0.2g
+ DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
+
+#
+# VALID_ARCHITECTURES = IA32 X64 IPF ARM AARCH64
+#
+
+[Sources]
+ $(OPENSSL_PATH)/e_os.h
+ $(OPENSSL_PATH)/ssl/s2_meth.c
+ $(OPENSSL_PATH)/ssl/s2_srvr.c
+ $(OPENSSL_PATH)/ssl/s2_clnt.c
+ $(OPENSSL_PATH)/ssl/s2_lib.c
+ $(OPENSSL_PATH)/ssl/s2_enc.c
+ $(OPENSSL_PATH)/ssl/s2_pkt.c
+ $(OPENSSL_PATH)/ssl/s3_meth.c
+ $(OPENSSL_PATH)/ssl/s3_srvr.c
+ $(OPENSSL_PATH)/ssl/s3_clnt.c
+ $(OPENSSL_PATH)/ssl/s3_lib.c
+ $(OPENSSL_PATH)/ssl/s3_enc.c
+ $(OPENSSL_PATH)/ssl/s3_pkt.c
+ $(OPENSSL_PATH)/ssl/s3_both.c
+ $(OPENSSL_PATH)/ssl/s3_cbc.c
+ $(OPENSSL_PATH)/ssl/s23_meth.c
+ $(OPENSSL_PATH)/ssl/s23_srvr.c
+ $(OPENSSL_PATH)/ssl/s23_clnt.c
+ $(OPENSSL_PATH)/ssl/s23_lib.c
+ $(OPENSSL_PATH)/ssl/s23_pkt.c
+ $(OPENSSL_PATH)/ssl/t1_meth.c
+ $(OPENSSL_PATH)/ssl/t1_srvr.c
+ $(OPENSSL_PATH)/ssl/t1_clnt.c
+ $(OPENSSL_PATH)/ssl/t1_lib.c
+ $(OPENSSL_PATH)/ssl/t1_enc.c
+ $(OPENSSL_PATH)/ssl/t1_ext.c
+ $(OPENSSL_PATH)/ssl/d1_meth.c
+ $(OPENSSL_PATH)/ssl/d1_srvr.c
+ $(OPENSSL_PATH)/ssl/d1_clnt.c
+ $(OPENSSL_PATH)/ssl/d1_lib.c
+ $(OPENSSL_PATH)/ssl/d1_pkt.c
+ $(OPENSSL_PATH)/ssl/d1_both.c
+ $(OPENSSL_PATH)/ssl/d1_srtp.c
+ $(OPENSSL_PATH)/ssl/ssl_lib.c
+ $(OPENSSL_PATH)/ssl/ssl_err2.c
+ $(OPENSSL_PATH)/ssl/ssl_cert.c
+ $(OPENSSL_PATH)/ssl/ssl_sess.c
+ $(OPENSSL_PATH)/ssl/ssl_ciph.c
+ $(OPENSSL_PATH)/ssl/ssl_stat.c
+ $(OPENSSL_PATH)/ssl/ssl_rsa.c
+ $(OPENSSL_PATH)/ssl/ssl_asn1.c
+ $(OPENSSL_PATH)/ssl/ssl_txt.c
+ $(OPENSSL_PATH)/ssl/ssl_algs.c
+ #
+ # Disable SSL command configuration interfaces.
+ #
+ # $(OPENSSL_PATH)/ssl/ssl_conf.c
+ $(OPENSSL_PATH)/ssl/bio_ssl.c
+ $(OPENSSL_PATH)/ssl/ssl_err.c
+ $(OPENSSL_PATH)/ssl/kssl.c
+ $(OPENSSL_PATH)/ssl/t1_reneg.c
+ $(OPENSSL_PATH)/ssl/tls_srp.c
+ $(OPENSSL_PATH)/ssl/t1_trce.c
+ $(OPENSSL_PATH)/ssl/ssl_utst.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ CryptoPkg/CryptoPkg.dec
+
+[LibraryClasses]
+ DebugLib
+ OpensslLib
+
+[BuildOptions]
+ #
+ # 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)
/wd4244 /wd4245 /wd4701 /wd4702 /wd4706
+ MSFT:*_*_X64_CC_FLAGS = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS)
/wd4133 /wd4244 /wd4245 /wd4267 /wd4701 /wd4305 /wd4306 /wd4702 /wd4706 /wd4311
+ MSFT:*_*_IPF_CC_FLAGS = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS)
/wd4133 /wd4244 /wd4245 /wd4267 /wd4701 /wd4305 /wd4306 /wd4702 /wd4706
+
diff --git a/CryptoPkg/Library/OpensslLib/OpensslTlsLib.uni
b/CryptoPkg/Library/OpensslLib/OpensslTlsLib.uni
new file mode 100644
index 0000000..e5f2853
--- /dev/null
+++ b/CryptoPkg/Library/OpensslLib/OpensslTlsLib.uni
@@ -0,0 +1,21 @@
+// /** @file
+// This module provides OpenSSL SSL/TLS Library implementation.
+//
+// This module provides OpenSSL SSL/TLS Library implementation.
+//
+// Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+//
+// This program and the accompanying materials
+// are licensed and made available under the terms and conditions of the BSD
License
+// which accompanies this distribution. The full text of the license may be
found at
+// http://opensource.org/licenses/bsd-license.php
+//
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED.
+//
+// **/
+
+
+#string STR_MODULE_ABSTRACT #language en-US "OpenSSL SSL/TLS
Library implementation"
+
+#string STR_MODULE_DESCRIPTION #language en-US "This module provides
OpenSSL SSL/TLS Library implementation."
\ No newline at end of file
--
1.9.5.msysgit.1
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
--- End Message ---
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel