summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/HttpDxe/HttpsSupport.c
diff options
context:
space:
mode:
Diffstat (limited to 'NetworkPkg/HttpDxe/HttpsSupport.c')
-rw-r--r--NetworkPkg/HttpDxe/HttpsSupport.c684
1 files changed, 358 insertions, 326 deletions
diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSupport.c
index d503e38515..ad611e7c38 100644
--- a/NetworkPkg/HttpDxe/HttpsSupport.c
+++ b/NetworkPkg/HttpDxe/HttpsSupport.c
@@ -31,15 +31,15 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
CHAR8 *
AsciiStrCaseStr (
- IN CONST CHAR8 *String,
- IN CONST CHAR8 *SearchString
+ IN CONST CHAR8 *String,
+ IN CONST CHAR8 *SearchString
)
{
- CONST CHAR8 *FirstMatch;
- CONST CHAR8 *SearchStringTmp;
+ CONST CHAR8 *FirstMatch;
+ CONST CHAR8 *SearchStringTmp;
- CHAR8 Src;
- CHAR8 Dst;
+ CHAR8 Src;
+ CHAR8 Dst;
//
// ASSERT both strings are less long than PcdMaximumAsciiStringLength
@@ -48,15 +48,16 @@ AsciiStrCaseStr (
ASSERT (AsciiStrSize (SearchString) != 0);
if (*SearchString == '\0') {
- return (CHAR8 *) String;
+ return (CHAR8 *)String;
}
while (*String != '\0') {
SearchStringTmp = SearchString;
- FirstMatch = String;
+ FirstMatch = String;
- while ((*SearchStringTmp != '\0')
- && (*String != '\0')) {
+ while ( (*SearchStringTmp != '\0')
+ && (*String != '\0'))
+ {
Src = *String;
Dst = *SearchStringTmp;
@@ -77,7 +78,7 @@ AsciiStrCaseStr (
}
if (*SearchStringTmp == '\0') {
- return (CHAR8 *) FirstMatch;
+ return (CHAR8 *)FirstMatch;
}
String = FirstMatch + 1;
@@ -95,12 +96,12 @@ AsciiStrCaseStr (
VOID
EFIAPI
FreeNbufList (
- IN VOID *Arg
+ IN VOID *Arg
)
{
ASSERT (Arg != NULL);
- NetbufFreeList ((LIST_ENTRY *) Arg);
+ NetbufFreeList ((LIST_ENTRY *)Arg);
FreePool (Arg);
}
@@ -115,7 +116,7 @@ FreeNbufList (
**/
BOOLEAN
IsHttpsUrl (
- IN CHAR8 *Url
+ IN CHAR8 *Url
)
{
CHAR8 *Tmp;
@@ -123,7 +124,7 @@ IsHttpsUrl (
Tmp = NULL;
Tmp = AsciiStrCaseStr (Url, HTTPS_FLAG);
- if (Tmp != NULL && Tmp == Url) {
+ if ((Tmp != NULL) && (Tmp == Url)) {
return TRUE;
}
@@ -144,14 +145,14 @@ IsHttpsUrl (
EFI_HANDLE
EFIAPI
TlsCreateChild (
- IN EFI_HANDLE ImageHandle,
- OUT EFI_SERVICE_BINDING_PROTOCOL **TlsSb,
- OUT EFI_TLS_PROTOCOL **TlsProto,
- OUT EFI_TLS_CONFIGURATION_PROTOCOL **TlsConfiguration
+ IN EFI_HANDLE ImageHandle,
+ OUT EFI_SERVICE_BINDING_PROTOCOL **TlsSb,
+ OUT EFI_TLS_PROTOCOL **TlsProto,
+ OUT EFI_TLS_CONFIGURATION_PROTOCOL **TlsConfiguration
)
{
- EFI_STATUS Status;
- EFI_HANDLE TlsChildHandle;
+ EFI_STATUS Status;
+ EFI_HANDLE TlsChildHandle;
TlsChildHandle = 0;
@@ -159,10 +160,10 @@ TlsCreateChild (
// Locate TlsServiceBinding protocol.
//
gBS->LocateProtocol (
- &gEfiTlsServiceBindingProtocolGuid,
- NULL,
- (VOID **) TlsSb
- );
+ &gEfiTlsServiceBindingProtocolGuid,
+ NULL,
+ (VOID **)TlsSb
+ );
if (*TlsSb == NULL) {
return NULL;
}
@@ -175,7 +176,7 @@ TlsCreateChild (
Status = gBS->OpenProtocol (
TlsChildHandle,
&gEfiTlsProtocolGuid,
- (VOID **) TlsProto,
+ (VOID **)TlsProto,
ImageHandle,
TlsChildHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -188,7 +189,7 @@ TlsCreateChild (
Status = gBS->OpenProtocol (
TlsChildHandle,
&gEfiTlsConfigurationProtocolGuid,
- (VOID **) TlsConfiguration,
+ (VOID **)TlsConfiguration,
ImageHandle,
TlsChildHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -214,10 +215,10 @@ TlsCreateChild (
EFI_STATUS
EFIAPI
TlsCreateTxRxEvent (
- IN OUT HTTP_PROTOCOL *HttpInstance
+ IN OUT HTTP_PROTOCOL *HttpInstance
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
if (!HttpInstance->LocalAddressIsIPv6) {
//
@@ -234,14 +235,14 @@ TlsCreateTxRxEvent (
goto ERROR;
}
- HttpInstance->Tcp4TlsTxData.Push = TRUE;
- HttpInstance->Tcp4TlsTxData.Urgent = FALSE;
- HttpInstance->Tcp4TlsTxData.DataLength = 0;
- HttpInstance->Tcp4TlsTxData.FragmentCount = 1;
+ HttpInstance->Tcp4TlsTxData.Push = TRUE;
+ HttpInstance->Tcp4TlsTxData.Urgent = FALSE;
+ HttpInstance->Tcp4TlsTxData.DataLength = 0;
+ HttpInstance->Tcp4TlsTxData.FragmentCount = 1;
HttpInstance->Tcp4TlsTxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp4TlsTxData.DataLength;
HttpInstance->Tcp4TlsTxData.FragmentTable[0].FragmentBuffer = NULL;
- HttpInstance->Tcp4TlsTxToken.Packet.TxData = &HttpInstance->Tcp4TlsTxData;
- HttpInstance->Tcp4TlsTxToken.CompletionToken.Status = EFI_NOT_READY;
+ HttpInstance->Tcp4TlsTxToken.Packet.TxData = &HttpInstance->Tcp4TlsTxData;
+ HttpInstance->Tcp4TlsTxToken.CompletionToken.Status = EFI_NOT_READY;
//
// For Tcp4TlsRxToken.
@@ -257,12 +258,12 @@ TlsCreateTxRxEvent (
goto ERROR;
}
- HttpInstance->Tcp4TlsRxData.DataLength = 0;
- HttpInstance->Tcp4TlsRxData.FragmentCount = 1;
- HttpInstance->Tcp4TlsRxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp4TlsRxData.DataLength ;
- HttpInstance->Tcp4TlsRxData.FragmentTable[0].FragmentBuffer = NULL;
- HttpInstance->Tcp4TlsRxToken.Packet.RxData = &HttpInstance->Tcp4TlsRxData;
- HttpInstance->Tcp4TlsRxToken.CompletionToken.Status = EFI_NOT_READY;
+ HttpInstance->Tcp4TlsRxData.DataLength = 0;
+ HttpInstance->Tcp4TlsRxData.FragmentCount = 1;
+ HttpInstance->Tcp4TlsRxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp4TlsRxData.DataLength;
+ HttpInstance->Tcp4TlsRxData.FragmentTable[0].FragmentBuffer = NULL;
+ HttpInstance->Tcp4TlsRxToken.Packet.RxData = &HttpInstance->Tcp4TlsRxData;
+ HttpInstance->Tcp4TlsRxToken.CompletionToken.Status = EFI_NOT_READY;
} else {
//
// For Tcp6TlsTxToken.
@@ -278,14 +279,14 @@ TlsCreateTxRxEvent (
goto ERROR;
}
- HttpInstance->Tcp6TlsTxData.Push = TRUE;
- HttpInstance->Tcp6TlsTxData.Urgent = FALSE;
- HttpInstance->Tcp6TlsTxData.DataLength = 0;
- HttpInstance->Tcp6TlsTxData.FragmentCount = 1;
+ HttpInstance->Tcp6TlsTxData.Push = TRUE;
+ HttpInstance->Tcp6TlsTxData.Urgent = FALSE;
+ HttpInstance->Tcp6TlsTxData.DataLength = 0;
+ HttpInstance->Tcp6TlsTxData.FragmentCount = 1;
HttpInstance->Tcp6TlsTxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp6TlsTxData.DataLength;
HttpInstance->Tcp6TlsTxData.FragmentTable[0].FragmentBuffer = NULL;
- HttpInstance->Tcp6TlsTxToken.Packet.TxData = &HttpInstance->Tcp6TlsTxData;
- HttpInstance->Tcp6TlsTxToken.CompletionToken.Status = EFI_NOT_READY;
+ HttpInstance->Tcp6TlsTxToken.Packet.TxData = &HttpInstance->Tcp6TlsTxData;
+ HttpInstance->Tcp6TlsTxToken.CompletionToken.Status = EFI_NOT_READY;
//
// For Tcp6TlsRxToken.
@@ -301,12 +302,12 @@ TlsCreateTxRxEvent (
goto ERROR;
}
- HttpInstance->Tcp6TlsRxData.DataLength = 0;
- HttpInstance->Tcp6TlsRxData.FragmentCount = 1;
- HttpInstance->Tcp6TlsRxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp6TlsRxData.DataLength ;
- HttpInstance->Tcp6TlsRxData.FragmentTable[0].FragmentBuffer = NULL;
- HttpInstance->Tcp6TlsRxToken.Packet.RxData = &HttpInstance->Tcp6TlsRxData;
- HttpInstance->Tcp6TlsRxToken.CompletionToken.Status = EFI_NOT_READY;
+ HttpInstance->Tcp6TlsRxData.DataLength = 0;
+ HttpInstance->Tcp6TlsRxData.FragmentCount = 1;
+ HttpInstance->Tcp6TlsRxData.FragmentTable[0].FragmentLength = HttpInstance->Tcp6TlsRxData.DataLength;
+ HttpInstance->Tcp6TlsRxData.FragmentTable[0].FragmentBuffer = NULL;
+ HttpInstance->Tcp6TlsRxToken.Packet.RxData = &HttpInstance->Tcp6TlsRxData;
+ HttpInstance->Tcp6TlsRxToken.CompletionToken.Status = EFI_NOT_READY;
}
return Status;
@@ -329,13 +330,13 @@ ERROR:
VOID
EFIAPI
TlsCloseTxRxEvent (
- IN HTTP_PROTOCOL *HttpInstance
+ IN HTTP_PROTOCOL *HttpInstance
)
{
ASSERT (HttpInstance != NULL);
if (!HttpInstance->LocalAddressIsIPv6) {
if (NULL != HttpInstance->Tcp4TlsTxToken.CompletionToken.Event) {
- gBS->CloseEvent(HttpInstance->Tcp4TlsTxToken.CompletionToken.Event);
+ gBS->CloseEvent (HttpInstance->Tcp4TlsTxToken.CompletionToken.Event);
HttpInstance->Tcp4TlsTxToken.CompletionToken.Event = NULL;
}
@@ -345,7 +346,7 @@ TlsCloseTxRxEvent (
}
} else {
if (NULL != HttpInstance->Tcp6TlsTxToken.CompletionToken.Event) {
- gBS->CloseEvent(HttpInstance->Tcp6TlsTxToken.CompletionToken.Event);
+ gBS->CloseEvent (HttpInstance->Tcp6TlsTxToken.CompletionToken.Event);
HttpInstance->Tcp6TlsTxToken.CompletionToken.Event = NULL;
}
@@ -369,7 +370,7 @@ TlsCloseTxRxEvent (
**/
EFI_STATUS
TlsConfigCertificate (
- IN OUT HTTP_PROTOCOL *HttpInstance
+ IN OUT HTTP_PROTOCOL *HttpInstance
)
{
EFI_STATUS Status;
@@ -388,15 +389,15 @@ TlsConfigCertificate (
//
// Try to read the TlsCaCertificate variable.
//
- Status = gRT->GetVariable (
- EFI_TLS_CA_CERTIFICATE_VARIABLE,
- &gEfiTlsCaCertificateGuid,
- NULL,
- &CACertSize,
- NULL
- );
+ Status = gRT->GetVariable (
+ EFI_TLS_CA_CERTIFICATE_VARIABLE,
+ &gEfiTlsCaCertificateGuid,
+ NULL,
+ &CACertSize,
+ NULL
+ );
- if (EFI_ERROR (Status) && Status != EFI_BUFFER_TOO_SMALL) {
+ if (EFI_ERROR (Status) && (Status != EFI_BUFFER_TOO_SMALL)) {
return Status;
}
@@ -427,62 +428,82 @@ TlsConfigCertificate (
//
// Sanity check
//
- Status = EFI_INVALID_PARAMETER;
- CertCount = 0;
- ItemDataSize = (UINT32) CACertSize;
+ Status = EFI_INVALID_PARAMETER;
+ CertCount = 0;
+ ItemDataSize = (UINT32)CACertSize;
while (ItemDataSize > 0) {
if (ItemDataSize < sizeof (EFI_SIGNATURE_LIST)) {
- DEBUG ((DEBUG_ERROR, "%a: truncated EFI_SIGNATURE_LIST header\n",
- __FUNCTION__));
+ DEBUG ((
+ DEBUG_ERROR,
+ "%a: truncated EFI_SIGNATURE_LIST header\n",
+ __FUNCTION__
+ ));
goto FreeCACert;
}
- CertList = (EFI_SIGNATURE_LIST *) (CACert + (CACertSize - ItemDataSize));
+ CertList = (EFI_SIGNATURE_LIST *)(CACert + (CACertSize - ItemDataSize));
if (CertList->SignatureListSize < sizeof (EFI_SIGNATURE_LIST)) {
- DEBUG ((DEBUG_ERROR,
+ DEBUG ((
+ DEBUG_ERROR,
"%a: SignatureListSize too small for EFI_SIGNATURE_LIST\n",
- __FUNCTION__));
+ __FUNCTION__
+ ));
goto FreeCACert;
}
if (CertList->SignatureListSize > ItemDataSize) {
- DEBUG ((DEBUG_ERROR, "%a: truncated EFI_SIGNATURE_LIST body\n",
- __FUNCTION__));
+ DEBUG ((
+ DEBUG_ERROR,
+ "%a: truncated EFI_SIGNATURE_LIST body\n",
+ __FUNCTION__
+ ));
goto FreeCACert;
}
if (!CompareGuid (&CertList->SignatureType, &gEfiCertX509Guid)) {
- DEBUG ((DEBUG_ERROR, "%a: only X509 certificates are supported\n",
- __FUNCTION__));
+ DEBUG ((
+ DEBUG_ERROR,
+ "%a: only X509 certificates are supported\n",
+ __FUNCTION__
+ ));
Status = EFI_UNSUPPORTED;
goto FreeCACert;
}
if (CertList->SignatureHeaderSize != 0) {
- DEBUG ((DEBUG_ERROR, "%a: SignatureHeaderSize must be 0 for X509\n",
- __FUNCTION__));
+ DEBUG ((
+ DEBUG_ERROR,
+ "%a: SignatureHeaderSize must be 0 for X509\n",
+ __FUNCTION__
+ ));
goto FreeCACert;
}
if (CertList->SignatureSize < sizeof (EFI_SIGNATURE_DATA)) {
- DEBUG ((DEBUG_ERROR,
- "%a: SignatureSize too small for EFI_SIGNATURE_DATA\n", __FUNCTION__));
+ DEBUG ((
+ DEBUG_ERROR,
+ "%a: SignatureSize too small for EFI_SIGNATURE_DATA\n",
+ __FUNCTION__
+ ));
goto FreeCACert;
}
CertArraySizeInBytes = (CertList->SignatureListSize -
sizeof (EFI_SIGNATURE_LIST));
if (CertArraySizeInBytes % CertList->SignatureSize != 0) {
- DEBUG ((DEBUG_ERROR,
+ DEBUG ((
+ DEBUG_ERROR,
"%a: EFI_SIGNATURE_DATA array not a multiple of SignatureSize\n",
- __FUNCTION__));
+ __FUNCTION__
+ ));
goto FreeCACert;
}
- CertCount += CertArraySizeInBytes / CertList->SignatureSize;
+ CertCount += CertArraySizeInBytes / CertList->SignatureSize;
ItemDataSize -= CertList->SignatureListSize;
}
+
if (CertCount == 0) {
DEBUG ((DEBUG_ERROR, "%a: no X509 certificates provided\n", __FUNCTION__));
goto FreeCACert;
@@ -491,11 +512,11 @@ TlsConfigCertificate (
//
// Enumerate all data and erasing the target item.
//
- ItemDataSize = (UINT32) CACertSize;
- CertList = (EFI_SIGNATURE_LIST *) CACert;
+ ItemDataSize = (UINT32)CACertSize;
+ CertList = (EFI_SIGNATURE_LIST *)CACert;
while ((ItemDataSize > 0) && (ItemDataSize >= CertList->SignatureListSize)) {
- Cert = (EFI_SIGNATURE_DATA *) ((UINT8 *) CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
- CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
+ Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)CertList + sizeof (EFI_SIGNATURE_LIST) + CertList->SignatureHeaderSize);
+ CertCount = (CertList->SignatureListSize - sizeof (EFI_SIGNATURE_LIST) - CertList->SignatureHeaderSize) / CertList->SignatureSize;
for (Index = 0; Index < CertCount; Index++) {
//
// EfiTlsConfigDataTypeCACertificate
@@ -510,11 +531,11 @@ TlsConfigCertificate (
goto FreeCACert;
}
- Cert = (EFI_SIGNATURE_DATA *) ((UINT8 *) Cert + CertList->SignatureSize);
+ Cert = (EFI_SIGNATURE_DATA *)((UINT8 *)Cert + CertList->SignatureSize);
}
ItemDataSize -= CertList->SignatureListSize;
- CertList = (EFI_SIGNATURE_LIST *) ((UINT8 *) CertList + CertList->SignatureListSize);
+ CertList = (EFI_SIGNATURE_LIST *)((UINT8 *)CertList + CertList->SignatureListSize);
}
FreeCACert:
@@ -537,12 +558,12 @@ FreeCACert:
**/
EFI_STATUS
TlsConfigCipherList (
- IN OUT HTTP_PROTOCOL *HttpInstance
+ IN OUT HTTP_PROTOCOL *HttpInstance
)
{
- EFI_STATUS Status;
- UINT8 *CipherList;
- UINTN CipherListSize;
+ EFI_STATUS Status;
+ UINT8 *CipherList;
+ UINTN CipherListSize;
CipherList = NULL;
CipherListSize = 0;
@@ -550,13 +571,13 @@ TlsConfigCipherList (
//
// Try to read the HttpTlsCipherList variable.
//
- Status = gRT->GetVariable (
- EDKII_HTTP_TLS_CIPHER_LIST_VARIABLE,
- &gEdkiiHttpTlsCipherListGuid,
- NULL,
- &CipherListSize,
- NULL
- );
+ Status = gRT->GetVariable (
+ EDKII_HTTP_TLS_CIPHER_LIST_VARIABLE,
+ &gEdkiiHttpTlsCipherListGuid,
+ NULL,
+ &CipherListSize,
+ NULL
+ );
ASSERT (EFI_ERROR (Status));
if (Status != EFI_BUFFER_TOO_SMALL) {
return Status;
@@ -615,10 +636,10 @@ ON_EXIT:
EFI_STATUS
EFIAPI
TlsConfigureSession (
- IN OUT HTTP_PROTOCOL *HttpInstance
+ IN OUT HTTP_PROTOCOL *HttpInstance
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
//
// TlsConfigData initialization
@@ -679,7 +700,7 @@ TlsConfigureSession (
// Tls Cipher List
//
Status = TlsConfigCipherList (HttpInstance);
- if (EFI_ERROR (Status) && Status != EFI_NOT_FOUND) {
+ if (EFI_ERROR (Status) && (Status != EFI_NOT_FOUND)) {
DEBUG ((DEBUG_ERROR, "TlsConfigCipherList: return %r error.\n", Status));
return Status;
}
@@ -725,13 +746,13 @@ ERROR:
EFI_STATUS
EFIAPI
TlsCommonTransmit (
- IN OUT HTTP_PROTOCOL *HttpInstance,
- IN NET_BUF *Packet
+ IN OUT HTTP_PROTOCOL *HttpInstance,
+ IN NET_BUF *Packet
)
{
- EFI_STATUS Status;
- VOID *Data;
- UINTN Size;
+ EFI_STATUS Status;
+ VOID *Data;
+ UINTN Size;
if ((HttpInstance == NULL) || (Packet == NULL)) {
return EFI_INVALID_PARAMETER;
@@ -751,29 +772,29 @@ TlsCommonTransmit (
}
if (!HttpInstance->LocalAddressIsIPv6) {
- ((EFI_TCP4_TRANSMIT_DATA *) Data)->Push = TRUE;
- ((EFI_TCP4_TRANSMIT_DATA *) Data)->Urgent = FALSE;
- ((EFI_TCP4_TRANSMIT_DATA *) Data)->DataLength = Packet->TotalSize;
+ ((EFI_TCP4_TRANSMIT_DATA *)Data)->Push = TRUE;
+ ((EFI_TCP4_TRANSMIT_DATA *)Data)->Urgent = FALSE;
+ ((EFI_TCP4_TRANSMIT_DATA *)Data)->DataLength = Packet->TotalSize;
//
// Build the fragment table.
//
- ((EFI_TCP4_TRANSMIT_DATA *) Data)->FragmentCount = Packet->BlockOpNum;
+ ((EFI_TCP4_TRANSMIT_DATA *)Data)->FragmentCount = Packet->BlockOpNum;
NetbufBuildExt (
Packet,
- (NET_FRAGMENT *) &((EFI_TCP4_TRANSMIT_DATA *) Data)->FragmentTable[0],
- &((EFI_TCP4_TRANSMIT_DATA *) Data)->FragmentCount
+ (NET_FRAGMENT *)&((EFI_TCP4_TRANSMIT_DATA *)Data)->FragmentTable[0],
+ &((EFI_TCP4_TRANSMIT_DATA *)Data)->FragmentCount
);
- HttpInstance->Tcp4TlsTxToken.Packet.TxData = (EFI_TCP4_TRANSMIT_DATA *) Data;
+ HttpInstance->Tcp4TlsTxToken.Packet.TxData = (EFI_TCP4_TRANSMIT_DATA *)Data;
Status = EFI_DEVICE_ERROR;
//
// Transmit the packet.
//
- Status = HttpInstance->Tcp4->Transmit (HttpInstance->Tcp4, &HttpInstance->Tcp4TlsTxToken);
+ Status = HttpInstance->Tcp4->Transmit (HttpInstance->Tcp4, &HttpInstance->Tcp4TlsTxToken);
if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
@@ -783,31 +804,31 @@ TlsCommonTransmit (
}
HttpInstance->TlsIsTxDone = FALSE;
- Status = HttpInstance->Tcp4TlsTxToken.CompletionToken.Status;
+ Status = HttpInstance->Tcp4TlsTxToken.CompletionToken.Status;
} else {
- ((EFI_TCP6_TRANSMIT_DATA *) Data)->Push = TRUE;
- ((EFI_TCP6_TRANSMIT_DATA *) Data)->Urgent = FALSE;
- ((EFI_TCP6_TRANSMIT_DATA *) Data)->DataLength = Packet->TotalSize;
+ ((EFI_TCP6_TRANSMIT_DATA *)Data)->Push = TRUE;
+ ((EFI_TCP6_TRANSMIT_DATA *)Data)->Urgent = FALSE;
+ ((EFI_TCP6_TRANSMIT_DATA *)Data)->DataLength = Packet->TotalSize;
//
// Build the fragment table.
//
- ((EFI_TCP6_TRANSMIT_DATA *) Data)->FragmentCount = Packet->BlockOpNum;
+ ((EFI_TCP6_TRANSMIT_DATA *)Data)->FragmentCount = Packet->BlockOpNum;
NetbufBuildExt (
Packet,
- (NET_FRAGMENT *) &((EFI_TCP6_TRANSMIT_DATA *) Data)->FragmentTable[0],
- &((EFI_TCP6_TRANSMIT_DATA *) Data)->FragmentCount
+ (NET_FRAGMENT *)&((EFI_TCP6_TRANSMIT_DATA *)Data)->FragmentTable[0],
+ &((EFI_TCP6_TRANSMIT_DATA *)Data)->FragmentCount
);
- HttpInstance->Tcp6TlsTxToken.Packet.TxData = (EFI_TCP6_TRANSMIT_DATA *) Data;
+ HttpInstance->Tcp6TlsTxToken.Packet.TxData = (EFI_TCP6_TRANSMIT_DATA *)Data;
Status = EFI_DEVICE_ERROR;
//
// Transmit the packet.
//
- Status = HttpInstance->Tcp6->Transmit (HttpInstance->Tcp6, &HttpInstance->Tcp6TlsTxToken);
+ Status = HttpInstance->Tcp6->Transmit (HttpInstance->Tcp6, &HttpInstance->Tcp6TlsTxToken);
if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
@@ -817,7 +838,7 @@ TlsCommonTransmit (
}
HttpInstance->TlsIsTxDone = FALSE;
- Status = HttpInstance->Tcp6TlsTxToken.CompletionToken.Status;
+ Status = HttpInstance->Tcp6TlsTxToken.CompletionToken.Status;
}
ON_EXIT:
@@ -843,17 +864,17 @@ ON_EXIT:
EFI_STATUS
EFIAPI
TlsCommonReceive (
- IN OUT HTTP_PROTOCOL *HttpInstance,
- IN NET_BUF *Packet,
- IN EFI_EVENT Timeout
+ IN OUT HTTP_PROTOCOL *HttpInstance,
+ IN NET_BUF *Packet,
+ IN EFI_EVENT Timeout
)
{
- EFI_TCP4_RECEIVE_DATA *Tcp4RxData;
- EFI_TCP6_RECEIVE_DATA *Tcp6RxData;
- EFI_STATUS Status;
- NET_FRAGMENT *Fragment;
- UINT32 FragmentCount;
- UINT32 CurrentFragment;
+ EFI_TCP4_RECEIVE_DATA *Tcp4RxData;
+ EFI_TCP6_RECEIVE_DATA *Tcp6RxData;
+ EFI_STATUS Status;
+ NET_FRAGMENT *Fragment;
+ UINT32 FragmentCount;
+ UINT32 CurrentFragment;
Tcp4RxData = NULL;
Tcp6RxData = NULL;
@@ -879,30 +900,33 @@ TlsCommonReceive (
if (Tcp4RxData == NULL) {
return EFI_INVALID_PARAMETER;
}
- Tcp4RxData->FragmentCount = 1;
+
+ Tcp4RxData->FragmentCount = 1;
} else {
Tcp6RxData = HttpInstance->Tcp6TlsRxToken.Packet.RxData;
if (Tcp6RxData == NULL) {
return EFI_INVALID_PARAMETER;
}
- Tcp6RxData->FragmentCount = 1;
+
+ Tcp6RxData->FragmentCount = 1;
}
- CurrentFragment = 0;
- Status = EFI_SUCCESS;
+ CurrentFragment = 0;
+ Status = EFI_SUCCESS;
while (CurrentFragment < FragmentCount) {
if (!HttpInstance->LocalAddressIsIPv6) {
- Tcp4RxData->DataLength = Fragment[CurrentFragment].Len;
- Tcp4RxData->FragmentTable[0].FragmentLength = Fragment[CurrentFragment].Len;
- Tcp4RxData->FragmentTable[0].FragmentBuffer = Fragment[CurrentFragment].Bulk;
- Status = HttpInstance->Tcp4->Receive (HttpInstance->Tcp4, &HttpInstance->Tcp4TlsRxToken);
+ Tcp4RxData->DataLength = Fragment[CurrentFragment].Len;
+ Tcp4RxData->FragmentTable[0].FragmentLength = Fragment[CurrentFragment].Len;
+ Tcp4RxData->FragmentTable[0].FragmentBuffer = Fragment[CurrentFragment].Bulk;
+ Status = HttpInstance->Tcp4->Receive (HttpInstance->Tcp4, &HttpInstance->Tcp4TlsRxToken);
} else {
- Tcp6RxData->DataLength = Fragment[CurrentFragment].Len;
- Tcp6RxData->FragmentTable[0].FragmentLength = Fragment[CurrentFragment].Len;
- Tcp6RxData->FragmentTable[0].FragmentBuffer = Fragment[CurrentFragment].Bulk;
- Status = HttpInstance->Tcp6->Receive (HttpInstance->Tcp6, &HttpInstance->Tcp6TlsRxToken);
+ Tcp6RxData->DataLength = Fragment[CurrentFragment].Len;
+ Tcp6RxData->FragmentTable[0].FragmentLength = Fragment[CurrentFragment].Len;
+ Tcp6RxData->FragmentTable[0].FragmentBuffer = Fragment[CurrentFragment].Bulk;
+ Status = HttpInstance->Tcp6->Receive (HttpInstance->Tcp6, &HttpInstance->Tcp6TlsRxToken);
}
+
if (EFI_ERROR (Status)) {
goto ON_EXIT;
}
@@ -988,22 +1012,22 @@ ON_EXIT:
EFI_STATUS
EFIAPI
TlsReceiveOnePdu (
- IN OUT HTTP_PROTOCOL *HttpInstance,
- OUT NET_BUF **Pdu,
- IN EFI_EVENT Timeout
+ IN OUT HTTP_PROTOCOL *HttpInstance,
+ OUT NET_BUF **Pdu,
+ IN EFI_EVENT Timeout
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- LIST_ENTRY *NbufList;
+ LIST_ENTRY *NbufList;
- UINT32 Len;
+ UINT32 Len;
- NET_BUF *PduHdr;
- UINT8 *Header;
- TLS_RECORD_HEADER RecordHeader;
+ NET_BUF *PduHdr;
+ UINT8 *Header;
+ TLS_RECORD_HEADER RecordHeader;
- NET_BUF *DataSeg;
+ NET_BUF *DataSeg;
NbufList = NULL;
PduHdr = NULL;
@@ -1020,8 +1044,8 @@ TlsReceiveOnePdu (
//
// Allocate buffer to receive one TLS header.
//
- Len = TLS_RECORD_HEADER_LENGTH;
- PduHdr = NetbufAlloc (Len);
+ Len = TLS_RECORD_HEADER_LENGTH;
+ PduHdr = NetbufAlloc (Len);
if (PduHdr == NULL) {
Status = EFI_OUT_OF_RESOURCES;
goto ON_EXIT;
@@ -1041,23 +1065,24 @@ TlsReceiveOnePdu (
goto ON_EXIT;
}
- RecordHeader = *(TLS_RECORD_HEADER *) Header;
- if ((RecordHeader.ContentType == TlsContentTypeHandshake ||
- RecordHeader.ContentType == TlsContentTypeAlert ||
- RecordHeader.ContentType == TlsContentTypeChangeCipherSpec ||
- RecordHeader.ContentType == TlsContentTypeApplicationData) &&
- (RecordHeader.Version.Major == 0x03) && /// Major versions are same.
- (RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR ||
- RecordHeader.Version.Minor ==TLS11_PROTOCOL_VERSION_MINOR ||
- RecordHeader.Version.Minor == TLS12_PROTOCOL_VERSION_MINOR)
- ) {
+ RecordHeader = *(TLS_RECORD_HEADER *)Header;
+ if (((RecordHeader.ContentType == TlsContentTypeHandshake) ||
+ (RecordHeader.ContentType == TlsContentTypeAlert) ||
+ (RecordHeader.ContentType == TlsContentTypeChangeCipherSpec) ||
+ (RecordHeader.ContentType == TlsContentTypeApplicationData)) &&
+ (RecordHeader.Version.Major == 0x03) && /// Major versions are same.
+ ((RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR) ||
+ (RecordHeader.Version.Minor == TLS11_PROTOCOL_VERSION_MINOR) ||
+ (RecordHeader.Version.Minor == TLS12_PROTOCOL_VERSION_MINOR))
+ )
+ {
InsertTailList (NbufList, &PduHdr->List);
} else {
Status = EFI_PROTOCOL_ERROR;
goto ON_EXIT;
}
- Len = SwapBytes16(RecordHeader.Length);
+ Len = SwapBytes16 (RecordHeader.Length);
if (Len == 0) {
//
// No TLS payload.
@@ -1122,37 +1147,37 @@ ON_EXIT:
EFI_STATUS
EFIAPI
TlsConnectSession (
- IN HTTP_PROTOCOL *HttpInstance,
- IN EFI_EVENT Timeout
+ IN HTTP_PROTOCOL *HttpInstance,
+ IN EFI_EVENT Timeout
)
{
- EFI_STATUS Status;
- UINT8 *BufferOut;
- UINTN BufferOutSize;
- NET_BUF *PacketOut;
- UINT8 *DataOut;
- NET_BUF *Pdu;
- UINT8 *BufferIn;
- UINTN BufferInSize;
- UINT8 *GetSessionDataBuffer;
- UINTN GetSessionDataBufferSize;
-
- BufferOut = NULL;
- PacketOut = NULL;
- DataOut = NULL;
- Pdu = NULL;
- BufferIn = NULL;
+ EFI_STATUS Status;
+ UINT8 *BufferOut;
+ UINTN BufferOutSize;
+ NET_BUF *PacketOut;
+ UINT8 *DataOut;
+ NET_BUF *Pdu;
+ UINT8 *BufferIn;
+ UINTN BufferInSize;
+ UINT8 *GetSessionDataBuffer;
+ UINTN GetSessionDataBufferSize;
+
+ BufferOut = NULL;
+ PacketOut = NULL;
+ DataOut = NULL;
+ Pdu = NULL;
+ BufferIn = NULL;
//
// Initialize TLS state.
//
HttpInstance->TlsSessionState = EfiTlsSessionNotStarted;
- Status = HttpInstance->Tls->SetSessionData (
- HttpInstance->Tls,
- EfiTlsSessionState,
- &(HttpInstance->TlsSessionState),
- sizeof (EFI_TLS_SESSION_STATE)
- );
+ Status = HttpInstance->Tls->SetSessionData (
+ HttpInstance->Tls,
+ EfiTlsSessionState,
+ &(HttpInstance->TlsSessionState),
+ sizeof (EFI_TLS_SESSION_STATE)
+ );
if (EFI_ERROR (Status)) {
return Status;
}
@@ -1161,7 +1186,7 @@ TlsConnectSession (
// Create ClientHello
//
BufferOutSize = DEF_BUF_LEN;
- BufferOut = AllocateZeroPool (BufferOutSize);
+ BufferOut = AllocateZeroPool (BufferOutSize);
if (BufferOut == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1190,6 +1215,7 @@ TlsConnectSession (
&BufferOutSize
);
}
+
if (EFI_ERROR (Status)) {
FreePool (BufferOut);
return Status;
@@ -1198,8 +1224,8 @@ TlsConnectSession (
//
// Transmit ClientHello
//
- PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
- DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
+ DataOut = NetbufAllocSpace (PacketOut, (UINT32)BufferOutSize, NET_BUF_TAIL);
if (DataOut == NULL) {
FreePool (BufferOut);
return EFI_OUT_OF_RESOURCES;
@@ -1215,8 +1241,9 @@ TlsConnectSession (
return Status;
}
- while(HttpInstance->TlsSessionState != EfiTlsSessionDataTransferring && \
- ((Timeout == NULL) || EFI_ERROR (gBS->CheckEvent (Timeout)))) {
+ while (HttpInstance->TlsSessionState != EfiTlsSessionDataTransferring && \
+ ((Timeout == NULL) || EFI_ERROR (gBS->CheckEvent (Timeout))))
+ {
//
// Receive one TLS record.
//
@@ -1226,7 +1253,7 @@ TlsConnectSession (
}
BufferInSize = Pdu->TotalSize;
- BufferIn = AllocateZeroPool (BufferInSize);
+ BufferIn = AllocateZeroPool (BufferInSize);
if (BufferIn == NULL) {
NetbufFree (Pdu);
Status = EFI_OUT_OF_RESOURCES;
@@ -1241,7 +1268,7 @@ TlsConnectSession (
// Handle Receive data.
//
BufferOutSize = DEF_BUF_LEN;
- BufferOut = AllocateZeroPool (BufferOutSize);
+ BufferOut = AllocateZeroPool (BufferOutSize);
if (BufferOut == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1255,21 +1282,21 @@ TlsConnectSession (
&BufferOutSize
);
if (Status == EFI_BUFFER_TOO_SMALL) {
- FreePool (BufferOut);
- BufferOut = AllocateZeroPool (BufferOutSize);
- if (BufferOut == NULL) {
- FreePool (BufferIn);
- Status = EFI_OUT_OF_RESOURCES;
- return Status;
- }
-
- Status = HttpInstance->Tls->BuildResponsePacket (
- HttpInstance->Tls,
- BufferIn,
- BufferInSize,
- BufferOut,
- &BufferOutSize
- );
+ FreePool (BufferOut);
+ BufferOut = AllocateZeroPool (BufferOutSize);
+ if (BufferOut == NULL) {
+ FreePool (BufferIn);
+ Status = EFI_OUT_OF_RESOURCES;
+ return Status;
+ }
+
+ Status = HttpInstance->Tls->BuildResponsePacket (
+ HttpInstance->Tls,
+ BufferIn,
+ BufferInSize,
+ BufferOut,
+ &BufferOutSize
+ );
}
FreePool (BufferIn);
@@ -1283,8 +1310,8 @@ TlsConnectSession (
//
// Transmit the response packet.
//
- PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
- DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
+ DataOut = NetbufAllocSpace (PacketOut, (UINT32)BufferOutSize, NET_BUF_TAIL);
if (DataOut == NULL) {
FreePool (BufferOut);
return EFI_OUT_OF_RESOURCES;
@@ -1308,7 +1335,7 @@ TlsConnectSession (
// Get the session state, then decide whether need to continue handle received packet.
//
GetSessionDataBufferSize = DEF_BUF_LEN;
- GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
+ GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
if (GetSessionDataBuffer == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1321,31 +1348,32 @@ TlsConnectSession (
&GetSessionDataBufferSize
);
if (Status == EFI_BUFFER_TOO_SMALL) {
- FreePool (GetSessionDataBuffer);
- GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
- if (GetSessionDataBuffer == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- return Status;
- }
-
- Status = HttpInstance->Tls->GetSessionData (
- HttpInstance->Tls,
- EfiTlsSessionState,
- GetSessionDataBuffer,
- &GetSessionDataBufferSize
- );
+ FreePool (GetSessionDataBuffer);
+ GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
+ if (GetSessionDataBuffer == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ return Status;
+ }
+
+ Status = HttpInstance->Tls->GetSessionData (
+ HttpInstance->Tls,
+ EfiTlsSessionState,
+ GetSessionDataBuffer,
+ &GetSessionDataBufferSize
+ );
}
+
if (EFI_ERROR (Status)) {
- FreePool(GetSessionDataBuffer);
+ FreePool (GetSessionDataBuffer);
return Status;
}
- ASSERT(GetSessionDataBufferSize == sizeof (EFI_TLS_SESSION_STATE));
- HttpInstance->TlsSessionState = *(EFI_TLS_SESSION_STATE *) GetSessionDataBuffer;
+ ASSERT (GetSessionDataBufferSize == sizeof (EFI_TLS_SESSION_STATE));
+ HttpInstance->TlsSessionState = *(EFI_TLS_SESSION_STATE *)GetSessionDataBuffer;
FreePool (GetSessionDataBuffer);
- if(HttpInstance->TlsSessionState == EfiTlsSessionError) {
+ if (HttpInstance->TlsSessionState == EfiTlsSessionError) {
return EFI_ABORTED;
}
}
@@ -1371,16 +1399,16 @@ TlsConnectSession (
EFI_STATUS
EFIAPI
TlsCloseSession (
- IN HTTP_PROTOCOL *HttpInstance
+ IN HTTP_PROTOCOL *HttpInstance
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- UINT8 *BufferOut;
- UINTN BufferOutSize;
+ UINT8 *BufferOut;
+ UINTN BufferOutSize;
- NET_BUF *PacketOut;
- UINT8 *DataOut;
+ NET_BUF *PacketOut;
+ UINT8 *DataOut;
Status = EFI_SUCCESS;
BufferOut = NULL;
@@ -1404,7 +1432,7 @@ TlsCloseSession (
}
BufferOutSize = DEF_BUF_LEN;
- BufferOut = AllocateZeroPool (BufferOutSize);
+ BufferOut = AllocateZeroPool (BufferOutSize);
if (BufferOut == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1439,8 +1467,8 @@ TlsCloseSession (
return Status;
}
- PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
- DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
+ DataOut = NetbufAllocSpace (PacketOut, (UINT32)BufferOutSize, NET_BUF_TAIL);
if (DataOut == NULL) {
FreePool (BufferOut);
return EFI_OUT_OF_RESOURCES;
@@ -1482,28 +1510,28 @@ TlsCloseSession (
EFI_STATUS
EFIAPI
TlsProcessMessage (
- IN HTTP_PROTOCOL *HttpInstance,
- IN UINT8 *Message,
- IN UINTN MessageSize,
- IN EFI_TLS_CRYPT_MODE ProcessMode,
- IN OUT NET_FRAGMENT *Fragment
+ IN HTTP_PROTOCOL *HttpInstance,
+ IN UINT8 *Message,
+ IN UINTN MessageSize,
+ IN EFI_TLS_CRYPT_MODE ProcessMode,
+ IN OUT NET_FRAGMENT *Fragment
)
{
- EFI_STATUS Status;
- UINT8 *Buffer;
- UINT32 BufferSize;
- UINT32 BytesCopied;
- EFI_TLS_FRAGMENT_DATA *FragmentTable;
- UINT32 FragmentCount;
- EFI_TLS_FRAGMENT_DATA *OriginalFragmentTable;
- UINTN Index;
-
- Status = EFI_SUCCESS;
- Buffer = NULL;
- BufferSize = 0;
- BytesCopied = 0;
- FragmentTable = NULL;
- OriginalFragmentTable = NULL;
+ EFI_STATUS Status;
+ UINT8 *Buffer;
+ UINT32 BufferSize;
+ UINT32 BytesCopied;
+ EFI_TLS_FRAGMENT_DATA *FragmentTable;
+ UINT32 FragmentCount;
+ EFI_TLS_FRAGMENT_DATA *OriginalFragmentTable;
+ UINTN Index;
+
+ Status = EFI_SUCCESS;
+ Buffer = NULL;
+ BufferSize = 0;
+ BytesCopied = 0;
+ FragmentTable = NULL;
+ OriginalFragmentTable = NULL;
//
// Rebuild fragment table from BufferIn.
@@ -1515,7 +1543,7 @@ TlsProcessMessage (
goto ON_EXIT;
}
- FragmentTable->FragmentLength = (UINT32) MessageSize;
+ FragmentTable->FragmentLength = (UINT32)MessageSize;
FragmentTable->FragmentBuffer = Message;
//
@@ -1575,9 +1603,10 @@ TlsProcessMessage (
ON_EXIT:
if (OriginalFragmentTable != NULL) {
- if( FragmentTable == OriginalFragmentTable) {
+ if ( FragmentTable == OriginalFragmentTable) {
FragmentTable = NULL;
}
+
FreePool (OriginalFragmentTable);
OriginalFragmentTable = NULL;
}
@@ -1609,23 +1638,23 @@ ON_EXIT:
EFI_STATUS
EFIAPI
HttpsReceive (
- IN HTTP_PROTOCOL *HttpInstance,
- IN OUT NET_FRAGMENT *Fragment,
- IN EFI_EVENT Timeout
+ IN HTTP_PROTOCOL *HttpInstance,
+ IN OUT NET_FRAGMENT *Fragment,
+ IN EFI_EVENT Timeout
)
{
- EFI_STATUS Status;
- NET_BUF *Pdu;
- TLS_RECORD_HEADER RecordHeader;
- UINT8 *BufferIn;
- UINTN BufferInSize;
- NET_FRAGMENT TempFragment;
- UINT8 *BufferOut;
- UINTN BufferOutSize;
- NET_BUF *PacketOut;
- UINT8 *DataOut;
- UINT8 *GetSessionDataBuffer;
- UINTN GetSessionDataBufferSize;
+ EFI_STATUS Status;
+ NET_BUF *Pdu;
+ TLS_RECORD_HEADER RecordHeader;
+ UINT8 *BufferIn;
+ UINTN BufferInSize;
+ NET_FRAGMENT TempFragment;
+ UINT8 *BufferOut;
+ UINTN BufferOutSize;
+ NET_BUF *PacketOut;
+ UINT8 *DataOut;
+ UINT8 *GetSessionDataBuffer;
+ UINTN GetSessionDataBufferSize;
Status = EFI_SUCCESS;
Pdu = NULL;
@@ -1647,28 +1676,29 @@ HttpsReceive (
}
BufferInSize = Pdu->TotalSize;
- BufferIn = AllocateZeroPool (BufferInSize);
+ BufferIn = AllocateZeroPool (BufferInSize);
if (BufferIn == NULL) {
Status = EFI_OUT_OF_RESOURCES;
NetbufFree (Pdu);
return Status;
}
- NetbufCopy (Pdu, 0, (UINT32) BufferInSize, BufferIn);
+ NetbufCopy (Pdu, 0, (UINT32)BufferInSize, BufferIn);
NetbufFree (Pdu);
//
// Handle Receive data.
//
- RecordHeader = *(TLS_RECORD_HEADER *) BufferIn;
+ RecordHeader = *(TLS_RECORD_HEADER *)BufferIn;
if ((RecordHeader.ContentType == TlsContentTypeApplicationData) &&
- (RecordHeader.Version.Major == 0x03) &&
- (RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR ||
- RecordHeader.Version.Minor == TLS11_PROTOCOL_VERSION_MINOR ||
- RecordHeader.Version.Minor == TLS12_PROTOCOL_VERSION_MINOR)
- ) {
+ (RecordHeader.Version.Major == 0x03) &&
+ ((RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR) ||
+ (RecordHeader.Version.Minor == TLS11_PROTOCOL_VERSION_MINOR) ||
+ (RecordHeader.Version.Minor == TLS12_PROTOCOL_VERSION_MINOR))
+ )
+ {
//
// Decrypt Packet.
//
@@ -1689,7 +1719,7 @@ HttpsReceive (
// BuildResponsePacket() will be called to generate Error Alert message and send it out.
//
BufferOutSize = DEF_BUF_LEN;
- BufferOut = AllocateZeroPool (BufferOutSize);
+ BufferOut = AllocateZeroPool (BufferOutSize);
if (BufferOut == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1718,14 +1748,15 @@ HttpsReceive (
&BufferOutSize
);
}
+
if (EFI_ERROR (Status)) {
- FreePool(BufferOut);
+ FreePool (BufferOut);
return Status;
}
if (BufferOutSize != 0) {
PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
- DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ DataOut = NetbufAllocSpace (PacketOut, (UINT32)BufferOutSize, NET_BUF_TAIL);
if (DataOut == NULL) {
FreePool (BufferOut);
return EFI_OUT_OF_RESOURCES;
@@ -1738,7 +1769,7 @@ HttpsReceive (
NetbufFree (PacketOut);
}
- FreePool(BufferOut);
+ FreePool (BufferOut);
if (EFI_ERROR (Status)) {
return Status;
@@ -1753,10 +1784,10 @@ HttpsReceive (
//
// Parsing buffer.
//
- ASSERT (((TLS_RECORD_HEADER *) (TempFragment.Bulk))->ContentType == TlsContentTypeApplicationData);
+ ASSERT (((TLS_RECORD_HEADER *)(TempFragment.Bulk))->ContentType == TlsContentTypeApplicationData);
- BufferInSize = ((TLS_RECORD_HEADER *) (TempFragment.Bulk))->Length;
- BufferIn = AllocateZeroPool (BufferInSize);
+ BufferInSize = ((TLS_RECORD_HEADER *)(TempFragment.Bulk))->Length;
+ BufferIn = AllocateZeroPool (BufferInSize);
if (BufferIn == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1768,15 +1799,15 @@ HttpsReceive (
// Free the buffer in TempFragment.
//
FreePool (TempFragment.Bulk);
-
} else if ((RecordHeader.ContentType == TlsContentTypeAlert) &&
- (RecordHeader.Version.Major == 0x03) &&
- (RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR ||
- RecordHeader.Version.Minor == TLS11_PROTOCOL_VERSION_MINOR ||
- RecordHeader.Version.Minor == TLS12_PROTOCOL_VERSION_MINOR)
- ) {
+ (RecordHeader.Version.Major == 0x03) &&
+ ((RecordHeader.Version.Minor == TLS10_PROTOCOL_VERSION_MINOR) ||
+ (RecordHeader.Version.Minor == TLS11_PROTOCOL_VERSION_MINOR) ||
+ (RecordHeader.Version.Minor == TLS12_PROTOCOL_VERSION_MINOR))
+ )
+ {
BufferOutSize = DEF_BUF_LEN;
- BufferOut = AllocateZeroPool (BufferOutSize);
+ BufferOut = AllocateZeroPool (BufferOutSize);
if (BufferOut == NULL) {
FreePool (BufferIn);
Status = EFI_OUT_OF_RESOURCES;
@@ -1816,8 +1847,8 @@ HttpsReceive (
}
if (BufferOutSize != 0) {
- PacketOut = NetbufAlloc ((UINT32) BufferOutSize);
- DataOut = NetbufAllocSpace (PacketOut, (UINT32) BufferOutSize, NET_BUF_TAIL);
+ PacketOut = NetbufAlloc ((UINT32)BufferOutSize);
+ DataOut = NetbufAllocSpace (PacketOut, (UINT32)BufferOutSize, NET_BUF_TAIL);
if (DataOut == NULL) {
FreePool (BufferOut);
return EFI_OUT_OF_RESOURCES;
@@ -1836,7 +1867,7 @@ HttpsReceive (
// Get the session state.
//
GetSessionDataBufferSize = DEF_BUF_LEN;
- GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
+ GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
if (GetSessionDataBuffer == NULL) {
Status = EFI_OUT_OF_RESOURCES;
return Status;
@@ -1849,41 +1880,42 @@ HttpsReceive (
&GetSessionDataBufferSize
);
if (Status == EFI_BUFFER_TOO_SMALL) {
- FreePool (GetSessionDataBuffer);
- GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
- if (GetSessionDataBuffer == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- return Status;
- }
-
- Status = HttpInstance->Tls->GetSessionData (
- HttpInstance->Tls,
- EfiTlsSessionState,
- GetSessionDataBuffer,
- &GetSessionDataBufferSize
- );
+ FreePool (GetSessionDataBuffer);
+ GetSessionDataBuffer = AllocateZeroPool (GetSessionDataBufferSize);
+ if (GetSessionDataBuffer == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ return Status;
+ }
+
+ Status = HttpInstance->Tls->GetSessionData (
+ HttpInstance->Tls,
+ EfiTlsSessionState,
+ GetSessionDataBuffer,
+ &GetSessionDataBufferSize
+ );
}
+
if (EFI_ERROR (Status)) {
FreePool (GetSessionDataBuffer);
return Status;
}
- ASSERT(GetSessionDataBufferSize == sizeof (EFI_TLS_SESSION_STATE));
- HttpInstance->TlsSessionState = *(EFI_TLS_SESSION_STATE *) GetSessionDataBuffer;
+ ASSERT (GetSessionDataBufferSize == sizeof (EFI_TLS_SESSION_STATE));
+ HttpInstance->TlsSessionState = *(EFI_TLS_SESSION_STATE *)GetSessionDataBuffer;
FreePool (GetSessionDataBuffer);
- if(HttpInstance->TlsSessionState == EfiTlsSessionError) {
+ if (HttpInstance->TlsSessionState == EfiTlsSessionError) {
DEBUG ((DEBUG_ERROR, "TLS Session State Error!\n"));
return EFI_ABORTED;
}
- BufferIn = NULL;
+ BufferIn = NULL;
BufferInSize = 0;
}
Fragment->Bulk = BufferIn;
- Fragment->Len = (UINT32) BufferInSize;
+ Fragment->Len = (UINT32)BufferInSize;
return Status;
}