]> xenbits.xensource.com Git - people/aperard/ovmf.git/commitdiff
CryptoPkg/OpensslLib: Create SM3-only version of the library master
authorArd Biesheuvel <ardb@kernel.org>
Fri, 13 Sep 2024 11:00:19 +0000 (13:00 +0200)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 23 Sep 2024 06:11:25 +0000 (06:11 +0000)
Create a special OpensslLib implementation that only exposes the SM3
routines that MbedTlsLib borrows from OpensslLib, to avoid having to
pull in other parts of OpenSSL that are not needed (e.g., via the
library constructor)

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
CryptoPkg/CryptoPkg.dsc
CryptoPkg/Library/OpensslLib/OpensslLibSm3.inf [new file with mode: 0644]
CryptoPkg/Library/OpensslLib/OpensslStub/OpensslCleanse.c [new file with mode: 0644]

index f23fb6f945e1dafa4d03ebd9b2b6b13829e1aec0..d4400696b8ac7eb053b373d4f8da50415e34ce1b 100644 (file)
   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
diff --git a/CryptoPkg/Library/OpensslLib/OpensslLibSm3.inf b/CryptoPkg/Library/OpensslLib/OpensslLibSm3.inf
new file mode 100644 (file)
index 0000000..9e36490
--- /dev/null
@@ -0,0 +1,30 @@
+## @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
diff --git a/CryptoPkg/Library/OpensslLib/OpensslStub/OpensslCleanse.c b/CryptoPkg/Library/OpensslLib/OpensslStub/OpensslCleanse.c
new file mode 100644 (file)
index 0000000..21c9399
--- /dev/null
@@ -0,0 +1,20 @@
+/** @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