CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf\r
CryptoPkg/Library/OpensslLib/OpensslLib.inf\r
CryptoPkg/Library/OpensslLib/OpensslLibFull.inf\r
+ CryptoPkg/Library/OpensslLib/OpensslLibSm3.inf\r
CryptoPkg/Library/BaseHashApiLib/BaseHashApiLib.inf\r
CryptoPkg/Library/BaseCryptLibOnProtocolPpi/PeiCryptLib.inf\r
CryptoPkg/Library/BaseCryptLibOnProtocolPpi/DxeCryptLib.inf\r
--- /dev/null
+## @file\r
+# Minimal OpensslLib implementation that only provides SM3 and nothing else.\r
+# Needed by MbedTlsLib.\r
+#\r
+# Copyright (c) 2024, Google LLC. All rights reserved.<BR>\r
+#\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+#\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 1.30\r
+ BASE_NAME = OpensslLibSm3\r
+ FILE_GUID = 96469bab-9c3f-4a60-a583-71a8bda64ec9\r
+ MODULE_TYPE = BASE\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = OpensslLib\r
+\r
+ DEFINE OPENSSL_PATH = openssl\r
+\r
+[Sources]\r
+ $(OPENSSL_PATH)/crypto/sm3/sm3.c\r
+ OpensslStub/OpensslCleanse.c\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ CryptoPkg/CryptoPkg.dec\r
+\r
+[LibraryClasses]\r
+ BaseMemoryLib\r
--- /dev/null
+/** @file\r
+ Minimal implementation of OPENSSL_cleanse for OpensslLibSm3.inf.\r
+\r
+ Copyright (c) 2024, Google LLC. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <Base.h>\r
+#include <Library/BaseMemoryLib.h>\r
+\r
+VOID\r
+OPENSSL_cleanse (\r
+ VOID *Buffer,\r
+ UINTN Size\r
+ )\r
+{\r
+ ZeroMem (Buffer, Size);\r
+}\r