From nobody Fri May 17 07:55:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113005+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1703935792327258.5227163527254; Sat, 30 Dec 2023 03:29:52 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=Jtza6SzK2xCz9seSche0MS7vmL9oyssKX0ji1VreL4Y=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1703935791; v=1; b=HBTSAeFpmFF9orxhsKfEjN9kixMRQvjq899NHgjkd5dRsXuXvZ8LT/Cewxl+VY/V6reap3Rn 2Y4dDuPKCuzwTabMvs+Vv1mgA9Xgc28rGIkgHupfYIl2wGWhzCb4r+/MoMYkSo8udhVm0on2/NY nm6oK5EjLrOSLTkzWJ/ni7tc= X-Received: by 127.0.0.2 with SMTP id u9QvYY1788612x2UpahusTet; Sat, 30 Dec 2023 03:29:51 -0800 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.72]) by mx.groups.io with SMTP id smtpd.web10.182609.1703935791066136916 for ; Sat, 30 Dec 2023 03:29:51 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cuhSgzDgiZPSOqh1bn7nTzpvOpHZSx+CdT5ZqCguJP+5MWiz5WhtnR4P8vBlifDGPrE39e2hUImmR98Xv5uACW3EOs+qFDaFfsWhodXgjAtC93BnDZgFY9oZExe7BPktb+CIbrydYxsVJbHOFzFEhx+Keb80ihF+Af9fZNFqhKEP6DjC9B/npv43syULM4FuIO3Bjxeo5b07vfFSNMMnAvd4C7NBgY98XfLcIOEWYn+q6/2z7/0ZN2Qd3G8I1Yq12oaff/G/T1/u8cGWK57XRTSfOT211Bnd8NYaSBqG1MWNUKvexc6rvAYH+S0KvklB3wTZMwEdb8Gw1czspCVapQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=poFr52TyTO6i/77d4OhmL6bwT0wvPMiltZ/vct40Tdo=; b=b/UTGHQcL3TKEpaK71MHcILywGWEYLgWJLuFrEBPSz3DxkBymGTQsVuwVMkPx80vxP4A8H+IBcLn0yvuw43uMbY1IXi1nyarS5LYrTUIvBSJwKtUEFikYalYTDEC5FS+1/pQy/X/+EBO/NJkUSxAZa0kd511Tu5CkBDkVOczoOrl8pjbb9w+ckZARQZpNQyqinLhJuEKcinw6TCrhqwS7N7u1iIUQFC57omb7sCCW1aiawOi1H3cEpt4lkv1ye0IxO0sfbgas+5CScIl/4Gp30SKCKnq0Y5CVhhhfJxuQyTM79+rtTBUtC8LliUhC3cPN874R7TVGvfoDYbz/KHprw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DM6PR08CA0058.namprd08.prod.outlook.com (2603:10b6:5:1e0::32) by MN2PR12MB4189.namprd12.prod.outlook.com (2603:10b6:208:1d8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.22; Sat, 30 Dec 2023 11:29:47 +0000 X-Received: from DS1PEPF00017092.namprd03.prod.outlook.com (2603:10b6:5:1e0:cafe::35) by DM6PR08CA0058.outlook.office365.com (2603:10b6:5:1e0::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.20 via Frontend Transport; Sat, 30 Dec 2023 11:29:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113005+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by DS1PEPF00017092.mail.protection.outlook.com (10.167.17.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7159.9 via Frontend Transport; Sat, 30 Dec 2023 11:29:46 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sat, 30 Dec 2023 05:29:44 -0600 From: "Chang, Abner via groups.io" To: CC: Saloni Kasbekar , Zachary Clark-williams , Michael Brown , Nickle Wang , Igor Kulchytskyy Subject: [edk2-devel] [PATCH 1/5] NetworkPkg/HttpDxe: Refactor TlsCreateChild function Date: Sat, 30 Dec 2023 19:29:25 +0800 Message-ID: <20231230112929.1711-2-abner.chang@amd.com> In-Reply-To: <20231230112929.1711-1-abner.chang@amd.com> References: <20231230112929.1711-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017092:EE_|MN2PR12MB4189:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e0c761b-d46a-4548-f525-08dc092aa0bb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: pRT6toszUjSlAC35l+d043jFnIv3V4JZ/kr858PYbJJtY60W26EL2EF0k4IB7Es69xKQw57bsXMLxo/iXLFooJc11Mt5EVscMED/53Rqydr8QaVcI8HE+BAeyavBm2gWbXBihlZA66dRT5m+z6HTIn6iSm1McWDJ4emCE7U+gqNJ9fVUmWp4mcy1nhk+KUIHRiQyKq3+YvjS7J3EzUgYWVTlGiKejl97begqa6dqjfWbmuXkzSVziNr5V3NE64mV7g9vaaYxpkCdLGtcNR8uoG2B9tfBxD9RT6/ZzNbukMnVHcT7sUa2NXjwJAV4ddUeywazZW/0vYrqVmF92mY7TsjQOcbit7TKwuXDXgUZiI2MeS/RYF6O6/0hfTrqrCi+iB7slqW+o/lVQY6tjd2iu9dhd2/LOD/AoBA7LrE02J5g8gcm34jVQ49F1ivGEmrkSKP+XKDLvLRG6hmzkpxKaTksS8vSD2qA0J32glH7mG7F55T8D/lz8Qs0xYOAYW0dFa6jJCdS2RVG88aOV0lyD/kRcB/BI+EnlHcGKaZnBCirjbLhxTQYnDruCTv9/oZgHwDt9g1iSlFKAX7xvQZBWYt39NR0fdj9aigdrt8lFUNbrQEkdxQuUyVIKSqdeuOrHU1xEMvs//zCYFt3ykxAOPnodwiXjF3KV2/2CpxExS+/IXRzYDSS7pPv7/cPdONyjHNyBM6dhOx0ZMN9F+pN/qPevFUPHvBMePGcK5ONCD4NrrCh4tzxCKcwregaNwGHEdHdsEnUuVKY5rywi7h+i1mMT25siuFmRNNqXZV/hBFfDRmSvXskHMcp0Al4xDiL X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2023 11:29:46.8935 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5e0c761b-d46a-4548-f525-08dc092aa0bb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017092.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4189 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: DFmzveh0NuHW1xUb7i1MWHb3x1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1703935793403100005 Content-Type: text/plain; charset="utf-8" From: Abner Chang - Use HTTP instance as the parameter for TlsCreateChild function. - Install TLS protocol on the HTTP instance that creates TLS child. Signed-off-by: Abner Chang Cc: Saloni Kasbekar Cc: Zachary Clark-williams Cc: Michael Brown Cc: Nickle Wang Cc: Igor Kulchytskyy Reviewed-by: Michael Brown --- NetworkPkg/HttpDxe/HttpsSupport.h | 17 +++---- NetworkPkg/HttpDxe/HttpImpl.c | 20 ++------- NetworkPkg/HttpDxe/HttpsSupport.c | 75 +++++++++++++++++-------------- 3 files changed, 52 insertions(+), 60 deletions(-) diff --git a/NetworkPkg/HttpDxe/HttpsSupport.h b/NetworkPkg/HttpDxe/HttpsSu= pport.h index 3c70825e8c3..326a4e50120 100644 --- a/NetworkPkg/HttpDxe/HttpsSupport.h +++ b/NetworkPkg/HttpDxe/HttpsSupport.h @@ -30,21 +30,18 @@ IsHttpsUrl ( /** Creates a Tls child handle, open EFI_TLS_PROTOCOL and EFI_TLS_CONFIGURAT= ION_PROTOCOL. =20 - @param[in] ImageHandle The firmware allocated handle for the = UEFI image. - @param[out] TlsSb Pointer to the TLS SERVICE_BINDING_PRO= TOCOL. - @param[out] TlsProto Pointer to the EFI_TLS_PROTOCOL instan= ce. - @param[out] TlsConfiguration Pointer to the EFI_TLS_CONFIGURATION_P= ROTOCOL instance. + @param[in] HttpInstance Pointer to HTTP_PROTOCOL structure. =20 - @return The child handle with opened EFI_TLS_PROTOCOL and EFI_TLS_CONFI= GURATION_PROTOCOL. + @return EFI_SUCCESS TLS child handle is returned in HttpInstance= ->TlsChildHandle + with opened EFI_TLS_PROTOCOL and EFI_TLS_CON= FIGURATION_PROTOCOL. + EFI_DEVICE_ERROR TLS service binding protocol is not found. + Otherwise Fail to create TLS chile handle. =20 **/ -EFI_HANDLE +EFI_STATUS EFIAPI TlsCreateChild ( - IN EFI_HANDLE ImageHandle, - OUT EFI_SERVICE_BINDING_PROTOCOL **TlsSb, - OUT EFI_TLS_PROTOCOL **TlsProto, - OUT EFI_TLS_CONFIGURATION_PROTOCOL **TlsConfiguration + IN HTTP_PROTOCOL *HttpInstance ); =20 /** diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c index 7c5c925cf78..aa4efedbf6b 100644 --- a/NetworkPkg/HttpDxe/HttpImpl.c +++ b/NetworkPkg/HttpDxe/HttpImpl.c @@ -248,7 +248,6 @@ EfiHttpRequest ( HTTP_TOKEN_WRAP *Wrap; CHAR8 *FileUrl; UINTN RequestMsgSize; - EFI_HANDLE ImageHandle; =20 // // Initializations @@ -372,22 +371,9 @@ EfiHttpRequest ( // Check whether we need to create Tls child and open the TLS protocol. // if (HttpInstance->UseHttps && (HttpInstance->TlsChildHandle =3D=3D NUL= L)) { - // - // Use TlsSb to create Tls child and open the TLS protocol. - // - if (HttpInstance->LocalAddressIsIPv6) { - ImageHandle =3D HttpInstance->Service->Ip6DriverBindingHandle; - } else { - ImageHandle =3D HttpInstance->Service->Ip4DriverBindingHandle; - } - - HttpInstance->TlsChildHandle =3D TlsCreateChild ( - ImageHandle, - &(HttpInstance->TlsSb), - &(HttpInstance->Tls), - &(HttpInstance->TlsConfiguration) - ); - if (HttpInstance->TlsChildHandle =3D=3D NULL) { + // Create TLS child for this HTTP instance. + Status =3D TlsCreateChild (HttpInstance); + if (EFI_ERROR (Status)) { return EFI_DEVICE_ERROR; } =20 diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSu= pport.c index 7330be42c00..fb7c1ea59f2 100644 --- a/NetworkPkg/HttpDxe/HttpsSupport.c +++ b/NetworkPkg/HttpDxe/HttpsSupport.c @@ -134,27 +134,31 @@ IsHttpsUrl ( /** Creates a Tls child handle, open EFI_TLS_PROTOCOL and EFI_TLS_CONFIGURAT= ION_PROTOCOL. =20 - @param[in] ImageHandle The firmware allocated handle for the = UEFI image. - @param[out] TlsSb Pointer to the TLS SERVICE_BINDING_PRO= TOCOL. - @param[out] TlsProto Pointer to the EFI_TLS_PROTOCOL instan= ce. - @param[out] TlsConfiguration Pointer to the EFI_TLS_CONFIGURATION_P= ROTOCOL instance. + @param[in] HttpInstance Pointer to HTTP_PROTOCOL structure. =20 - @return The child handle with opened EFI_TLS_PROTOCOL and EFI_TLS_CONFI= GURATION_PROTOCOL. + @return EFI_SUCCESS TLS child handle is returned in HttpInstance= ->TlsChildHandle + with opened EFI_TLS_PROTOCOL and EFI_TLS_CON= FIGURATION_PROTOCOL. + EFI_DEVICE_ERROR TLS service binding protocol is not found. + Otherwise Fail to create TLS chile handle. =20 **/ -EFI_HANDLE +EFI_STATUS EFIAPI TlsCreateChild ( - IN EFI_HANDLE ImageHandle, - OUT EFI_SERVICE_BINDING_PROTOCOL **TlsSb, - OUT EFI_TLS_PROTOCOL **TlsProto, - OUT EFI_TLS_CONFIGURATION_PROTOCOL **TlsConfiguration + IN HTTP_PROTOCOL *HttpInstance ) { + EFI_HANDLE ImageHandle; EFI_STATUS Status; - EFI_HANDLE TlsChildHandle; =20 - TlsChildHandle =3D 0; + // + // Use TlsSb to create Tls child and open the TLS protocol. + // + if (HttpInstance->LocalAddressIsIPv6) { + ImageHandle =3D HttpInstance->Service->Ip6DriverBindingHandle; + } else { + ImageHandle =3D HttpInstance->Service->Ip4DriverBindingHandle; + } =20 // // Locate TlsServiceBinding protocol. @@ -162,44 +166,49 @@ TlsCreateChild ( gBS->LocateProtocol ( &gEfiTlsServiceBindingProtocolGuid, NULL, - (VOID **)TlsSb + (VOID **)&HttpInstance->TlsSb ); - if (*TlsSb =3D=3D NULL) { - return NULL; + if (HttpInstance->TlsSb =3D=3D NULL) { + return EFI_DEVICE_ERROR; } =20 - Status =3D (*TlsSb)->CreateChild (*TlsSb, &TlsChildHandle); + // + // Create TLS protocol on HTTP handle, this creates the association betw= een HTTP and TLS + // for HTTP driver external usages. + // + Status =3D HttpInstance->TlsSb->CreateChild (HttpInstance->TlsSb, &HttpI= nstance->Handle); if (EFI_ERROR (Status)) { - return NULL; + return Status; } =20 - Status =3D gBS->OpenProtocol ( - TlsChildHandle, - &gEfiTlsProtocolGuid, - (VOID **)TlsProto, - ImageHandle, - TlsChildHandle, - EFI_OPEN_PROTOCOL_GET_PROTOCOL - ); + HttpInstance->TlsChildHandle =3D HttpInstance->Handle; + Status =3D gBS->OpenProtocol ( + HttpInstance->TlsChildHandle, + &gEfiTlsProtocolGuid, + (VOID **)&HttpInstance->Tls, + ImageHandle, + HttpInstance->TlsChildHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); if (EFI_ERROR (Status)) { - (*TlsSb)->DestroyChild (*TlsSb, TlsChildHandle); - return NULL; + HttpInstance->TlsSb->DestroyChild (HttpInstance->TlsSb, HttpInstance->= TlsChildHandle); + return Status; } =20 Status =3D gBS->OpenProtocol ( - TlsChildHandle, + HttpInstance->TlsChildHandle, &gEfiTlsConfigurationProtocolGuid, - (VOID **)TlsConfiguration, + (VOID **)&HttpInstance->TlsConfiguration, ImageHandle, - TlsChildHandle, + HttpInstance->TlsChildHandle, EFI_OPEN_PROTOCOL_GET_PROTOCOL ); if (EFI_ERROR (Status)) { - (*TlsSb)->DestroyChild (*TlsSb, TlsChildHandle); - return NULL; + HttpInstance->TlsSb->DestroyChild (HttpInstance->TlsSb, HttpInstance->= TlsChildHandle); + return Status; } =20 - return TlsChildHandle; + return EFI_SUCCESS; } =20 /** --=20 2.37.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113005): https://edk2.groups.io/g/devel/message/113005 Mute This Topic: https://groups.io/mt/103430430/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 07:55:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113006+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 170393579340234.82683951912588; Sat, 30 Dec 2023 03:29:53 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=5fEbnNv2xk4wuEnbyGJlOnuJrSSIl5CxLMj1H8vmyMQ=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1703935793; v=1; b=Zr1bWlReidobNO+kl2z0vFFvQPpAcpELIv1PGoLtbDKW2fQobp5VSaYtJd8GagBAX5toQDVg 2yXaEQ2QfVnavQLcNkge1ik1XOCp0TMxiy8jCOzzgx7gClUNPJ9aajsvxjYe1yjvULat7I0vaa9 rD66h93foXB317g+t66PD8Oo= X-Received: by 127.0.0.2 with SMTP id 2M9oYY1788612xKIbtHfztkB; Sat, 30 Dec 2023 03:29:53 -0800 X-Received: from NAM11-DM6-obe.outbound.protection.outlook.com (NAM11-DM6-obe.outbound.protection.outlook.com [40.107.223.40]) by mx.groups.io with SMTP id smtpd.web10.182610.1703935792347293381 for ; Sat, 30 Dec 2023 03:29:52 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bFKW+Q8aUv1zYrJO5e32l/T2xvDu73QMq6DfeQmhsvBWcJx7i+iaGFAPqAF/viaqsGZlAxHfi2GJS7ShIdrgGBavhPjhcuaMs+AC8QlEW9HY/neAQYYbVqgv204ObYoUhR5AhP7QXW2lkZu8HmLIMbtW9IrL9IxIb4hUz/Fr3/Liomu9yLJgFQDUfbzazqmr+4wsIDeivIKOt1OJs2+ebA3nsiLajZr3VcOpynAY+VqLtpArDwQuWyb4TIbyXkRxYVnBsEGEVHVRz6n/3fGwksLwSsKOAdiVmYs+ByeAQh4KS4R43UF/UJbBtbDV+Lv7qsnlAaX7hUi/gOwXnM4XRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mlQ4C+Ofg8waXQ730hL/G6FswOUk2nitSQ0s4uUaBkM=; b=VDQPcBvHaxF1SWl0wbKpO5/c6FkJ7fmpSyroX1FKBhw2jMCjMZqww5CpCZhXEMtRjprQUu9ZNXSEuZjPfQDKvqifJmv+roiQW3+q8l5maiVrN1j26yRnntIZDb4n22mooXuocJysPQaPk7LkwI8EVB0iu6H2+RxsfutG3rDXV4n+D10A22ijzuRxT0ZoKIQMtGlyJrNAvkfmO/+5Gv4A9U82kzBhGtl5JMKy/1dZPT43B6B5VfeahKDOPzWo6UcQ8osCoU1QxS174Sd1cO9/QkQWMIPAzxXV9jAl2xVscEBStLjui2Hfu31+SEHS7fAshIGLe08R4HSScES+eQcT3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DM6PR12CA0019.namprd12.prod.outlook.com (2603:10b6:5:1c0::32) by PH8PR12MB7133.namprd12.prod.outlook.com (2603:10b6:510:22e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.22; Sat, 30 Dec 2023 11:29:49 +0000 X-Received: from DS1PEPF0001708F.namprd03.prod.outlook.com (2603:10b6:5:1c0:cafe::ff) by DM6PR12CA0019.outlook.office365.com (2603:10b6:5:1c0::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.20 via Frontend Transport; Sat, 30 Dec 2023 11:29:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113006+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by DS1PEPF0001708F.mail.protection.outlook.com (10.167.17.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7159.9 via Frontend Transport; Sat, 30 Dec 2023 11:29:48 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sat, 30 Dec 2023 05:29:46 -0600 From: "Chang, Abner via groups.io" To: CC: Saloni Kasbekar , Zachary Clark-williams , Michael Brown , Nickle Wang , Igor Kulchytskyy Subject: [edk2-devel] [PATCH 2/5] NetworkPkg: Introduce HttpsTlsConfigDataProtocol Date: Sat, 30 Dec 2023 19:29:26 +0800 Message-ID: <20231230112929.1711-3-abner.chang@amd.com> In-Reply-To: <20231230112929.1711-1-abner.chang@amd.com> References: <20231230112929.1711-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF0001708F:EE_|PH8PR12MB7133:EE_ X-MS-Office365-Filtering-Correlation-Id: 79f55721-ac96-4766-0bb1-08dc092aa1fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: Wfljz08jifSBpDVtJqyJ/8tV5+AWCMBE68kAJCOyRpY7PPhkPdMe6tOUPH6Lf6/IzrddOU0yKsO/9zWB71lKhf+rtVhCnnrbGqzxI91pU8aWMostZk6hSrwjSfViFzYkDiL9PwxLcqfjjx4Q1bzi4WRlT7tLdbrsXhvg/WJM5lrqrAAsJo1fXuRAgAIIz814TVNnSknEWKySWMZx9D1Zb9C2XDlnUsMZ4Hk7Hqgq0UbYk9zVLAkrdwJSa2ZLoDYdJ2RzXgXJjGXnTLYp+lDdyKFIexYNN6p1kHqGTobdBwHU8lNUeVJBxT2RPUIinx5XIA9IzuIdt7Zl+JRvFIhwdQGgZTlOsCbaMamoSWpVbfrwMQqpnosg4dTiRgJNBfKgPUpBqrxZYYc+dOcfbSfd2VH55ajFRbXFkv1iJNFdCMXQjl/c1sm8n8LwofQW7OpWqRSnanXFc7SgythyJbAB287gTK2II9umPd59wSTX7Wh9s6pVzpv1OqiS+B3oHMPxaX8opwWAhJ4qBG9HmUy1VdeQ3B3wTOBp457LNrkNWcRUs/9U6LKOY21Q+IYXf4ikkUB5fk/I7yN2q59g4Q8yNmtVtTNE3yrbQf5wkjMRqrjhhYRGOh/HHeJIsLLM30mZkccERnSbLveacy/O3vbZmvLqtpbs3Jgu09e4nP5DS5PHZyuShjkc23H9gtZWfuvmUMKBn+PdwPON/d14aORsJFgbNdgnmztjD+StjS6ACSnDJs9Vf01dmb9LdMrnGklMaSgNsiMBAy9sZkO3mQ/j/SU7oe4Bo3pcOaLVx0IeK2vjL1Bz5XD2gl6jceu3QKt509tRcb55eiQDWNc/Zx0IMQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2023 11:29:48.9978 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79f55721-ac96-4766-0bb1-08dc092aa1fd X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF0001708F.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7133 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: locx0pabH3xmyOfoztZh3BKax1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1703935795414100011 Content-Type: text/plain; charset="utf-8" From: abnchang Introduce HttpsTlsConfigDataProtocol the HTTP application can install it on the HTTP protocol handle to provide its own TLS configuration data. Signed-off-by: Abner Chang Cc: Saloni Kasbekar Cc: Zachary Clark-williams Cc: Michael Brown Cc: Nickle Wang Cc: Igor Kulchytskyy --- NetworkPkg/NetworkPkg.dec | 3 ++ .../Protocol/HttpsTlsConfigDataProtocol.h | 48 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 NetworkPkg/Include/Protocol/HttpsTlsConfigDataProtocol.h diff --git a/NetworkPkg/NetworkPkg.dec b/NetworkPkg/NetworkPkg.dec index e06f35e7747..17473464d1e 100644 --- a/NetworkPkg/NetworkPkg.dec +++ b/NetworkPkg/NetworkPkg.dec @@ -94,6 +94,9 @@ ## Include/Protocol/WiFiProfileSyncProtocol.h gEdkiiWiFiProfileSyncProtocolGuid =3D {0x399a2b8a, 0xc267, 0x44aa, {0x9a= , 0xb4, 0x30, 0x58, 0x8c, 0xd2, 0x2d, 0xcc}} =20 + ## Include/Protocol/HttpsTlsConfigDataProtocol.h + gEdkiiHttpsTlsConfigDataProtocolGuid =3D {0xbfe8e3e3, 0xb884, 0x4a6f, {0= xae, 0xd3, 0xb8, 0xdb, 0xeb, 0xc5, 0x58, 0xc0}} + [PcdsFixedAtBuild] ## The max attempt number will be created by iSCSI driver. # @Prompt Max attempt number. diff --git a/NetworkPkg/Include/Protocol/HttpsTlsConfigDataProtocol.h b/Net= workPkg/Include/Protocol/HttpsTlsConfigDataProtocol.h new file mode 100644 index 00000000000..ec429d9ed38 --- /dev/null +++ b/NetworkPkg/Include/Protocol/HttpsTlsConfigDataProtocol.h @@ -0,0 +1,48 @@ +/** @file + This file defines the EDKII HTTPS TLS Config Data Protocol + + Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL_H_ +#define EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL_H_ + +#include +#include + +#define EEDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL_GUID \ + { \ + 0xbfe8e3e3, 0xb884, 0x4a6f, {0xae, 0xd3, 0xb8, 0xdb, 0xeb, 0xc5, 0x58,= 0xc0} \ + } + +/// +/// HTTP TLS configuration structure version that manages +/// structure format of EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL. +/// +typedef struct { + UINT8 Major; + UINT8 Minor; +} EDKII_HTTPS_TLS_CONFIG_DATA_VERSION; + +/// +/// HTTPS TLS configuration data structure. +/// +typedef struct { + EFI_TLS_VERSION Version; + EFI_TLS_CONNECTION_END ConnectionEnd; + EFI_TLS_VERIFY VerifyMethod; + EFI_TLS_VERIFY_HOST VerifyHost; + EFI_TLS_SESSION_STATE SessionState; +} HTTPS_TLS_CONFIG_DATA; + +typedef struct { + EDKII_HTTPS_TLS_CONFIG_DATA_VERSION Version; + /// + /// EDKII_PLATFORM_HTTPS_TLS_CONFIG_DATA_VERSION V1.0 + /// + HTTPS_TLS_CONFIG_DATA HttpsTlsConfigData; +} EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL; + +extern EFI_GUID gEdkiiHttpsTlsConfigDataProtocolGuid; +#endif // EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL_H_ --=20 2.37.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113006): https://edk2.groups.io/g/devel/message/113006 Mute This Topic: https://groups.io/mt/103430431/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 07:55:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113007+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1703935796310804.0091825895965; Sat, 30 Dec 2023 03:29:56 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=jwji5lHz5WfXe5oDbeBJzVE92XTXh5rQcfuXAocf3CI=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1703935795; v=1; b=pKmvLYcka0DGq15pgYbamVD1xT+ScdZdsXW+KmWZ/bosuUMwQhTvFmhAz+fNWyJz7J6atB0x aBUHQM4tI4MdI0M4G7OF9dt1WHEiZm8yH3Lj16CHk2XmhvrXno7dXDdelNfwLGiVKrt7TX8UOWG t6YJafW4TWF7DliE2ZzcmA3A= X-Received: by 127.0.0.2 with SMTP id 0afgYY1788612xI9kEnjnTu2; Sat, 30 Dec 2023 03:29:55 -0800 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.72]) by mx.groups.io with SMTP id smtpd.web11.182760.1703935795155797791 for ; Sat, 30 Dec 2023 03:29:55 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=la9H1LQUHUbKxArIK2oPTfqnYwWLSJ4gdyunuYPbhfK1RsXc4LgURJEFker0tPYlaoYUuI6BzBfez9unaw36rErHSEa535VhKlO2sBc7nm5NvKRfzKftGKWbXSMc5LB2GUx9R+MJapRsGD4ceSEBXyQIic52La3szc9dROIuchaqdFMwC4sV9+/TKk9+BcU1DEA8W8V2RZmZdviVF5GUXIGp+ZOdiigjlVVIhf3cbna9e3gHjlYZdSwW3O/F8rGr9g4A/DFSVks0ZHRPmXAMZLe4DJ/V9N9IpZ8767ohOR5FTn4MPx/Lwd7sjvBTy290OfCOGnVX5vMUn1yw2GStjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0VEXHHbtK1HYtbjAwumwNAFppjlXRjvLs/DBghB0PAs=; b=ZCliyzQS+9nnLTXqrAR9s1bumygJ1BVkUgOKmBgPdwNCfDe+KSztmXOzSzzzsHiL3F6DqZsG6QvDpB8srviseqT1PT0TCEgN2RAoBWiQL6CFVRsRLLGp4eqadgFBMF50LQErkT9X7b/m8J2hkjytyCELNzDdHSaUz51ll84u+9/T85NCpS/rE/eVR04xI+Mp62HX2oakWS8VBGS0NTTILCSgEvyu8XpvJM5F3tQGwPqsVmIsr2RlmdgZo9QxdC6rNt7CgJbzpz1GEXPAjuKKRKULagWgxOTUg03cLohuaAfsQSliNSdBv3/8GmGRI/xu5cHUr/urJLah21+cEOqbmQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DS7PR03CA0136.namprd03.prod.outlook.com (2603:10b6:5:3b4::21) by CH3PR12MB8970.namprd12.prod.outlook.com (2603:10b6:610:176::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.22; Sat, 30 Dec 2023 11:29:51 +0000 X-Received: from DS1PEPF00017095.namprd03.prod.outlook.com (2603:10b6:5:3b4:cafe::93) by DS7PR03CA0136.outlook.office365.com (2603:10b6:5:3b4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.22 via Frontend Transport; Sat, 30 Dec 2023 11:29:51 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113007+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by DS1PEPF00017095.mail.protection.outlook.com (10.167.17.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7159.9 via Frontend Transport; Sat, 30 Dec 2023 11:29:51 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sat, 30 Dec 2023 05:29:48 -0600 From: "Chang, Abner via groups.io" To: CC: Saloni Kasbekar , Zachary Clark-williams , Michael Brown , Nickle Wang , Igor Kulchytskyy Subject: [edk2-devel] [PATCH 3/5] NetworkPkg/HttpDxe: Use HttpsTlsConfigDataProtocol Date: Sat, 30 Dec 2023 19:29:27 +0800 Message-ID: <20231230112929.1711-4-abner.chang@amd.com> In-Reply-To: <20231230112929.1711-1-abner.chang@amd.com> References: <20231230112929.1711-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017095:EE_|CH3PR12MB8970:EE_ X-MS-Office365-Filtering-Correlation-Id: 44c75d95-0b59-479b-2d87-08dc092aa342 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 0lVaU/XAhyOmEqu0wz9ZS9D+Nxck6aDb7w1d2HK+lVtfDx1MO6iHdbkY0on8j91dXkiFy0SU8shs5XtKJBIehbeGeMe9QAiyZQZlhVYhSzz6aP+LT2EbkHtkd+fztDQcWvHXWkJCwUQBGQBX1xOEVgrYwakd2fbpi0iA0q4CxOFZPvzUd/AEBvcP7v9aRxufexC+omDWNkOiBxvlGGG2j6uNSYdLLkYv1seaqbYJwQ9Y9e65etnhc25F0Q9NOeny43BpEglO2qz6309HhRV3CHpvqikFuaGg8/EbgWkYgjoU7axCLMGUowcjr89+ZIffDpJRiWNBlAWhpkgtVfj0u0co6PmEWKSg25k9lnBO3tL4egJPzZ03drxp/nJJC9pibTEWArRet9Qjx4+yBooiCuqOele14x2IXAkmLbMKz4tu70uqxFCIAuV9EXumyASfWVDieh3RCvK1nQklRS0xYOoItP8/YulXa965kFIXHE53Gub+K50LBcBFE7u2lf4IpcMGC6T5dWuo+RcfTjQ4G55hH+kjTMiOm1SrUcF39XytJMbCUTtGCky2dW/Pva4zaP5hatj/tzmeLGRGWmNlg7nXsjuoXXYmGcTKSNzU/sG2ldcVRVAoXiH6oc+VuBpcxtLTmr6iTk70PZ8LgUPE8ZkR4CvXTNu8QP5Ag1Mi9xHPoJ2KcbZYoV1PWl4/7BQnprbdlH4nlfx68Z0k3ii/f1+i3mtd4P4nYVopwdrfPQbF3w3TyYjzOiK5DIDh8JrZLKbIrzoHzrxwROe1FUQ2LxsBKtsTjegL5sefmPShx4aNCOnuTEqiCXhCrftDfkIVjj5SCitKYgNE6cmShkQn/w== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2023 11:29:51.1129 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 44c75d95-0b59-479b-2d87-08dc092aa342 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017095.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8970 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: X4PJTuLPsTJPOYBXiVxUC5rbx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1703935797360100013 Content-Type: text/plain; charset="utf-8" From: abnchang Consume HttpsTlsConfigDataProtocol protocol installed on the HTTP protocol handle to override the default TLS configuration data. Signed-off-by: Abner Chang Cc: Saloni Kasbekar Cc: Zachary Clark-williams Cc: Michael Brown Cc: Nickle Wang Cc: Igor Kulchytskyy --- NetworkPkg/HttpDxe/HttpDxe.inf | 1 + NetworkPkg/HttpDxe/HttpDriver.h | 1 + NetworkPkg/HttpDxe/HttpProto.h | 10 +--- NetworkPkg/HttpDxe/HttpsSupport.c | 97 ++++++++++++++++++++++++------- 4 files changed, 80 insertions(+), 29 deletions(-) diff --git a/NetworkPkg/HttpDxe/HttpDxe.inf b/NetworkPkg/HttpDxe/HttpDxe.inf index c9502d0bb6d..ec58677c3f1 100644 --- a/NetworkPkg/HttpDxe/HttpDxe.inf +++ b/NetworkPkg/HttpDxe/HttpDxe.inf @@ -66,6 +66,7 @@ gEfiTlsProtocolGuid ## SOMETIMES_CONSUMES gEfiTlsConfigurationProtocolGuid ## SOMETIMES_CONSUMES gEdkiiHttpCallbackProtocolGuid ## SOMETIMES_CONSUMES + gEdkiiHttpsTlsConfigDataProtocolGuid ## SOMETIMES_CONSUMES =20 [Guids] gEfiTlsCaCertificateGuid ## SOMETIMES_CONSUMES = ## Variable:L"TlsCaCertificate" diff --git a/NetworkPkg/HttpDxe/HttpDriver.h b/NetworkPkg/HttpDxe/HttpDrive= r.h index 01a6bb7f4b7..66c924e3030 100644 --- a/NetworkPkg/HttpDxe/HttpDriver.h +++ b/NetworkPkg/HttpDxe/HttpDriver.h @@ -48,6 +48,7 @@ #include #include #include +#include =20 #include // diff --git a/NetworkPkg/HttpDxe/HttpProto.h b/NetworkPkg/HttpDxe/HttpProto.h index 012f1f4b467..fbccffa8e71 100644 --- a/NetworkPkg/HttpDxe/HttpProto.h +++ b/NetworkPkg/HttpDxe/HttpProto.h @@ -76,14 +76,6 @@ typedef struct { EFI_HTTP_METHOD Method; } HTTP_TCP_TOKEN_WRAP; =20 -typedef struct { - EFI_TLS_VERSION Version; - EFI_TLS_CONNECTION_END ConnectionEnd; - EFI_TLS_VERIFY VerifyMethod; - EFI_TLS_VERIFY_HOST VerifyHost; - EFI_TLS_SESSION_STATE SessionState; -} TLS_CONFIG_DATA; - // // Callback data for HTTP_PARSER_CALLBACK() // @@ -172,7 +164,7 @@ typedef struct _HTTP_PROTOCOL { =20 EFI_SERVICE_BINDING_PROTOCOL *TlsSb; EFI_HANDLE TlsChildHandle; /// Tls ChildHandle - TLS_CONFIG_DATA TlsConfigData; + HTTPS_TLS_CONFIG_DATA TlsConfigData; EFI_TLS_PROTOCOL *Tls; EFI_TLS_CONFIGURATION_PROTOCOL *TlsConfiguration; EFI_TLS_SESSION_STATE TlsSessionState; diff --git a/NetworkPkg/HttpDxe/HttpsSupport.c b/NetworkPkg/HttpDxe/HttpsSu= pport.c index fb7c1ea59f2..96ecdd1d848 100644 --- a/NetworkPkg/HttpDxe/HttpsSupport.c +++ b/NetworkPkg/HttpDxe/HttpsSupport.c @@ -131,6 +131,58 @@ IsHttpsUrl ( return FALSE; } =20 +/** + Get application HTTP TLS configuration data from HTTP handle. + + @param[in] HttpInstance The HTTP protocol handle instance. + + @retval EFI_SUCCESS Application HTTP TLS configuration data is + loaded in HttpInstance->TlsConfigData. + @retval EFI_UNSUPPORTED No application HTTP TLS configuration data + +**/ +EFI_STATUS +GetHttpsTlsConfigData ( + IN HTTP_PROTOCOL *HttpInstance + ) +{ + EFI_STATUS Status; + EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL *HttpsTlsConfigData; + + Status =3D gBS->HandleProtocol ( + HttpInstance->Handle, + &gEdkiiHttpsTlsConfigDataProtocolGuid, + (VOID **)&HttpsTlsConfigData + ); + if (EFI_ERROR (Status)) { + return EFI_UNSUPPORTED; + } + + if (HttpsTlsConfigData->Version.Major >=3D 1) { + HttpInstance->TlsConfigData.ConnectionEnd =3D HttpsTlsConfigData->Http= sTlsConfigData.ConnectionEnd; + HttpInstance->TlsConfigData.SessionState =3D HttpsTlsConfigData->Http= sTlsConfigData.SessionState; + HttpInstance->TlsConfigData.VerifyHost =3D HttpsTlsConfigData->Http= sTlsConfigData.VerifyHost; + HttpInstance->TlsConfigData.VerifyMethod =3D HttpsTlsConfigData->Http= sTlsConfigData.VerifyMethod; + } else { + DEBUG (( + DEBUG_ERROR, + "%a: Unsupported version of EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL - %= d.%d.\n", + __func__, + HttpsTlsConfigData->Version.Major, + HttpsTlsConfigData->Version.Minor + )); + return EFI_UNSUPPORTED; + } + + DEBUG (( + DEBUG_VERBOSE, + "%a: There is a EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL installed on HTTP= handle:0x%x.\n", + __func__, + HttpInstance->Handle + )); + return EFI_SUCCESS; +} + /** Creates a Tls child handle, open EFI_TLS_PROTOCOL and EFI_TLS_CONFIGURAT= ION_PROTOCOL. =20 @@ -208,6 +260,13 @@ TlsCreateChild ( return Status; } =20 + // Initial default TLS configuration data. + HttpInstance->TlsConfigData.ConnectionEnd =3D EfiTlsClient; + HttpInstance->TlsConfigData.VerifyMethod =3D EFI_TLS_VERIFY_PEER; + HttpInstance->TlsConfigData.VerifyHost.Flags =3D EFI_TLS_VERIFY_FLAG_= NONE; + HttpInstance->TlsConfigData.VerifyHost.HostName =3D HttpInstance->Remote= Host; + HttpInstance->TlsConfigData.SessionState =3D EfiTlsSessionNotStar= ted; + return EFI_SUCCESS; } =20 @@ -650,14 +709,8 @@ TlsConfigureSession ( { EFI_STATUS Status; =20 - // - // TlsConfigData initialization - // - HttpInstance->TlsConfigData.ConnectionEnd =3D EfiTlsClient; - HttpInstance->TlsConfigData.VerifyMethod =3D EFI_TLS_VERIFY_PEER; - HttpInstance->TlsConfigData.VerifyHost.Flags =3D EFI_TLS_VERIFY_FLAG_= NONE; - HttpInstance->TlsConfigData.VerifyHost.HostName =3D HttpInstance->Remote= Host; - HttpInstance->TlsConfigData.SessionState =3D EfiTlsSessionNotStar= ted; + // Get applciation TLS configuration data. + GetHttpsTlsConfigData (HttpInstance); =20 // // EfiTlsConnectionEnd, @@ -685,14 +738,16 @@ TlsConfigureSession ( return Status; } =20 - Status =3D HttpInstance->Tls->SetSessionData ( - HttpInstance->Tls, - EfiTlsVerifyHost, - &HttpInstance->TlsConfigData.VerifyHost, - sizeof (EFI_TLS_VERIFY_HOST) - ); - if (EFI_ERROR (Status)) { - return Status; + if (HttpInstance->TlsConfigData.VerifyMethod !=3D EFI_TLS_VERIFY_NONE) { + Status =3D HttpInstance->Tls->SetSessionData ( + HttpInstance->Tls, + EfiTlsVerifyHost, + &HttpInstance->TlsConfigData.VerifyHost, + sizeof (EFI_TLS_VERIFY_HOST) + ); + if (EFI_ERROR (Status)) { + return Status; + } } =20 Status =3D HttpInstance->Tls->SetSessionData ( @@ -717,10 +772,12 @@ TlsConfigureSession ( // // Tls Config Certificate // - Status =3D TlsConfigCertificate (HttpInstance); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "TLS Certificate Config Error!\n")); - return Status; + if (HttpInstance->TlsConfigData.VerifyMethod !=3D EFI_TLS_VERIFY_NONE) { + Status =3D TlsConfigCertificate (HttpInstance); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "TLS Certificate Config Error!\n")); + return Status; + } } =20 // --=20 2.37.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113007): https://edk2.groups.io/g/devel/message/113007 Mute This Topic: https://groups.io/mt/103430432/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 07:55:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113008+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1703935800970525.2439332576753; Sat, 30 Dec 2023 03:30:00 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=Z+v0ztU6rB/Jzxz+n3eVUIiBADQUKjREnRYLO4jQ9ZU=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1703935800; v=1; b=VpPRu1Qr64pArJ41YpT4I4WCns18jT/5jKMtth/uzh/enL8Ifjs5sfKoxyFpMExn5N0SyGsZ D+pzCr94dw/XYh2X4qS2JEQRjGhhmEQtF00wVQS9rkDFE6Abb5M09UnvWpgNS09K+ZYV+5wRtaI 0cJCKyDq/DVl2ZMjjjg7FYgc= X-Received: by 127.0.0.2 with SMTP id BAPEYY1788612xRNwftj0Lc4; Sat, 30 Dec 2023 03:30:00 -0800 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.62]) by mx.groups.io with SMTP id smtpd.web10.182613.1703935799981649639 for ; Sat, 30 Dec 2023 03:30:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DvgUriYGXenTWQ3KvJe8UiLLucEn3BBduuZA4A8rdSB+DCYKHeQLgJj+S/lF8f7/igrzqOJv/evFY0b8R367omzMWsYoH4vogs0Oz/YPtPD5cwnqyheZy5H5UI7O6B7ej+0tE14zthjE5jVvJkdqFEya1m1W3TstWZAlyTexFGU7ikUKn2BuDpip8OWkfIoJu8wLEwzU4ul2dE8KMZ2gBbydN+hXtmUtMfPTPUQPArBcQT+E827dZyHAv8Ez6/gDMag6tcCzkswnjGui8FVcL35pc+JVrsXtEHS6aRsBUDeQiGqaMf3QUw7OVXsf1weM8JAyjS1raRaORcK+70fDzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7/2sL0iHhPkpNPxpbeFWk0JfyGjpaHqzklzssd8I6wM=; b=Hy749a3cdS2s3ClY7UIQysyETm7avWO6OvLQjB3UBTFkor5vOsUeEV+udLGrqYkJICkqIvd66DnUVZSPpFyeYG7GFZjGBRtknQe76lW3QnZv2J58MgDX1ANeZq4WK7MewwJppn9xpsOgAq4ubzU84BzajgjZKZorV0i1GDsWeHMl6G6fWha/XpY599jaAn3kKYZ0qESXYdjcCUWQrTNTLyp1BX1aCOIKO1YnoQ5j6h65jVyD9y5eC3OrBV7aCpWUhS2csUcaYKSMzMRRFIuVHGTupOqS5pNnwWiZuwsBNv8Mcc0aPiop7kr19WlC6PQYpVZErRK4MJrCBSJrPgw23g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DS7PR03CA0276.namprd03.prod.outlook.com (2603:10b6:5:3ad::11) by CH2PR12MB4038.namprd12.prod.outlook.com (2603:10b6:610:7b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.22; Sat, 30 Dec 2023 11:29:53 +0000 X-Received: from DS1PEPF00017094.namprd03.prod.outlook.com (2603:10b6:5:3ad:cafe::5b) by DS7PR03CA0276.outlook.office365.com (2603:10b6:5:3ad::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.18 via Frontend Transport; Sat, 30 Dec 2023 11:29:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113008+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by DS1PEPF00017094.mail.protection.outlook.com (10.167.17.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7159.9 via Frontend Transport; Sat, 30 Dec 2023 11:29:53 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sat, 30 Dec 2023 05:29:51 -0600 From: "Chang, Abner via groups.io" To: CC: Saloni Kasbekar , Zachary Clark-williams , Michael Brown , Nickle Wang , Igor Kulchytskyy Subject: [edk2-devel] [PATCH 4/5] RedfishPkg/RedfishRestExDxe: Produce EdkiiHttpsTlsConfigData protocol Date: Sat, 30 Dec 2023 19:29:28 +0800 Message-ID: <20231230112929.1711-5-abner.chang@amd.com> In-Reply-To: <20231230112929.1711-1-abner.chang@amd.com> References: <20231230112929.1711-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017094:EE_|CH2PR12MB4038:EE_ X-MS-Office365-Filtering-Correlation-Id: a26417ff-8007-41aa-0b48-08dc092aa483 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: PFT9YW5IpcHxj/8Mxgwdk5nOS8Qh0h0uzgKAeULZmBsNZScwjBtlFJppXUAlVte9Wnxk5M55jsNF3/XkCg3MY8y/fecP0q1ecrbY4DF4g1rKgw2ZB+zxj+3WXNcxti45Ngmq07ZGfP92sHdz6dtZWGET208GRk+9V4Tz1m3pooKlJVbCxjrb5lhheiK7W0Ia/IUAvPAxTeU9CMja2qihv+HOgXmzHuqXiJhpcQfcc1+/r7/Qpcpxd0COL6hZILFT5tA48nC0p0X1iZwujwQe2ZXY8I2eTBNdM/2NKNo66Zj8p8wuHSpc1qaoom1WDjVKGA8xMww3zLdt7epePz7wsls+i3KlQYKPUau0m+8ebyxryARLSLyLcdltOm+r5NhhEgXL7oBfgBIpyCMDH/6aPWPIBrqUSE5swvMR5GmYaUp2bXQOmZp1Ucr4WMIJYvl7bi/5VXIDolQvtnnjBBEcK4C3F+Znrt5QS7GdYQRI4UoQtP8Mb57OKs4po/m45G3cgespfvmOoiK+dQPzOo8YYem6bgD7T3pFrURs3lZCLfDlAWKifct1Sl0gDuzAEPalA4tuAo8OrKZydzEBOznnEXVAKjqm1mX/1pFw/QPBqzgNdZCs9bxLBrdGlzpodyjkW9LtRKYEZZ9Uuz/RBfnhNQsiuPapc/84/W21tn6lmDYLbr+Va5xa1z4QFz5UNeGvB6WfA48jmuk2/LDslpbxz4MekRGMu4r0GacnLQjEzdCJcLMarKlUXEWAtssI2BlbDg2r/n8RTjv/8GytTwscDtyepgfiocmJ8qaHdpdB+ge87eupMw1EsSv5+u02KJvDfOXfLxwF8ESv9wxE9HqqeQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2023 11:29:53.2158 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a26417ff-8007-41aa-0b48-08dc092aa483 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017094.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4038 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: LdJ1sI0YzmWt37QgHi7od2ncx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1703935801427100001 Content-Type: text/plain; charset="utf-8" From: abnchang Produce EdkiiHttpsTlsConfigData protocol to provide Redfish REST EX TLS configuration data. Signed-off-by: Abner Chang Cc: Saloni Kasbekar Cc: Zachary Clark-williams Cc: Michael Brown Cc: Nickle Wang Cc: Igor Kulchytskyy --- RedfishPkg/RedfishPkg.dec | 5 ++ .../RedfishRestExDxe/RedfishRestExDxe.inf | 2 + .../RedfishRestExDxe/RedfishRestExDriver.h | 23 +++++- .../RedfishRestExDxe/RedfishRestExDriver.c | 79 ++++++++++++++++++- 4 files changed, 104 insertions(+), 5 deletions(-) diff --git a/RedfishPkg/RedfishPkg.dec b/RedfishPkg/RedfishPkg.dec index 3ea9ff3ef7f..e4aa8b634c8 100644 --- a/RedfishPkg/RedfishPkg.dec +++ b/RedfishPkg/RedfishPkg.dec @@ -154,3 +154,8 @@ # set to EFI_REST_EX_PROTOCOL. # gEfiRedfishPkgTokenSpaceGuid.PcdRedfishSendReceiveTimeout|5000|UINT32|0x= 00001009 + # + # This PCD declares whether to provide EDKII_HTTPS_CONFIG_DATA_PROTOCOL + # for Resfish REXT EX HTTPS TLS configuration data. + # + gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExHttpsTlsConfigData|TRUE|BOO= LEAN|0x00001010 diff --git a/RedfishPkg/RedfishRestExDxe/RedfishRestExDxe.inf b/RedfishPkg/= RedfishRestExDxe/RedfishRestExDxe.inf index 64e6343bfbf..e75f5a87985 100644 --- a/RedfishPkg/RedfishRestExDxe/RedfishRestExDxe.inf +++ b/RedfishPkg/RedfishRestExDxe/RedfishRestExDxe.inf @@ -57,11 +57,13 @@ gEfiHttpServiceBindingProtocolGuid ## TO_START gEfiHttpProtocolGuid ## TO_START gEfiDevicePathProtocolGuid ## TO_START + gEdkiiHttpsTlsConfigDataProtocolGuid ## PRODUCED =20 [Pcd] gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand ## = CONSUMES gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExChunkRequestMode ## = CONSUMES gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExAddingExpect ## = CONSUMES + gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExHttpsTlsConfigData ## = CONSUMES =20 [UserExtensions.TianoCore."ExtraFiles"] RedfishRestExDxeExtra.uni diff --git a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.h b/RedfishPkg= /RedfishRestExDxe/RedfishRestExDriver.h index 6b94e5814c4..c3a15f1a976 100644 --- a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.h +++ b/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.h @@ -30,8 +30,10 @@ /// UEFI Driver Model Protocols /// #include +#include #include #include +#include =20 /// /// Protocol instances @@ -53,13 +55,19 @@ typedef struct _RESTEX_SERVICE RESTEX_SERVICE; /// typedef struct _RESTEX_INSTANCE RESTEX_INSTANCE; =20 +/// +/// RestEx HTTP context +/// +typedef struct _RESTEX_HTTPS_CONTEXT RESTEX_HTTPS_CONTEXT; + /// /// Driver Version /// #define REDFISH_RESTEX_DRIVER_VERSION 0x0100 =20 -#define RESTEX_SERVICE_SIGNATURE SIGNATURE_32 ('R', 'E', 'S', 'S') -#define RESTEX_INSTANCE_SIGNATURE SIGNATURE_32 ('R', 'E', 'I', 'S') +#define RESTEX_SERVICE_SIGNATURE SIGNATURE_32 ('R', 'E', 'S', 'S') +#define RESTEX_INSTANCE_SIGNATURE SIGNATURE_32 ('R', 'E', 'I', 'S') +#define RESTEX_HTTPS_CONTEXT_SIGNATURE SIGNATURE_32 ('R', 'H', 'C', 'S') =20 #define RESTEX_SERVICE_FROM_THIS(a) \ CR (a, RESTEX_SERVICE, ServiceBinding, RESTEX_SERVICE_SIGNATURE) @@ -67,6 +75,9 @@ typedef struct _RESTEX_INSTANCE RESTEX_INSTANCE; #define RESTEX_INSTANCE_FROM_THIS(a) \ CR (a, RESTEX_INSTANCE, RestEx, RESTEX_INSTANCE_SIGNATURE) =20 +#define REDFISH_HTTPS_CONTEXT_FROM_THIS(a) \ + CR (a, RESTEX_HTTPS_CONTEXT, TlsConfigDataProtocol, RESTEX_HTTPS_CONTEXT= _SIGNATURE) + #define RESTEX_STATE_UNCONFIGED 0 #define RESTEX_STATE_CONFIGED 1 =20 @@ -93,6 +104,12 @@ struct _RESTEX_SERVICE { #define RESTEX_INSTANCE_FLAGS_TLS_RETRY 0x00000001 #define RESTEX_INSTANCE_FLAGS_TCP_ERROR_RETRY 0x00000002 =20 +struct _RESTEX_HTTPS_CONTEXT { + UINT32 Signature; + EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL TlsConfigDataProtocol; + BOOLEAN TlsConfigDataProtocolInstalled; +}; + struct _RESTEX_INSTANCE { UINT32 Signature; LIST_ENTRY Link; @@ -107,6 +124,8 @@ struct _RESTEX_INSTANCE { =20 EFI_REST_EX_CONFIG_DATA ConfigData; =20 + RESTEX_HTTPS_CONTEXT *RestExHttpsContext; + // // HTTP_IO to access the HTTP service // diff --git a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c b/RedfishPkg= /RedfishRestExDxe/RedfishRestExDriver.c index 7036aed4268..f897248fc44 100644 --- a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c +++ b/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c @@ -76,8 +76,26 @@ RestExDestroyInstance ( IN RESTEX_INSTANCE *Instance ) { - HttpIoDestroyIo (&(Instance->HttpIo)); + EFI_STATUS Status; =20 + if ((Instance !=3D NULL) && + (Instance->RestExHttpsContext !=3D NULL) && + (Instance->RestExHttpsContext->TlsConfigDataProtocolInstalled) + ) + { + Status =3D gBS->UninstallProtocolInterface ( + Instance->HttpIo.Handle, + &gEdkiiHttpsTlsConfigDataProtocolGuid, + (VOID *)&Instance->RestExHttpsContext->TlsConfigDataPr= otocol + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a: Fail to uninstall gEdkiiHttpsTlsConfigData= ProtocolGuid.\n", __func__)); + } + + FreePool (Instance->RestExHttpsContext); + } + + HttpIoDestroyIo (&(Instance->HttpIo)); FreePool (Instance); } =20 @@ -266,6 +284,56 @@ RestExCreateService ( return Status; } =20 +/** + Initial EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL for Redfish REST EX TLS. + + @param[in] Instance REST EX internal structure instance. + +**/ +VOID +RedfishHttpsTlsConfigData ( + IN RESTEX_INSTANCE *Instance + ) +{ + EFI_STATUS Status; + RESTEX_HTTPS_CONTEXT *RestExHttpsContext; + + RestExHttpsContext =3D AllocateZeroPool (sizeof (RESTEX_HTTPS_CONTEXT)); + if (RestExHttpsContext =3D=3D NULL) { + DEBUG ((DEBUG_ERROR, "%a: Allocate memory fail for RESTEX_HTTPS_CONTEX= T\n", __func__)); + return; + } + + if (Instance->HttpIo.Handle =3D=3D NULL) { + DEBUG ((DEBUG_ERROR, "%a: Invalid HTTP handle.\n", __func__)); + return; + } + + RestExHttpsContext->Signature = =3D RESTEX_HTTPS_CONTEXT_SIGNATURE; + RestExHttpsContext->TlsConfigDataProtocol.Version.Major = =3D 1; + RestExHttpsContext->TlsConfigDataProtocol.Version.Minor = =3D 0; + RestExHttpsContext->TlsConfigDataProtocol.HttpsTlsConfigData.ConnectionE= nd =3D EfiTlsClient; + RestExHttpsContext->TlsConfigDataProtocol.HttpsTlsConfigData.VerifyMetho= d =3D EFI_TLS_VERIFY_NONE; + RestExHttpsContext->TlsConfigDataProtocol.HttpsTlsConfigData.VerifyHost.= Flags =3D EFI_TLS_VERIFY_FLAG_NONE; + RestExHttpsContext->TlsConfigDataProtocol.HttpsTlsConfigData.VerifyHost.= HostName =3D "Redfish Service"; + + // Install EDKII_HTTPS_TLS_CONFIG_DATA_PROTOCOL; + Status =3D gBS->InstallProtocolInterface ( + &Instance->HttpIo.Handle, + &gEdkiiHttpsTlsConfigDataProtocolGuid, + EFI_NATIVE_INTERFACE, + (VOID *)&RestExHttpsContext->TlsConfigDataProtocol + ); + if (EFI_ERROR (Status)) { + FreePool (RestExHttpsContext); + DEBUG ((DEBUG_ERROR, "%a: Fail to install EDKII_HTTPS_TLS_CONFIG_DATA_= PROTOCOL.\n", __func__)); + return; + } + + RestExHttpsContext->TlsConfigDataProtocolInstalled =3D TRUE; + Instance->RestExHttpsContext =3D RestExHttpsContex= t; +} + /** This is the declaration of an EFI image entry point. This entry point is the same for UEFI Applications, UEFI OS Loaders, and UEFI Drivers includ= ing @@ -286,8 +354,6 @@ RedfishRestExDriverEntryPoint ( { EFI_STATUS Status; =20 - Status =3D EFI_SUCCESS; - // // Install the RestEx Driver Binding Protocol. // @@ -699,6 +765,13 @@ RedfishRestExServiceBindingCreateChild ( goto ON_ERROR; } =20 + // + // Set Redfish HTTPS TLS configuration data. + // + if (FixedPcdGetBool (PcdRedfishRestExHttpsTlsConfigData)) { + RedfishHttpsTlsConfigData (Instance); + } + // // Add it to the parent's child list. // --=20 2.37.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113008): https://edk2.groups.io/g/devel/message/113008 Mute This Topic: https://groups.io/mt/103430433/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri May 17 07:55:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+113009+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1703935801524363.5713293431703; Sat, 30 Dec 2023 03:30:01 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=O9WmtQxwkmX6CTaYt5/5Zt4abUue1FgM91Vb5ig5u/4=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:Received-SPF:From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding:Content-Type; s=20140610; t=1703935801; v=1; b=Iwp7BRGEgfzvD2ZX72mqxnrfC5buxMbPzQbJv4LFbh4o7nBKhVnNozNmNQglzJuqzW0XpTwJ /jsfNawm5g/vgAayb730Ze0vhJQufACWDudpMg+Fcshhtvnrxeg+Kj6x6qre+9OqjQVlRNU/ler s1yfKZJVx4ftIcB27rNYjNJw= X-Received: by 127.0.0.2 with SMTP id N5fyYY1788612xOAMFiWyNhx; Sat, 30 Dec 2023 03:30:01 -0800 X-Received: from NAM02-BN1-obe.outbound.protection.outlook.com (NAM02-BN1-obe.outbound.protection.outlook.com [40.107.212.60]) by mx.groups.io with SMTP id smtpd.web11.182763.1703935800400251051 for ; Sat, 30 Dec 2023 03:30:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ujy61GDbofTZD6nddr1CPlKiBB3E1+pES7Dfzq0GflMoqhuWN7eYS7eRYzhXTPHmtzWqqM4z003dB8OFtp8k19wAqSwvamo5zLhs3DnQoRzL1L/c/oEyJky+vHIx7okUWNIikR0JAnqwS4YE2cyyfUGyAI5+YqE540aXjlrKaZ9EpTbM/FBXnKpob7FjOVWJrjeaxib07Z2pTE/yPuEZcwzh8n+xkrdGAr9dFK9wp/y6Ed0udUnYxCWEF+ozMHUKL6RPIfYcWRiaLX23i8xSkjBDZ8L2ERFiQO4IEkksOkNO732xjr4bIzwWm/630IJ+x26hBJyiNUCzHXdpggFq2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LcXoc9gP+1TPkgSqRw1qywkO8X5zOmr8Bz9chekjE+Q=; b=mnK4LEX0P5wJRQkILD7WrJJ7fJWXJC3NkjwIsZwMMWLzPwmf2HRgv41mXMiV59AgCjEyK0e8GRr7nFCL58Tc+3AF+2b3Fjc6W49dBTPKWIAfRo+oBnJStCg3UVOeNFpcmVduR7rCUTPfMjsWgOGzfi+4uF2GDsB/qgdXxo5dZeEa3o1OU44gJLPUW1kse1vR2obTYBIO85yLqpismi1OllO5mraHO76WYrUjsSo4kxbgLeVEt0jR2N8P8dLXAJcsEHSgbVDHGlxE30VlVYrEPSk1Ewr2athuqdCjIfeot+RQY8jAJrKHRR0tyV4LC7JDO1yBbjoQpCPoX1rFIJiVPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) X-Received: from DM6PR04CA0028.namprd04.prod.outlook.com (2603:10b6:5:334::33) by MW6PR12MB8735.namprd12.prod.outlook.com (2603:10b6:303:245::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.22; Sat, 30 Dec 2023 11:29:55 +0000 X-Received: from DS1PEPF00017091.namprd03.prod.outlook.com (2603:10b6:5:334:cafe::d3) by DM6PR04CA0028.outlook.office365.com (2603:10b6:5:334::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.21 via Frontend Transport; Sat, 30 Dec 2023 11:29:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+113009+1787277+3901457@groups.io; helo=mail02.groups.io; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C X-Received: from SATLEXMB04.amd.com (165.204.84.17) by DS1PEPF00017091.mail.protection.outlook.com (10.167.17.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7159.9 via Frontend Transport; Sat, 30 Dec 2023 11:29:54 +0000 X-Received: from TPE-L1-ABNCHANG.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Sat, 30 Dec 2023 05:29:53 -0600 From: "Chang, Abner via groups.io" To: CC: Nickle Wang , Igor Kulchytskyy Subject: [edk2-devel] [PATCH 5/5] RedfishPkg/RedfishRestExDxe: Update the Supported function Date: Sat, 30 Dec 2023 19:29:29 +0800 Message-ID: <20231230112929.1711-6-abner.chang@amd.com> In-Reply-To: <20231230112929.1711-1-abner.chang@amd.com> References: <20231230112929.1711-1-abner.chang@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS1PEPF00017091:EE_|MW6PR12MB8735:EE_ X-MS-Office365-Filtering-Correlation-Id: b255e797-e3e9-4726-4daf-08dc092aa55a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: b8zvduvGfoR4+IsCeAXq0LaJpsIyuMmmPPjIKO10sKtVBjMKUAZ0qvt80aezsZQZHKT8oqVv2lik+/W+ioCZwrV20k+0AIMqRfF72YaynrnOqZ2diYOViK0xY9x/RttxNKsfs3UIxG8adDFijN+mXirpQPjuvcjkfnl+isiylzZ9fl9KR01P0CmRGBUm8wnWCM4F3yp4quCRKLbDfCJhOk7zb2P1GwRFij6HX3SdLmaj8D3KZyprICBTWWEa2UuIyrwIRAslw8o0jWChzJQ+YQ9+h4dR64v9Nzry8LKf9aghcLRJlJQSpBhyfXtxQVHUirLNUaY/+DXVwxkkAARvkh1NEI30cN/e8fo7/PtorLeL28cPVwPXUtyTN+K4LdDWdXvwcD4kU/KzO6H2CxJP2yrCVdlyk4GOqJZ/9IO0DIWQh7CAfZ7xptPeOV+0C6KwxqFe3iqSjBJSFQ8N0JfjMM89jcxMSXNM4eSIABvALM9Zc8AoMJoPoj1xDUtSmjIfcCO8EJOSx9aW5VLMu85FB6FVkl3H65eg9oBsGEoot/EluwO7+pCt6BItGalnUFp+HP4egpJjZGQmbPzST6UhfSUCgkX5HRpM3PdPT72afDW/Fw5PX+7ftNy2bd0dayXgyDyDp+kwSvYPwL4t/zgaaM3HbSuv3XhKN131rWA9rPZxg2S3lKdSJJzX+ARc8sPFhrTq2E1ak+ugmkORpPAGATxdST/JhzQrvvh1sMxyGuiezCBomkwWdQIR81E52fem/YJjmtlLWeXC14gzvjII4Q== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Dec 2023 11:29:54.6421 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b255e797-e3e9-4726-4daf-08dc092aa55a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DS1PEPF00017091.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8735 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: 33IHDXr6uWNdmSCY7SWMVWhyx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1703935803443100007 Content-Type: text/plain; charset="utf-8" From: Abner Chang Update the Supported function to check if the given controller handle is already started. Signed-off-by: Abner Chang Cc: Nickle Wang Cc: Igor Kulchytskyy --- RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c b/RedfishPkg= /RedfishRestExDxe/RedfishRestExDriver.c index f897248fc44..1ac2ea6bcd3 100644 --- a/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c +++ b/RedfishPkg/RedfishRestExDxe/RedfishRestExDriver.c @@ -422,6 +422,21 @@ RedfishRestExDriverBindingSupported ( IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL ) { + EFI_STATUS Status; + UINT32 *Id; + + Status =3D gBS->OpenProtocol ( + ControllerHandle, + &gEfiCallerIdGuid, + (VOID **)&Id, + This->DriverBindingHandle, + ControllerHandle, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (!EFI_ERROR (Status)) { + return EFI_ALREADY_STARTED; + } + // // Test for the HttpServiceBinding Protocol. // --=20 2.37.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113009): https://edk2.groups.io/g/devel/message/113009 Mute This Topic: https://groups.io/mt/103430434/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-