Cc: Palmer Thomas <thomas.pal...@hpe.com> 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: Wu Jiaxin <jiaxin...@intel.com> Signed-off-by: Jiaxin Wu <jiaxin...@intel.com> --- NetworkPkg/HttpDxe/HttpDriver.h | 2 ++ NetworkPkg/HttpDxe/HttpProto.c | 12 +++++------ NetworkPkg/HttpDxe/HttpsSupport.c | 22 ++++++++++---------- NetworkPkg/HttpDxe/HttpsSupport.h | 44 --------------------------------------- 4 files changed, 19 insertions(+), 61 deletions(-)
diff --git a/NetworkPkg/HttpDxe/HttpDriver.h b/NetworkPkg/HttpDxe/HttpDriver.h index 28a78ed..93a412a 100644 --- a/NetworkPkg/HttpDxe/HttpDriver.h +++ b/NetworkPkg/HttpDxe/HttpDriver.h @@ -60,10 +60,12 @@ // #include <Protocol/Http.h> #include <Guid/TlsAuthentication.h> +#include <IndustryStandard/Tls1.h> + // // Driver Version // #define HTTP_DRIVER_VERSION 0xa diff --git a/NetworkPkg/HttpDxe/HttpProto.c b/NetworkPkg/HttpDxe/HttpProto.c index 80530a0..77a3ee3 100644 --- a/NetworkPkg/HttpDxe/HttpProto.c +++ b/NetworkPkg/HttpDxe/HttpProto.c @@ -1496,21 +1496,21 @@ HttpTransmitTcp ( // if (HttpInstance->UseHttps) { // // Build BufferOut data // - BufferSize = sizeof (TLSRecordHeader) + TxStringLen; + BufferSize = sizeof (TLS_RECORD_HEADER) + TxStringLen; Buffer = AllocateZeroPool (BufferSize); if (Buffer == NULL) { Status = EFI_OUT_OF_RESOURCES; return Status; } - ((TLSRecordHeader *) Buffer)->ContentType = TLS_CONTENT_TYPE_APPLICATION_DATA; - ((TLSRecordHeader *) Buffer)->Version.Major = HttpInstance->TlsConfigData.Version.Major; - ((TLSRecordHeader *) Buffer)->Version.Minor = HttpInstance->TlsConfigData.Version.Minor; - ((TLSRecordHeader *) Buffer)->Length = (UINT16) (TxStringLen); - CopyMem (Buffer + sizeof (TLSRecordHeader), TxString, TxStringLen); + ((TLS_RECORD_HEADER *) Buffer)->ContentType = TLS_CONTENT_TYPE_APPLICATION_DATA; + ((TLS_RECORD_HEADER *) Buffer)->Version.Major = HttpInstance->TlsConfigData.Version.Major; + ((TLS_RECORD_HEADER *) Buffer)->Version.Minor = HttpInstance->TlsConfigData.Version.Minor; + ((TLS_RECORD_HEADER *) Buffer)->Length = (UINT16) (TxStringLen); + CopyMem (Buffer + sizeof (TLS_RECORD_HEADER), TxString, TxStringLen); // // Encrypt Packet. // Status = TlsProcessMessage ( diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSupport.c index d746972..9a68b45 100644 --- a/NetworkPkg/HttpDxe/HttpsSupport.c +++ b/NetworkPkg/HttpDxe/HttpsSupport.c @@ -845,15 +845,15 @@ TlsReceiveOnePdu ( LIST_ENTRY *NbufList; UINT32 Len; - NET_BUF *PduHdr; - UINT8 *Header; - TLSRecordHeader RecordHeader; + NET_BUF *PduHdr; + UINT8 *Header; + TLS_RECORD_HEADER RecordHeader; - NET_BUF *DataSeg; + NET_BUF *DataSeg; NbufList = NULL; PduHdr = NULL; Header = NULL; DataSeg = NULL; @@ -866,11 +866,11 @@ TlsReceiveOnePdu ( InitializeListHead (NbufList); // // Allocate buffer to receive one TLS header. // - Len = sizeof (TLSRecordHeader); + Len = sizeof (TLS_RECORD_HEADER); PduHdr = NetbufAlloc (Len); if (PduHdr == NULL) { Status = EFI_OUT_OF_RESOURCES; goto ON_EXIT; } @@ -887,11 +887,11 @@ TlsReceiveOnePdu ( Status = TlsCommonReceive (HttpInstance, PduHdr, Timeout); if (EFI_ERROR (Status)) { goto ON_EXIT; } - RecordHeader = *(TLSRecordHeader *) Header; + RecordHeader = *(TLS_RECORD_HEADER *) Header; if ((RecordHeader.ContentType == TLS_CONTENT_TYPE_HANDSHAKE || RecordHeader.ContentType == TLS_CONTENT_TYPE_ALERT || RecordHeader.ContentType == TLS_CONTENT_TYPE_CHANGE_CIPHER_SPEC || RecordHeader.ContentType == TLS_CONTENT_TYPE_APPLICATION_DATA) && (RecordHeader.Version.Major == 0x03) && /// Major versions are same. @@ -1439,11 +1439,11 @@ HttpsReceive ( IN EFI_EVENT Timeout ) { EFI_STATUS Status; NET_BUF *Pdu; - TLSRecordHeader RecordHeader; + TLS_RECORD_HEADER RecordHeader; UINT8 *BufferIn; UINTN BufferInSize; NET_FRAGMENT TempFragment; UINT8 *BufferOut; UINTN BufferOutSize; @@ -1484,11 +1484,11 @@ HttpsReceive ( NetbufFree (Pdu); // // Handle Receive data. // - RecordHeader = *(TLSRecordHeader *) BufferIn; + RecordHeader = *(TLS_RECORD_HEADER *) BufferIn; if ((RecordHeader.ContentType == TLS_CONTENT_TYPE_APPLICATION_DATA) && (RecordHeader.Version.Major == 0x03) && (RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR || RecordHeader.Version.Minor == TLS11_PROTOCOL_VERSION_MINOR || @@ -1571,20 +1571,20 @@ HttpsReceive ( } // // Parsing buffer. // - ASSERT (((TLSRecordHeader *) (TempFragment.Bulk))->ContentType == TLS_CONTENT_TYPE_APPLICATION_DATA); + ASSERT (((TLS_RECORD_HEADER *) (TempFragment.Bulk))->ContentType == TLS_CONTENT_TYPE_APPLICATION_DATA); - BufferInSize = ((TLSRecordHeader *) (TempFragment.Bulk))->Length; + BufferInSize = ((TLS_RECORD_HEADER *) (TempFragment.Bulk))->Length; BufferIn = AllocateZeroPool (BufferInSize); if (BufferIn == NULL) { Status = EFI_OUT_OF_RESOURCES; return Status; } - CopyMem (BufferIn, TempFragment.Bulk + sizeof (TLSRecordHeader), BufferInSize); + CopyMem (BufferIn, TempFragment.Bulk + sizeof (TLS_RECORD_HEADER), BufferInSize); // // Free the buffer in TempFragment. // FreePool (TempFragment.Bulk); diff --git a/NetworkPkg/HttpDxe/HttpsSupport.h b/NetworkPkg/HttpDxe/HttpsSupport.h index 05b6e69..852bc59 100644 --- a/NetworkPkg/HttpDxe/HttpsSupport.h +++ b/NetworkPkg/HttpDxe/HttpsSupport.h @@ -13,58 +13,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef __EFI_HTTPS_SUPPORT_H__ #define __EFI_HTTPS_SUPPORT_H__ -#pragma pack (push, 1) - #define HTTPS_DEFAULT_PORT 443 #define HTTPS_FLAG "https" -// -// TLS Version -// -#define TLS10_PROTOCOL_VERSION_MAJOR 0x03 -#define TLS10_PROTOCOL_VERSION_MINOR 0x01 -#define TLS11_PROTOCOL_VERSION_MAJOR 0x03 -#define TLS11_PROTOCOL_VERSION_MINOR 0x02 -#define TLS12_PROTOCOL_VERSION_MAJOR 0x03 -#define TLS12_PROTOCOL_VERSION_MINOR 0x03 - -// -// Cipher Suite -// -#define TLS_RSA_WITH_RC4_128_SHA {0x00, 0x05} -#define TLS_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x0A} -#define TLS_RSA_WITH_AES_128_CBC_SHA {0x00, 0x2F} -#define TLS_RSA_WITH_AES_256_CBC_SHA {0x00, 0x35} -#define TLS_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x3C} -#define TLS_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x3D} - -// -// Content Type -// -typedef enum { - TLS_CONTENT_TYPE_CHANGE_CIPHER_SPEC = 20, - TLS_CONTENT_TYPE_ALERT = 21, - TLS_CONTENT_TYPE_HANDSHAKE = 22, - TLS_CONTENT_TYPE_APPLICATION_DATA = 23, -} TLS_CONTENT_TYPE; - -// -// Tls RecordHeader -// -typedef struct { - UINT8 ContentType; - EFI_TLS_VERSION Version; - UINT16 Length; -} TLSRecordHeader; - -#pragma pack (pop) - - /** Check whether the Url is from Https. @param[in] Url The pointer to a HTTP or HTTPS URL string. -- 1.9.5.msysgit.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel