From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.7012.1589435947782365510 for ; Wed, 13 May 2020 22:59:07 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Iu5OlLa5; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: zhichao.gao@intel.com) IronPort-SDR: jNWEJGGJ0WWW/PIKk6H5APzXSwwFPBIhKLj+rY/zB5aEU7B87/uhF4bJYUJM+cfCdRwYxIX2US 0J931PhAcbNA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 May 2020 22:59:06 -0700 IronPort-SDR: bP0EFcRFgLLlbbNh0GZQthrUipwhtOxVlaNdYvY+zmYJJ3pgTuv9USHQDI98s86MXoO7+yWzX4 m7hLG8vgENoQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,390,1583222400"; d="scan'208";a="266127530" Received: from orsmsx101.amr.corp.intel.com ([10.22.225.128]) by orsmga006.jf.intel.com with ESMTP; 13 May 2020 22:59:06 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX101.amr.corp.intel.com (10.22.225.128) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 13 May 2020 22:59:06 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 13 May 2020 22:59:06 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 13 May 2020 22:59:06 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 13 May 2020 22:58:57 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UtBxc8jsbGp0NZoi+zwgqjH4a/gp31fXkREfOuoJgq5xBo2La1xcV67D1lag9h7S4UlqfIfGTGZeT0lMlEcpTDH4b5AIPk1rO/VqDlpNUipFHZVhyHdAqVeG1kMDCHGpe/8VHtLAkQO0jWwBaYxFUvuitNt4yoIiw1qcS8qbc3Kohfkjk2XdN0LZm66hlwXxMFUnPJJ2HHA5aauBslCpOhjYt93oAihvDCbLQjiEFTRr7m2o4DKAuVYfczbGhjugwWDHBxVCuJoz08e4x+5hlznvSQAe0X+fNZJHfWA0lJY/tWEVSBRPqP5crFMVeZ6+BGyIs+RBlZjsbAf5jH5U8Q== 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-SenderADCheck; bh=0wsoOzpjEtn8AzepWDkSu9krUOh2w6pXu1bl5inqHtI=; b=krzfLML4BBfjSymqTcfBse5Z7G2BFPk3wvqFbVGZXaizkqXIto1ZlSvgnInjeR5sK+db/FWfwmJDXkc/+oylSlo46ilzJ20GNlatSC/fqFVSr4Lc8M7xXwt08byZJTeOfXBtJJ4f5bmFTuY8HBXZpxlg0Xruaw8kNJdh1EmyTN7PBZ5DQjwPcSGtyIKMw1OpUWLJwMUx/sxRhaWMX2K2l00RrEkYCbDJC74AyBxMZbMEaX3sb/w159wNz+dRZiWaj6YEGpVj3QErPeBBg4K5SqGr/3Pi+UYylBD5rNuFnxQ/YGOxOqZHQhFMCGJYTpwIzM1JUlF8wa/20ezvce6eSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0wsoOzpjEtn8AzepWDkSu9krUOh2w6pXu1bl5inqHtI=; b=Iu5OlLa5W4D12jGzWrM7AROSAy1mesFITt3+3c5vkDq6K9HQqWXaVCSSjkVwSr+zDJJAkgbbYsDN1HoTaOGxwjkbpyrlIWORR8SeBYget00ZjXGmrOPNkjhyySzLeMgJMNzgbX/cSONe7zOq2R3iLczJcbUI6wdviGmAg01JPPw= Received: from DM6PR11MB4425.namprd11.prod.outlook.com (2603:10b6:5:1d9::31) by DM6PR11MB4690.namprd11.prod.outlook.com (2603:10b6:5:2ae::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.20; Thu, 14 May 2020 05:58:44 +0000 Received: from DM6PR11MB4425.namprd11.prod.outlook.com ([fe80::615a:17b0:aa95:be1]) by DM6PR11MB4425.namprd11.prod.outlook.com ([fe80::615a:17b0:aa95:be1%3]) with mapi id 15.20.2979.033; Thu, 14 May 2020 05:58:44 +0000 From: "Gao, Zhichao" To: "Jiang, Guomin" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Lu, XiaoyuX" , "Fu, Siyuan" , "Kinney, Michael D" , "Yao, Jiewen" , Philippe Mathieu-Daude Subject: Re: [edk2-devel] [PATCH V4 02/11] CryptoPkg/BaseCrpytLib: Retire MD4 algorithm Thread-Topic: [edk2-devel] [PATCH V4 02/11] CryptoPkg/BaseCrpytLib: Retire MD4 algorithm Thread-Index: AQHWKZ2oWFPtRQxGkUaQb3jPGmxPR6inFcGQ Date: Thu, 14 May 2020 05:58:44 +0000 Message-ID: References: <20200511182718.7728-1-zhichao.gao@intel.com> <20200511182718.7728-3-zhichao.gao@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7953e811-f065-4a7a-4a6d-08d7f7cbdc53 x-ms-traffictypediagnostic: DM6PR11MB4690: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 040359335D x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DjD5EaktlYeVUJzX1TaWJ16Eh0tHGs2MGYIxopAThO1Q4VkRGtjOf8YJ9tEKR0LgZEpyeC3kD8lwEXB1EAVmELgIBVY6zWCeUtnFVHyKXhkfDS6t8xBTLUrPkyIu0JpZrtx3DulQ/CUe51FWaJu1lMmXZL8ki8YwfzMgqBwJhvzo6BRiRZs1FoZCvCNw0s8c7KshIYMBj7eojoxX3UoGU6FtbPxGDjzehIuD0NAOKQyXfYWTe3gETkMbzku9eSLKzJBGNaL1Dj3YYA+jXiKM0EseyUgeEC6FgMAxFHDrRZKTIyGzqmpeiyeDGyd6OKT4aVoPwf7QbK9YP4Q3X6kzSlExD9fx9kqIZPzJQXnrtrFZOa6xkSSTcJY7QuXRn1IfSW8NMu12WMdHNxUILmPI/I+8zakvZJqugVg2qFKm1X5cp5SV7R0YQTbanVg8Q7YDr+gUE2MaC4DOMKbyUImnP6nHhWsfcGiivD40B8A9zEjARC7yvke6gsfhY/1Tc44ncJC4TqSWNVW2z0lqf5Engg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4425.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(396003)(346002)(136003)(366004)(39860400002)(376002)(55016002)(8936002)(8676002)(9686003)(66946007)(966005)(66476007)(4326008)(64756008)(71200400001)(478600001)(76116006)(66556008)(52536014)(30864003)(66446008)(19627235002)(316002)(6506007)(110136005)(5660300002)(54906003)(53546011)(86362001)(33656002)(26005)(186003)(7696005)(2906002)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: IU0RLI6MbApdis9eRVmDk9/joyRmRXNu88IQ4X9OYSSz66jlLsU2ko68JWILKU92q/RNLA1BfmuRFkrt7hUTc6BTsveu+cpDlhs3fpx9qhkzM716Pg0oOWeq+sCQfaJA5WyVo1/4eOCuvV4Zlofg1mXRfHSVBVAxxtzpuaYYUNTC6TPXIiBmVA42jdVMARIg0zvoCPj6ke+RiJyBxkenRiKw1aAe/qkSUPljTIP63ND+xPAfQToBajr8pRHf2MsY8wyXOuiW5zuHDuH1D7v+c+etM862e6iQM42wf928ye8s0o+X8ij6JaFvIDwTA2GbLcpy6HS8yXFvjDcHz/mhnTLZuThjlLJXsJKVaa2T/2RnWF31jSH6N2gufWDGMETccF/Dok/T25WS5tqCP2nRRrqZPGdnmzWfGH1+1EQItxo2xN/EwRDbX5d2turKx+P4FsW5lxaDxVfAXCagVrQIDPB9iJDqtVuhO4H2SvF/FphMh4bX/4U5EQrQJ1yOnwro MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 7953e811-f065-4a7a-4a6d-08d7f7cbdc53 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2020 05:58:44.0803 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: trCOKdQix+6FZ5VjKqeZbu57SbYpCgrpCyQBJiaeVSZWoWHHKM+8v/Avd8W1K3wWaj2f1ZUZWnyVKoqWrCFxeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4690 Return-Path: zhichao.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks for the reminder, Guomin. I would fix it in next patch set. Thanks, Zhichao > -----Original Message----- > From: Jiang, Guomin > Sent: Thursday, May 14, 2020 11:14 AM > To: devel@edk2.groups.io; Gao, Zhichao > Cc: Wang, Jian J ; Lu, XiaoyuX ; > Fu, Siyuan ; Kinney, Michael D > ; Yao, Jiewen ; Philip= pe > Mathieu-Daude > Subject: RE: [edk2-devel] [PATCH V4 02/11] CryptoPkg/BaseCrpytLib: Retir= e MD4 > algorithm >=20 > Add commit inline. >=20 > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of Gao, > > Zhichao > > Sent: Tuesday, May 12, 2020 2:27 AM > > To: devel@edk2.groups.io > > Cc: Wang, Jian J ; Lu, XiaoyuX > > ; Fu, Siyuan ; Kinney, Mich= ael > > D ; Yao, Jiewen ; > > Philippe Mathieu-Daude > > Subject: [edk2-devel] [PATCH V4 02/11] CryptoPkg/BaseCrpytLib: Retire = MD4 > > algorithm > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1898 > > > > MD4 is not secure any longer. > > Remove the MD4 support from edk2. > > Change the MD4 field name in EDKII_CRYPTO_PROTOCOL to indicate the > > function is unsupported any longer. > > > > Cc: Jian J Wang > > Cc: Xiaoyu Lu > > Cc: Siyuan Fu > > Cc: Michael D Kinney > > Cc: Jiewen Yao . >=20 > The Cc format is incorrect and please remove '.' character at the end of= line. >=20 > > Cc: Philippe Mathieu-Daude > > Signed-off-by: Zhichao Gao > > --- > > CryptoPkg/CryptoPkg.dsc | 1 - > > CryptoPkg/Driver/Crypto.c | 135 ++--------- > > CryptoPkg/Include/Library/BaseCryptLib.h | 145 ------------ > > .../Library/BaseCryptLib/BaseCryptLib.inf | 3 +- > > .../Library/BaseCryptLib/Hash/CryptMd4.c | 223 -----------------= - > > .../Library/BaseCryptLib/Hash/CryptMd4Null.c | 143 ----------- > > .../Library/BaseCryptLib/PeiCryptLib.inf | 5 +- > > .../Library/BaseCryptLib/PeiCryptLib.uni | 6 +- > > .../Library/BaseCryptLib/RuntimeCryptLib.inf | 5 +- > > .../Library/BaseCryptLib/RuntimeCryptLib.uni | 6 +- > > .../Library/BaseCryptLib/SmmCryptLib.inf | 5 +- > > .../Library/BaseCryptLib/SmmCryptLib.uni | 6 +- > > .../BaseCryptLibNull/BaseCryptLibNull.inf | 1 - > > .../BaseCryptLibNull/Hash/CryptMd4Null.c | 143 ----------- > > .../BaseCryptLibOnProtocolPpi/CryptLib.c | 158 ------------- > > CryptoPkg/Private/Protocol/Crypto.h | 123 ++-------- > > 16 files changed, 52 insertions(+), 1056 deletions(-) > > delete mode 100644 CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4.c > > delete mode 100644 CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4Null.c > > delete mode 100644 > > CryptoPkg/Library/BaseCryptLibNull/Hash/CryptMd4Null.c > > > > diff --git a/CryptoPkg/CryptoPkg.dsc b/CryptoPkg/CryptoPkg.dsc > > index f79ff331cf..6ed7046563 100644 > > --- a/CryptoPkg/CryptoPkg.dsc > > +++ b/CryptoPkg/CryptoPkg.dsc > > @@ -140,7 +140,6 @@ > > > > gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacMd5.Fa > > mily | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > > > gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha1.Fa > > mily | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > > > gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.HmacSha256. > > Family | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > - gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Md4.Family > > | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Md5.Family > > | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Pkcs.Famil= y > > | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > gEfiCryptoPkgTokenSpaceGuid.PcdCryptoServiceFamilyEnable.Dh.Family > > | PCD_CRYPTO_SERVICE_ENABLE_FAMILY > > diff --git a/CryptoPkg/Driver/Crypto.c b/CryptoPkg/Driver/Crypto.c > > index ed0083cccf..c7a54182c7 100644 > > --- a/CryptoPkg/Driver/Crypto.c > > +++ b/CryptoPkg/Driver/Crypto.c > > @@ -124,161 +124,68 @@ CryptoServiceGetCryptoVersion ( > > > > //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > > > /** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > operations. > > - > > - If this interface is not supported, then return zero. > > - > > - @return The size, in bytes, of the context buffer required for MD4= hash > > operations. > > - @retval 0 This interface is not supported. > > + MD4 is deprecated and unsupported any longer. > > + Keep the function field for binary compability. > > > > **/ > > UINTN > > EFIAPI > > -CryptoServiceMd4GetContextSize ( > > +DeprecatedCryptoServiceMd4GetContextSize ( > > VOID > > ) > > { > > - return CALL_BASECRYPTLIB (Md4.Services.GetContextSize, > > Md4GetContextSize, (), 0); > > + return BaseCryptLibServiceDeprecated ("Md4GetContextSize"), 0; > > } > > > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval TRUE MD4 context initialization succeeded. > > - @retval FALSE MD4 context initialization failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > BOOLEAN > > EFIAPI > > -CryptoServiceMd4Init ( > > +DeprecatedCryptoServiceMd4Init ( > > OUT VOID *Md4Context > > ) > > { > > - return CALL_BASECRYPTLIB (Md4.Services.Init, Md4Init, (Md4Context), > > FALSE); > > + return BaseCryptLibServiceDeprecated ("Md4Init"), FALSE; > > } > > > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - If Md4Context is NULL, then return FALSE. > > - If NewMd4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval TRUE MD4 context copy succeeded. > > - @retval FALSE MD4 context copy failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > BOOLEAN > > EFIAPI > > -CryptoServiceMd4Duplicate ( > > +DeprecatedCryptoServiceMd4Duplicate ( > > IN CONST VOID *Md4Context, > > OUT VOID *NewMd4Context > > ) > > { > > - return CALL_BASECRYPTLIB (Md4.Services.Duplicate, Md4Duplicate, > > (Md4Context, NewMd4Context), FALSE); > > + return BaseCryptLibServiceDeprecated ("Md4Duplicate"), FALSE; > > } > > > > -/** > > - Digests the input data and updates MD4 context. > > - > > - This function performs MD4 digest on a data buffer of the specified= size. > > - It can be called multiple times to compute the digest of long or > > discontinuous data streams. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be finalized > > - by Md4Final(). Behavior with invalid context is undefined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval TRUE MD4 data digest succeeded. > > - @retval FALSE MD4 data digest failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > BOOLEAN > > EFIAPI > > -CryptoServiceMd4Update ( > > +DeprecatedCryptoServiceMd4Update ( > > IN OUT VOID *Md4Context, > > IN CONST VOID *Data, > > IN UINTN DataSize > > ) > > { > > - return CALL_BASECRYPTLIB (Md4.Services.Update, Md4Update, > > (Md4Context, Data, DataSize), FALSE); > > + return BaseCryptLibServiceDeprecated ("Md4Update"), FALSE; > > } > > > > -/** > > - Completes computation of the MD4 digest value. > > - > > - This function completes MD4 hash computation and retrieves the dige= st > > value into > > - the specified memory. After this function has been called, the MD4 = context > > cannot > > - be used again. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be > > - finalized by Md4Final(). Behavior with invalid MD4 context is undef= ined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If HashValue is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > BOOLEAN > > EFIAPI > > -CryptoServiceMd4Final ( > > +DeprecatedCryptoServiceMd4Final ( > > IN OUT VOID *Md4Context, > > OUT UINT8 *HashValue > > ) > > { > > - return CALL_BASECRYPTLIB (Md4.Services.Final, Md4Final, (Md4Context= , > > HashValue), FALSE); > > + return BaseCryptLibServiceDeprecated ("Md4Final"), FALSE; > > } > > > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - This function performs the MD4 message digest of a given data buffe= r, and > > places > > - the digest value into the specified memory. > > - > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > BOOLEAN > > EFIAPI > > -CryptoServiceMd4HashAll ( > > +DeprecatedCryptoServiceMd4HashAll ( > > IN CONST VOID *Data, > > IN UINTN DataSize, > > OUT UINT8 *HashValue > > ) > > { > > - return CALL_BASECRYPTLIB (Md4.Services.HashAll, Md4HashAll, (Data, > > DataSize, HashValue), FALSE); > > + return BaseCryptLibServiceDeprecated ("Md4HashAll"), FALSE; > > } > > > > /** > > @@ -4440,13 +4347,13 @@ const EDKII_CRYPTO_PROTOCOL mEdkiiCrypto =3D > > { > > CryptoServiceHmacSha256Duplicate, > > CryptoServiceHmacSha256Update, > > CryptoServiceHmacSha256Final, > > - /// Md4 > > - CryptoServiceMd4GetContextSize, > > - CryptoServiceMd4Init, > > - CryptoServiceMd4Duplicate, > > - CryptoServiceMd4Update, > > - CryptoServiceMd4Final, > > - CryptoServiceMd4HashAll, > > + /// Md4 - deprecated and unsupported > > + DeprecatedCryptoServiceMd4GetContextSize, > > + DeprecatedCryptoServiceMd4Init, > > + DeprecatedCryptoServiceMd4Duplicate, > > + DeprecatedCryptoServiceMd4Update, > > + DeprecatedCryptoServiceMd4Final, > > + DeprecatedCryptoServiceMd4HashAll, > > /// Md5 > > CryptoServiceMd5GetContextSize, > > CryptoServiceMd5Init, > > diff --git a/CryptoPkg/Include/Library/BaseCryptLib.h > > b/CryptoPkg/Include/Library/BaseCryptLib.h > > index 5e8f2e0a10..c862f0334f 100644 > > --- a/CryptoPkg/Include/Library/BaseCryptLib.h > > +++ b/CryptoPkg/Include/Library/BaseCryptLib.h > > @@ -14,11 +14,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > > > #include > > > > -/// > > -/// MD4 digest size in bytes > > -/// > > -#define MD4_DIGEST_SIZE 16 > > - > > /// > > /// MD5 digest size in bytes > > /// > > @@ -77,146 +72,6 @@ typedef enum { > > // One-Way Cryptographic Hash Primitives > > > > //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > > > -/** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > operations. > > - > > - If this interface is not supported, then return zero. > > - > > - @return The size, in bytes, of the context buffer required for MD4= hash > > operations. > > - @retval 0 This interface is not supported. > > - > > -**/ > > -UINTN > > -EFIAPI > > -Md4GetContextSize ( > > - VOID > > - ); > > - > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval TRUE MD4 context initialization succeeded. > > - @retval FALSE MD4 context initialization failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Init ( > > - OUT VOID *Md4Context > > - ); > > - > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - If Md4Context is NULL, then return FALSE. > > - If NewMd4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval TRUE MD4 context copy succeeded. > > - @retval FALSE MD4 context copy failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Duplicate ( > > - IN CONST VOID *Md4Context, > > - OUT VOID *NewMd4Context > > - ); > > - > > -/** > > - Digests the input data and updates MD4 context. > > - > > - This function performs MD4 digest on a data buffer of the specified= size. > > - It can be called multiple times to compute the digest of long or > > discontinuous data streams. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be finalized > > - by Md4Final(). Behavior with invalid context is undefined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval TRUE MD4 data digest succeeded. > > - @retval FALSE MD4 data digest failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Update ( > > - IN OUT VOID *Md4Context, > > - IN CONST VOID *Data, > > - IN UINTN DataSize > > - ); > > - > > -/** > > - Completes computation of the MD4 digest value. > > - > > - This function completes MD4 hash computation and retrieves the dige= st > > value into > > - the specified memory. After this function has been called, the MD4 = context > > cannot > > - be used again. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be > > - finalized by Md4Final(). Behavior with invalid MD4 context is undef= ined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If HashValue is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Final ( > > - IN OUT VOID *Md4Context, > > - OUT UINT8 *HashValue > > - ); > > - > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - This function performs the MD4 message digest of a given data buffe= r, and > > places > > - the digest value into the specified memory. > > - > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4HashAll ( > > - IN CONST VOID *Data, > > - IN UINTN DataSize, > > - OUT UINT8 *HashValue > > - ); > > - > > /** > > Retrieves the size, in bytes, of the context buffer required for MD= 5 hash > > operations. > > > > diff --git a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > > b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > > index a63ad66b4f..22992e7d43 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > > +++ b/CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf > > @@ -6,7 +6,7 @@ > > # This external input must be validated carefully to avoid security = issues > > such as > > # buffer overflow or integer overflow. > > # > > -# Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.=
> > +# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.=
> > # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All= rights > > reserved.
> > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > @@ -29,7 +29,6 @@ > > > > [Sources] > > InternalCryptLib.h > > - Hash/CryptMd4.c > > Hash/CryptMd5.c > > Hash/CryptSha1.c > > Hash/CryptSha256.c > > diff --git a/CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4.c > > b/CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4.c > > deleted file mode 100644 > > index bc02da07b0..0000000000 > > --- a/CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4.c > > +++ /dev/null > > @@ -1,223 +0,0 @@ > > -/** @file > > - MD4 Digest Wrapper Implementation over OpenSSL. > > - > > -Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved. > > -SPDX-License-Identifier: BSD-2-Clause-Patent > > - > > -**/ > > - > > -#include "InternalCryptLib.h" > > -#include > > - > > -/** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > operations. > > - > > - @return The size, in bytes, of the context buffer required for MD4= hash > > operations. > > - > > -**/ > > -UINTN > > -EFIAPI > > -Md4GetContextSize ( > > - VOID > > - ) > > -{ > > - // > > - // Retrieves the OpenSSL MD4 Context Size > > - // > > - return (UINTN) (sizeof (MD4_CTX)); > > -} > > - > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - If Md4Context is NULL, then return FALSE. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval TRUE MD4 context initialization succeeded. > > - @retval FALSE MD4 context initialization failed. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Init ( > > - OUT VOID *Md4Context > > - ) > > -{ > > - // > > - // Check input parameters. > > - // > > - if (Md4Context =3D=3D NULL) { > > - return FALSE; > > - } > > - > > - // > > - // OpenSSL MD4 Context Initialization > > - // > > - return (BOOLEAN) (MD4_Init ((MD4_CTX *) Md4Context)); > > -} > > - > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - If Md4Context is NULL, then return FALSE. > > - If NewMd4Context is NULL, then return FALSE. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval TRUE MD4 context copy succeeded. > > - @retval FALSE MD4 context copy failed. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Duplicate ( > > - IN CONST VOID *Md4Context, > > - OUT VOID *NewMd4Context > > - ) > > -{ > > - // > > - // Check input parameters. > > - // > > - if (Md4Context =3D=3D NULL || NewMd4Context =3D=3D NULL) { > > - return FALSE; > > - } > > - > > - CopyMem (NewMd4Context, Md4Context, sizeof (MD4_CTX)); > > - > > - return TRUE; > > -} > > - > > -/** > > - Digests the input data and updates MD4 context. > > - > > - This function performs MD4 digest on a data buffer of the specified= size. > > - It can be called multiple times to compute the digest of long or > > discontinuous data streams. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be finalized > > - by Md4Final(). Behavior with invalid context is undefined. > > - > > - If Md4Context is NULL, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval TRUE MD4 data digest succeeded. > > - @retval FALSE MD4 data digest failed. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Update ( > > - IN OUT VOID *Md4Context, > > - IN CONST VOID *Data, > > - IN UINTN DataSize > > - ) > > -{ > > - // > > - // Check input parameters. > > - // > > - if (Md4Context =3D=3D NULL) { > > - return FALSE; > > - } > > - > > - // > > - // Check invalid parameters, in case that only DataLength was check= ed in > > OpenSSL > > - // > > - if (Data =3D=3D NULL && DataSize !=3D 0) { > > - return FALSE; > > - } > > - > > - // > > - // OpenSSL MD4 Hash Update > > - // > > - return (BOOLEAN) (MD4_Update ((MD4_CTX *) Md4Context, Data, > > DataSize)); > > -} > > - > > -/** > > - Completes computation of the MD4 digest value. > > - > > - This function completes MD4 hash computation and retrieves the dige= st > > value into > > - the specified memory. After this function has been called, the MD4 = context > > cannot > > - be used again. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be > > - finalized by Md4Final(). Behavior with invalid MD4 context is undef= ined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If HashValue is NULL, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Final ( > > - IN OUT VOID *Md4Context, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - // > > - // Check input parameters. > > - // > > - if (Md4Context =3D=3D NULL || HashValue =3D=3D NULL) { > > - return FALSE; > > - } > > - > > - // > > - // OpenSSL MD4 Hash Finalization > > - // > > - return (BOOLEAN) (MD4_Final (HashValue, (MD4_CTX *) Md4Context)); > > -} > > - > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - This function performs the MD4 message digest of a given data buffe= r, and > > places > > - the digest value into the specified memory. > > - > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4HashAll ( > > - IN CONST VOID *Data, > > - IN UINTN DataSize, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - // > > - // Check input parameters. > > - // > > - if (HashValue =3D=3D NULL) { > > - return FALSE; > > - } > > - if (Data =3D=3D NULL && DataSize !=3D 0) { > > - return FALSE; > > - } > > - > > - // > > - // OpenSSL MD4 Hash Computation. > > - // > > - if (MD4 (Data, DataSize, HashValue) =3D=3D NULL) { > > - return FALSE; > > - } else { > > - return TRUE; > > - } > > -} > > diff --git a/CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4Null.c > > b/CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4Null.c > > deleted file mode 100644 > > index 610c61c713..0000000000 > > --- a/CryptoPkg/Library/BaseCryptLib/Hash/CryptMd4Null.c > > +++ /dev/null > > @@ -1,143 +0,0 @@ > > -/** @file > > - MD4 Digest Wrapper Implementation which does not provide real > > capabilities. > > - > > -Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved. > > -SPDX-License-Identifier: BSD-2-Clause-Patent > > - > > -**/ > > - > > -#include "InternalCryptLib.h" > > - > > -/** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > - operations. > > - > > - Return zero to indicate this interface is not supported. > > - > > - @retval 0 This interface is not supported. > > - > > -**/ > > -UINTN > > -EFIAPI > > -Md4GetContextSize ( > > - VOID > > - ) > > -{ > > - ASSERT (FALSE); > > - return 0; > > -} > > - > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Init ( > > - OUT VOID *Md4Context > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Duplicate ( > > - IN CONST VOID *Md4Context, > > - OUT VOID *NewMd4Context > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Digests the input data and updates MD4 context. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Update ( > > - IN OUT VOID *Md4Context, > > - IN CONST VOID *Data, > > - IN UINTN DataSize > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Completes computation of the MD4 digest value. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Final ( > > - IN OUT VOID *Md4Context, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4HashAll ( > > - IN CONST VOID *Data, > > - IN UINTN DataSize, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > diff --git a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf > > b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf > > index c836c257f8..e9add0127d 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf > > +++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf > > @@ -6,14 +6,14 @@ > > # This external input must be validated carefully to avoid security = issues > > such as > > # buffer overflow or integer overflow. > > # > > -# Note: MD4 Digest functions, > > +# Note: > > # HMAC-MD5 functions, HMAC-SHA1/SHA256 functions, AES/TDES/ARC4 > > functions, RSA external > > # functions, PKCS#7 SignedData sign functions, Diffie-Hellman functi= ons, > > X.509 > > # certificate handler functions, authenticode signature verification > > functions, > > # PEM handler functions, and pseudorandom number generator functions > > are not > > # supported in this instance. > > # > > -# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.=
> > +# Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.=
> > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > ## > > @@ -35,7 +35,6 @@ > > > > [Sources] > > InternalCryptLib.h > > - Hash/CryptMd4Null.c > > Hash/CryptMd5.c > > Hash/CryptSha1.c > > Hash/CryptSha256.c > > diff --git a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.uni > > b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.uni > > index 9937555beb..374bfb3f65 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.uni > > +++ b/CryptoPkg/Library/BaseCryptLib/PeiCryptLib.uni > > @@ -6,13 +6,13 @@ > > // This external input must be validated carefully to avoid security = issues > > such as > > // buffer overflow or integer overflow. > > // > > -// Note: MD4 Digest functions, HMAC-MD5 functions, HMAC-SHA1 > > functions, AES/ > > +// Note: HMAC-MD5 functions, HMAC-SHA1 functions, AES/ > > // TDES/ARC4 functions, RSA external functions, PKCS#7 SignedData sig= n > > functions, > > // Diffie-Hellman functions, X.509 certificate handler functions, aut= henticode > > // signature verification functions, PEM handler functions, and > > pseudorandom number > > // generator functions are not supported in this instance. > > // > > -// Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.=
> > +// Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.=
> > // > > // SPDX-License-Identifier: BSD-2-Clause-Patent > > // > > @@ -21,5 +21,5 @@ > > > > #string STR_MODULE_ABSTRACT #language en-US "Cryptographi= c > > Library Instance for PEIM" > > > > -#string STR_MODULE_DESCRIPTION #language en-US "Caution: Thi= s > > module requires additional review when modified. This library will hav= e > > external input - signature. This external input must be validated care= fully to > > avoid security issues such as buffer overflow or integer overflow. Not= e: MD4 > > Digest functions, HMAC-MD5 functions, HMAC-SHA1 functions, AES/ > > TDES/ARC4 functions, RSA external functions, PKCS#7 SignedData sign > > functions, Diffie-Hellman functions, X.509 certificate handler functio= ns, > > authenticode signature verification functions, PEM handler functions, = and > > pseudorandom number generator functions are not supported in this > > instance." > > +#string STR_MODULE_DESCRIPTION #language en-US "Caution: Thi= s > > module requires additional review when modified. This library will hav= e > > external input - signature. This external input must be validated care= fully to > > avoid security issues such as buffer overflow or integer overflow. Not= e: > > HMAC-MD5 functions, HMAC-SHA1 functions, AES/ TDES/ARC4 functions, > > RSA external functions, PKCS#7 SignedData sign functions, Diffie-Hellm= an > > functions, X.509 certificate handler functions, authenticode signature > > verification functions, PEM handler functions, and pseudorandom number > > generator functions are not supported in this instance." > > > > diff --git a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > > b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > > index e5b8ececc1..0a2eb03232 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > > +++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf > > @@ -6,12 +6,12 @@ > > # This external input must be validated carefully to avoid security = issues > > such as > > # buffer overflow or integer overflow. > > # > > -# Note: MD4 Digest functions, SHA-384 Digest functions, SHA-512 Dige= st > > functions, > > +# Note: SHA-384 Digest functions, SHA-512 Digest functions, > > # HMAC-MD5 functions, HMAC-SHA1/SHA256 functions, AES/TDES/ARC4 > > functions, RSA external > > # functions, PKCS#7 SignedData sign functions, Diffie-Hellman functi= ons, > > and > > # authenticode signature verification functions are not supported in= this > > instance. > > # > > -# Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.=
> > +# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.=
> > # Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All= rights > > reserved.
> > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > @@ -35,7 +35,6 @@ > > > > [Sources] > > InternalCryptLib.h > > - Hash/CryptMd4Null.c > > Hash/CryptMd5.c > > Hash/CryptSha1.c > > Hash/CryptSha256.c > > diff --git a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.uni > > b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.uni > > index c0a16f1b84..b6d751176e 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.uni > > +++ b/CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.uni > > @@ -6,12 +6,12 @@ > > // This external input must be validated carefully to avoid security = issues > > such as > > // buffer overflow or integer overflow. > > // > > -// Note: MD4 Digest functions, HMAC-MD5 functions, HMAC-SHA1 > > functions, AES/ > > +// Note: HMAC-MD5 functions, HMAC-SHA1 functions, AES/ > > // TDES/ARC4 functions, RSA external functions, PKCS#7 SignedData sig= n > > functions, > > // Diffie-Hellman functions, and authenticode signature verification > > functions are > > // not supported in this instance. > > // > > -// Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.=
> > +// Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.=
> > // > > // SPDX-License-Identifier: BSD-2-Clause-Patent > > // > > @@ -20,5 +20,5 @@ > > > > #string STR_MODULE_ABSTRACT #language en-US "Cryptographi= c > > Library Instance for DXE_RUNTIME_DRIVER" > > > > -#string STR_MODULE_DESCRIPTION #language en-US "Caution: Thi= s > > module requires additional review when modified. This library will hav= e > > external input - signature. This external input must be validated care= fully to > > avoid security issues such as buffer overflow or integer overflow. Not= e: MD4 > > Digest functions, HMAC-MD5 functions, HMAC-SHA1 functions, AES/ > > TDES/ARC4 functions, RSA external functions, PKCS#7 SignedData sign > > functions, Diffie-Hellman functions, and authenticode signature verifi= cation > > functions are not supported in this instance." > > +#string STR_MODULE_DESCRIPTION #language en-US "Caution: Thi= s > > module requires additional review when modified. This library will hav= e > > external input - signature. This external input must be validated care= fully to > > avoid security issues such as buffer overflow or integer overflow. Not= e: > > HMAC-MD5 functions, HMAC-SHA1 functions, AES/ TDES/ARC4 functions, > > RSA external functions, PKCS#7 SignedData sign functions, Diffie-Hellm= an > > functions, and authenticode signature verification functions are not > > supported in this instance." > > > > diff --git a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf > > b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf > > index cc0b65fd25..139983075e 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf > > +++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf > > @@ -6,12 +6,12 @@ > > # This external input must be validated carefully to avoid security = issues > > such as > > # buffer overflow or integer overflow. > > # > > -# Note: MD4 Digest functions, SHA-384 Digest functions, SHA-512 Dige= st > > functions, > > +# Note: SHA-384 Digest functions, SHA-512 Digest functions, > > # HMAC-MD5 functions, HMAC-SHA1 functions, TDES/ARC4 functions, RSA > > external > > # functions, PKCS#7 SignedData sign functions, Diffie-Hellman functi= ons, > > and > > # authenticode signature verification functions are not supported in= this > > instance. > > # > > -# Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.=
> > +# Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.=
> > # SPDX-License-Identifier: BSD-2-Clause-Patent > > # > > ## > > @@ -34,7 +34,6 @@ > > > > [Sources] > > InternalCryptLib.h > > - Hash/CryptMd4Null.c > > Hash/CryptMd5.c > > Hash/CryptSha1.c > > Hash/CryptSha256.c > > diff --git a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.uni > > b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.uni > > index 83485fbb90..b8d7953d2b 100644 > > --- a/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.uni > > +++ b/CryptoPkg/Library/BaseCryptLib/SmmCryptLib.uni > > @@ -6,12 +6,12 @@ > > // This external input must be validated carefully to avoid security = issues > > such as > > // buffer overflow or integer overflow. > > // > > -// Note: MD4 Digest functions, HMAC-MD5 functions, HMAC-SHA1 > > functions, AES/ > > +// Note: HMAC-MD5 functions, HMAC-SHA1 functions, AES/ > > // TDES/ARC4 functions, RSA external functions, PKCS#7 SignedData sig= n > > functions, > > // Diffie-Hellman functions, and authenticode signature verification > > functions are > > // not supported in this instance. > > // > > -// Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.=
> > +// Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.=
> > // > > // SPDX-License-Identifier: BSD-2-Clause-Patent > > // > > @@ -20,5 +20,5 @@ > > > > #string STR_MODULE_ABSTRACT #language en-US "Cryptographi= c > > Library Instance for SMM driver" > > > > -#string STR_MODULE_DESCRIPTION #language en-US "Caution: Thi= s > > module requires additional review when modified. This library will hav= e > > external input - signature. This external input must be validated care= fully to > > avoid security issues such as buffer overflow or integer overflow. Not= e: MD4 > > Digest functions, HMAC-MD5 functions, HMAC-SHA1 functions, AES/ > > TDES/ARC4 functions, RSA external functions, PKCS#7 SignedData sign > > functions, Diffie-Hellman functions, and authenticode signature verifi= cation > > functions are not supported in this instance." > > +#string STR_MODULE_DESCRIPTION #language en-US "Caution: Thi= s > > module requires additional review when modified. This library will hav= e > > external input - signature. This external input must be validated care= fully to > > avoid security issues such as buffer overflow or integer overflow. Not= e: > > HMAC-MD5 functions, HMAC-SHA1 functions, AES/ TDES/ARC4 functions, > > RSA external functions, PKCS#7 SignedData sign functions, Diffie-Hellm= an > > functions, and authenticode signature verification functions are not > > supported in this instance." > > > > diff --git a/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf > > b/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf > > index 9b4991cbb0..b03681b146 100644 > > --- a/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf > > +++ b/CryptoPkg/Library/BaseCryptLibNull/BaseCryptLibNull.inf > > @@ -29,7 +29,6 @@ > > > > [Sources] > > InternalCryptLib.h > > - Hash/CryptMd4Null.c > > Hash/CryptMd5Null.c > > Hash/CryptSha1Null.c > > Hash/CryptSha256Null.c > > diff --git a/CryptoPkg/Library/BaseCryptLibNull/Hash/CryptMd4Null.c > > b/CryptoPkg/Library/BaseCryptLibNull/Hash/CryptMd4Null.c > > deleted file mode 100644 > > index 610c61c713..0000000000 > > --- a/CryptoPkg/Library/BaseCryptLibNull/Hash/CryptMd4Null.c > > +++ /dev/null > > @@ -1,143 +0,0 @@ > > -/** @file > > - MD4 Digest Wrapper Implementation which does not provide real > > capabilities. > > - > > -Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved. > > -SPDX-License-Identifier: BSD-2-Clause-Patent > > - > > -**/ > > - > > -#include "InternalCryptLib.h" > > - > > -/** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > - operations. > > - > > - Return zero to indicate this interface is not supported. > > - > > - @retval 0 This interface is not supported. > > - > > -**/ > > -UINTN > > -EFIAPI > > -Md4GetContextSize ( > > - VOID > > - ) > > -{ > > - ASSERT (FALSE); > > - return 0; > > -} > > - > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Init ( > > - OUT VOID *Md4Context > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Duplicate ( > > - IN CONST VOID *Md4Context, > > - OUT VOID *NewMd4Context > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Digests the input data and updates MD4 context. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Update ( > > - IN OUT VOID *Md4Context, > > - IN CONST VOID *Data, > > - IN UINTN DataSize > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Completes computation of the MD4 digest value. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Final ( > > - IN OUT VOID *Md4Context, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > - > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - Return FALSE to indicate this interface is not supported. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4HashAll ( > > - IN CONST VOID *Data, > > - IN UINTN DataSize, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - ASSERT (FALSE); > > - return FALSE; > > -} > > diff --git a/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c > > b/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c > > index c2a1df9afc..5e470028f4 100644 > > --- a/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c > > +++ b/CryptoPkg/Library/BaseCryptLibOnProtocolPpi/CryptLib.c > > @@ -99,164 +99,6 @@ CryptoServiceNotAvailable ( > > // One-Way Cryptographic Hash Primitives > > > > //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > > > -/** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > operations. > > - > > - If this interface is not supported, then return zero. > > - > > - @return The size, in bytes, of the context buffer required for MD4= hash > > operations. > > - @retval 0 This interface is not supported. > > - > > -**/ > > -UINTN > > -EFIAPI > > -Md4GetContextSize ( > > - VOID > > - ) > > -{ > > - CALL_CRYPTO_SERVICE (Md4GetContextSize, (), 0); > > -} > > - > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval TRUE MD4 context initialization succeeded. > > - @retval FALSE MD4 context initialization failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Init ( > > - OUT VOID *Md4Context > > - ) > > -{ > > - CALL_CRYPTO_SERVICE (Md4Init, (Md4Context), FALSE); > > -} > > - > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - If Md4Context is NULL, then return FALSE. > > - If NewMd4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval TRUE MD4 context copy succeeded. > > - @retval FALSE MD4 context copy failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Duplicate ( > > - IN CONST VOID *Md4Context, > > - OUT VOID *NewMd4Context > > - ) > > -{ > > - CALL_CRYPTO_SERVICE (Md4Duplicate, (Md4Context, NewMd4Context), > > FALSE); > > -} > > - > > -/** > > - Digests the input data and updates MD4 context. > > - > > - This function performs MD4 digest on a data buffer of the specified= size. > > - It can be called multiple times to compute the digest of long or > > discontinuous data streams. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be finalized > > - by Md4Final(). Behavior with invalid context is undefined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval TRUE MD4 data digest succeeded. > > - @retval FALSE MD4 data digest failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Update ( > > - IN OUT VOID *Md4Context, > > - IN CONST VOID *Data, > > - IN UINTN DataSize > > - ) > > -{ > > - CALL_CRYPTO_SERVICE (Md4Update, (Md4Context, Data, DataSize), > > FALSE); > > -} > > - > > -/** > > - Completes computation of the MD4 digest value. > > - > > - This function completes MD4 hash computation and retrieves the dige= st > > value into > > - the specified memory. After this function has been called, the MD4 = context > > cannot > > - be used again. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be > > - finalized by Md4Final(). Behavior with invalid MD4 context is undef= ined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If HashValue is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4Final ( > > - IN OUT VOID *Md4Context, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - CALL_CRYPTO_SERVICE (Md4Final, (Md4Context, HashValue), FALSE); > > -} > > - > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - This function performs the MD4 message digest of a given data buffe= r, and > > places > > - the digest value into the specified memory. > > - > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > -BOOLEAN > > -EFIAPI > > -Md4HashAll ( > > - IN CONST VOID *Data, > > - IN UINTN DataSize, > > - OUT UINT8 *HashValue > > - ) > > -{ > > - CALL_CRYPTO_SERVICE (Md4HashAll, (Data, DataSize, HashValue), FALSE= ); > > -} > > - > > /** > > Retrieves the size, in bytes, of the context buffer required for MD= 5 hash > > operations. > > > > diff --git a/CryptoPkg/Private/Protocol/Crypto.h > > b/CryptoPkg/Private/Protocol/Crypto.h > > index 40c387e002..ae0f29695c 100644 > > --- a/CryptoPkg/Private/Protocol/Crypto.h > > +++ b/CryptoPkg/Private/Protocol/Crypto.h > > @@ -451,145 +451,52 @@ BOOLEAN > > > > //=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > > > /** > > - Retrieves the size, in bytes, of the context buffer required for MD= 4 hash > > operations. > > - > > - If this interface is not supported, then return zero. > > - > > - @return The size, in bytes, of the context buffer required for MD4= hash > > operations. > > - @retval 0 This interface is not supported. > > + MD4 is deprecated and unsupported any longer. > > + Keep the function field for binary compability. > > > > **/ > > typedef > > UINTN > > -(EFIAPI *EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE) ( > > +(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE) ( > > VOID > > ); > > > > > > -/** > > - Initializes user-supplied memory pointed by Md4Context as MD4 hash > > context for > > - subsequent use. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[out] Md4Context Pointer to MD4 context being initialized. > > - > > - @retval TRUE MD4 context initialization succeeded. > > - @retval FALSE MD4 context initialization failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > typedef > > BOOLEAN > > -(EFIAPI *EDKII_CRYPTO_MD4_INIT) ( > > +(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_INIT) ( > > OUT VOID *Md4Context > > ); > > > > > > -/** > > - Makes a copy of an existing MD4 context. > > - > > - If Md4Context is NULL, then return FALSE. > > - If NewMd4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Md4Context Pointer to MD4 context being copied. > > - @param[out] NewMd4Context Pointer to new MD4 context. > > - > > - @retval TRUE MD4 context copy succeeded. > > - @retval FALSE MD4 context copy failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > typedef > > BOOLEAN > > -(EFIAPI *EDKII_CRYPTO_MD4_DUPLICATE) ( > > +(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_DUPLICATE) ( > > IN CONST VOID *Md4Context, > > OUT VOID *NewMd4Context > > ); > > > > > > -/** > > - Digests the input data and updates MD4 context. > > - > > - This function performs MD4 digest on a data buffer of the specified= size. > > - It can be called multiple times to compute the digest of long or > > discontinuous data streams. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be finalized > > - by Md4Final(). Behavior with invalid context is undefined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[in] Data Pointer to the buffer containing the d= ata to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - > > - @retval TRUE MD4 data digest succeeded. > > - @retval FALSE MD4 data digest failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > typedef > > BOOLEAN > > -(EFIAPI *EDKII_CRYPTO_MD4_UPDATE) ( > > +(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_UPDATE) ( > > IN OUT VOID *Md4Context, > > IN CONST VOID *Data, > > IN UINTN DataSize > > ); > > > > > > -/** > > - Completes computation of the MD4 digest value. > > - > > - This function completes MD4 hash computation and retrieves the dige= st > > value into > > - the specified memory. After this function has been called, the MD4 = context > > cannot > > - be used again. > > - MD4 context should be already correctly initialized by Md4Init(), a= nd should > > not be > > - finalized by Md4Final(). Behavior with invalid MD4 context is undef= ined. > > - > > - If Md4Context is NULL, then return FALSE. > > - If HashValue is NULL, then return FALSE. > > - If this interface is not supported, then return FALSE. > > - > > - @param[in, out] Md4Context Pointer to the MD4 context. > > - @param[out] HashValue Pointer to a buffer that receives the = MD4 > > digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > typedef > > BOOLEAN > > -(EFIAPI *EDKII_CRYPTO_MD4_FINAL) ( > > +(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_FINAL) ( > > IN OUT VOID *Md4Context, > > OUT UINT8 *HashValue > > ); > > > > > > -/** > > - Computes the MD4 message digest of a input data buffer. > > - > > - This function performs the MD4 message digest of a given data buffe= r, and > > places > > - the digest value into the specified memory. > > - > > - If this interface is not supported, then return FALSE. > > - > > - @param[in] Data Pointer to the buffer containing the data = to be > > hashed. > > - @param[in] DataSize Size of Data buffer in bytes. > > - @param[out] HashValue Pointer to a buffer that receives the MD4 = digest > > - value (16 bytes). > > - > > - @retval TRUE MD4 digest computation succeeded. > > - @retval FALSE MD4 digest computation failed. > > - @retval FALSE This interface is not supported. > > - > > -**/ > > typedef > > BOOLEAN > > -(EFIAPI *EDKII_CRYPTO_MD4_HASH_ALL) ( > > +(EFIAPI *DEPRECATED_EDKII_CRYPTO_MD4_HASH_ALL) ( > > IN CONST VOID *Data, > > IN UINTN DataSize, > > OUT UINT8 *HashValue > > @@ -4007,13 +3914,13 @@ struct _EDKII_CRYPTO_PROTOCOL { > > EDKII_CRYPTO_HMAC_SHA256_DUPLICATE HmacSha256Duplicate= ; > > EDKII_CRYPTO_HMAC_SHA256_UPDATE HmacSha256Update; > > EDKII_CRYPTO_HMAC_SHA256_FINAL HmacSha256Final; > > - /// Md4 > > - EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE Md4GetContextSize; > > - EDKII_CRYPTO_MD4_INIT Md4Init; > > - EDKII_CRYPTO_MD4_DUPLICATE Md4Duplicate; > > - EDKII_CRYPTO_MD4_UPDATE Md4Update; > > - EDKII_CRYPTO_MD4_FINAL Md4Final; > > - EDKII_CRYPTO_MD4_HASH_ALL Md4HashAll; > > + /// Md4 - deprecated and unsupported > > + DEPRECATED_EDKII_CRYPTO_MD4_GET_CONTEXT_SIZE > > DeprecatedMd4GetContextSize; > > + DEPRECATED_EDKII_CRYPTO_MD4_INIT DeprecatedMd4Init; > > + DEPRECATED_EDKII_CRYPTO_MD4_DUPLICATE > > DeprecatedMd4Duplicate; > > + DEPRECATED_EDKII_CRYPTO_MD4_UPDATE > > DeprecatedMd4Update; > > + DEPRECATED_EDKII_CRYPTO_MD4_FINAL DeprecatedMd4Final; > > + DEPRECATED_EDKII_CRYPTO_MD4_HASH_ALL > > DeprecatedMd4HashAll; > > /// Md5 > > EDKII_CRYPTO_MD5_GET_CONTEXT_SIZE Md5GetContextSize; > > EDKII_CRYPTO_MD5_INIT Md5Init; > > -- > > 2.21.0.windows.1 > > > > > >=20