MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / TlsConnectSession

Function TlsConnectSession

NetworkPkg/HttpDxe/HttpsSupport.c:1109–1345  ·  view source on GitHub ↗

Connect one TLS session by finishing the TLS handshake process. @param[in] HttpInstance The HTTP instance private data. @param[in] Timeout The time to wait for connection done. @retval EFI_SUCCESS The TLS session is established. @retval EFI_OUT_OF_RESOURCES Can't allocate memory resources. @retval EFI_ABORTED TLS session state is incorr

Source from the content-addressed store, hash-verified

1107
1108**/
1109EFI_STATUS
1110EFIAPI
1111TlsConnectSession (
1112 IN HTTP_PROTOCOL *HttpInstance,
1113 IN EFI_EVENT Timeout
1114 )
1115{
1116 EFI_STATUS Status;
1117 UINT8 *BufferOut;
1118 UINTN BufferOutSize;
1119 NET_BUF *PacketOut;
1120 UINT8 *DataOut;
1121 NET_BUF *Pdu;
1122 UINT8 *BufferIn;
1123 UINTN BufferInSize;
1124 UINT8 *GetSessionDataBuffer;
1125 UINTN GetSessionDataBufferSize;
1126
1127 BufferOut = NULL;
1128 PacketOut = NULL;
1129 DataOut = NULL;
1130 Pdu = NULL;
1131 BufferIn = NULL;
1132
1133 //
1134 // Initialize TLS state.
1135 //
1136 HttpInstance->TlsSessionState = EfiTlsSessionNotStarted;
1137 Status = HttpInstance->Tls->SetSessionData (
1138 HttpInstance->Tls,
1139 EfiTlsSessionState,
1140 &(HttpInstance->TlsSessionState),
1141 sizeof (EFI_TLS_SESSION_STATE)
1142 );
1143 if (EFI_ERROR (Status)) {
1144 return Status;
1145 }
1146
1147 //
1148 // Create ClientHello
1149 //
1150 BufferOutSize = DEF_BUF_LEN;
1151 BufferOut = AllocateZeroPool (BufferOutSize);
1152 if (BufferOut == NULL) {
1153 Status = EFI_OUT_OF_RESOURCES;
1154 return Status;
1155 }
1156
1157 Status = HttpInstance->Tls->BuildResponsePacket (
1158 HttpInstance->Tls,
1159 NULL,
1160 0,
1161 BufferOut,
1162 &BufferOutSize
1163 );
1164 if (Status == EFI_BUFFER_TOO_SMALL) {
1165 FreePool (BufferOut);
1166 BufferOut = AllocateZeroPool (BufferOutSize);

Callers 2

HttpConnectTcp4Function · 0.85
HttpConnectTcp6Function · 0.85

Calls 7

TlsCommonTransmitFunction · 0.85
TlsReceiveOnePduFunction · 0.85
AllocateZeroPoolFunction · 0.50
FreePoolFunction · 0.50
CopyMemFunction · 0.50
NetbufFreeFunction · 0.50
NetbufCopyFunction · 0.50

Tested by

no test coverage detected