diff --git a/Include/Acidanthera/Library/OcAppleChunklistLib.h b/Include/Acidanthera/Library/OcAppleChunklistLib.h index fda9b506c76d6cc772ef9a695831f9292868b121..5b2b64103522da6da2b913dad924d8f81e3bb126 100644 --- a/Include/Acidanthera/Library/OcAppleChunklistLib.h +++ b/Include/Acidanthera/Library/OcAppleChunklistLib.h @@ -45,9 +45,9 @@ typedef struct OC_APPLE_CHUNKLIST_CONTEXT_ { **/ BOOLEAN OcAppleChunklistInitializeContext ( - OUT OC_APPLE_CHUNKLIST_CONTEXT *Context, - IN VOID *Buffer, - IN UINT32 BufferSize + OUT OC_APPLE_CHUNKLIST_CONTEXT *Context, + IN OUT VOID *Buffer, + IN UINT32 BufferSize ); BOOLEAN diff --git a/Include/Apple/IndustryStandard/AppleChunklist.h b/Include/Apple/IndustryStandard/AppleChunklist.h index 3a5aff8c8c2163d163a8632137df003314251d25..554919bbd8a3b1a696a4b484ea6d37d2f4961b2e 100644 --- a/Include/Apple/IndustryStandard/AppleChunklist.h +++ b/Include/Apple/IndustryStandard/AppleChunklist.h @@ -33,31 +33,31 @@ // Chunklist chunk. // typedef struct APPLE_CHUNKLIST_CHUNK_ { - UINT32 Length; - UINT8 Checksum[APPLE_CHUNKLIST_CHECKSUM_LENGTH]; + UINT32 Length; + UINT8 Checksum[APPLE_CHUNKLIST_CHECKSUM_LENGTH]; } APPLE_CHUNKLIST_CHUNK; // // Chunklist signature. // typedef struct APPLE_CHUNKLIST_SIG_ { - UINT8 Signature[APPLE_CHUNKLIST_SIG_LENGTH]; + UINT8 Signature[APPLE_CHUNKLIST_SIG_LENGTH]; } APPLE_CHUNKLIST_SIG; // // Chunklist header. // typedef struct { - UINT32 Magic; - UINT32 Length; - UINT8 FileVersion; - UINT8 ChunkMethod; - UINT8 SigMethod; - UINT8 Unused; + UINT32 Magic; + UINT32 Length; + UINT8 FileVersion; + UINT8 ChunkMethod; + UINT8 SigMethod; + UINT8 Unused; - UINT64 ChunkCount; - UINT64 ChunkOffset; - UINT64 SigOffset; + UINT64 ChunkCount; + UINT64 ChunkOffset; + UINT64 SigOffset; } APPLE_CHUNKLIST_HEADER; #pragma pack(pop) diff --git a/Library/OcAppleChunklistLib/OcAppleChunklistLib.c b/Library/OcAppleChunklistLib/OcAppleChunklistLib.c index 2f3fd4e5039a491a9c1c86be7f48245d6f933a33..85ff2414a53cc5507e40cee5552ffa78268506e9 100644 --- a/Library/OcAppleChunklistLib/OcAppleChunklistLib.c +++ b/Library/OcAppleChunklistLib/OcAppleChunklistLib.c @@ -22,9 +22,9 @@ BOOLEAN OcAppleChunklistInitializeContext ( - OUT OC_APPLE_CHUNKLIST_CONTEXT *Context, - IN VOID *Buffer, - IN UINT32 BufferSize + OUT OC_APPLE_CHUNKLIST_CONTEXT *Context, + IN OUT VOID *Buffer, + IN UINT32 BufferSize ) { APPLE_CHUNKLIST_HEADER *ChunklistHeader; diff --git a/User/Include/Pcd.h b/User/Include/Pcd.h index bf8a2d431b0f127bfdf524cbde1c48e7f5893f74..0f56678a8e2be09e6a0b98e39cc741831452c3f7 100644 --- a/User/Include/Pcd.h +++ b/User/Include/Pcd.h @@ -6,6 +6,7 @@ #include #include #include +#include extern const UINT32 _gPcd_FixedAtBuild_PcdUefiLibMaxPrintBufferSize; extern const BOOLEAN _gPcd_FixedAtBuild_PcdUgaConsumeSupport; @@ -28,3 +29,6 @@ extern const BOOLEAN _gPcd_FixedAtBuild_PcdVerifyNodeInList; #define _PCD_GET_MODE_32_PcdMaximumUnicodeStringLength _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength #define _PCD_GET_MODE_32_PcdMaximumLinkedListLength _gPcd_FixedAtBuild_PcdMaximumLinkedListLength #define _PCD_GET_MODE_BOOL_PcdVerifyNodeInList _gPcd_FixedAtBuild_PcdVerifyNodeInList +#define _PCD_GET_MODE_16_PcdOcCryptoAllowedRsaModuli (512U | 256U) +#define _PCD_GET_MODE_16_PcdOcCryptoAllowedSigHashTypes \ + (1U << OcSigHashTypeSha256) | (1U << OcSigHashTypeSha384) | (1U << OcSigHashTypeSha512) diff --git a/User/Makefile b/User/Makefile index ee3142043d91c6f23cc6bbf1fa488f4c5e4d7dba..031602268e8255965eeddfd81c9258c12bbb1e14 100644 --- a/User/Makefile +++ b/User/Makefile @@ -53,7 +53,7 @@ endif # Skip including UDK when suggesting STANDALONE mode. # ifneq ($(STANDALONE),1) - CFLAGS += -D NO_MSABI_VA_FUNCS + CFLAGS += -D NO_MSABI_VA_FUNCS -D OC_TARGET_DEBUG CFLAGS += -I$(UDK_PATH)/MdePkg/Include -I$(UDK_PATH)/MdePkg/Include/Library -I$(UDK_PATH)/MdePkg/Include/$(UDK_ARCH) CFLAGS += -I$(UDK_PATH)/UefiCpuPkg/Include # diff --git a/Utilities/AppleEfiSignTool/Makefile b/Utilities/AppleEfiSignTool/Makefile index 820807cf8aea1371fb476e7847ca23c9379fde1f..0239dc1ef77a23063450684b5b8892d5de5ae235 100644 --- a/Utilities/AppleEfiSignTool/Makefile +++ b/Utilities/AppleEfiSignTool/Makefile @@ -18,6 +18,3 @@ VPATH = ../../Library/OcCryptoLib:$\ ../../Library/OcCryptoLib/IA32:$\ ../../Library/OcAppleKeysLib include ../../User/Makefile - -RsaDigitalSign.o: - $(CC) $(CFLAGS) -include OcCryptoConfig.h ../../Library/OcCryptoLib/RsaDigitalSign.c -o $@ diff --git a/Utilities/AppleEfiSignTool/OcCryptoConfig.h b/Utilities/AppleEfiSignTool/OcCryptoConfig.h deleted file mode 100644 index 90cdd350417902998a3b30521148c3967d8088fd..0000000000000000000000000000000000000000 --- a/Utilities/AppleEfiSignTool/OcCryptoConfig.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef OC_CRYPTO_CONFIG_H -#define OC_CRYPTO_CONFIG_H - -#include - -#define _PCD_GET_MODE_16_PcdOcCryptoAllowedSigHashTypes \ - (1U << OcSigHashTypeSha256) | (1U << OcSigHashTypeSha384) | (1U << OcSigHashTypeSha512) - -#define _PCD_GET_MODE_16_PcdOcCryptoAllowedRsaModuli (512U | 256U) - -#endif // OC_CRYPTO_CONFIG_H diff --git a/Utilities/DiskImage/DiskImage b/Utilities/DiskImage/DiskImage new file mode 100755 index 0000000000000000000000000000000000000000..a8cfc6a31675a0004fbab8b69e57b13dddfcf627 Binary files /dev/null and b/Utilities/DiskImage/DiskImage differ diff --git a/TestsUser/DiskImage/DiskImage.c b/Utilities/DiskImage/DiskImage.c similarity index 96% rename from TestsUser/DiskImage/DiskImage.c rename to Utilities/DiskImage/DiskImage.c index d5fbe0fd8048cf50f56c3981d9aedf91da8c1aec..b28ea8ae8a8166a796baf11fd8576f888670076c 100644 --- a/TestsUser/DiskImage/DiskImage.c +++ b/Utilities/DiskImage/DiskImage.c @@ -1,3 +1,8 @@ +/** @file + Copyright (c) 2018, vit9696. All rights reserved. + SPDX-License-Identifier: BSD-3-Clause +**/ + #include "../Include/Uefi.h" #include @@ -5,6 +10,13 @@ #include #include #include +#include +#include + +#include +#include +#include +#include /** diff --git a/Utilities/DiskImage/FileDummy.c b/Utilities/DiskImage/FileDummy.c new file mode 100644 index 0000000000000000000000000000000000000000..050916645d6d825495455ef5241da9acac93dc9e --- /dev/null +++ b/Utilities/DiskImage/FileDummy.c @@ -0,0 +1,32 @@ +/** @file + Copyright (c) 2020, vit9696. All rights reserved. + SPDX-License-Identifier: BSD-3-Clause +**/ + +#include +#include +#include + +EFI_MEMORY_DESCRIPTOR * +OcGetCurrentMemoryMap ( + OUT UINTN *MemoryMapSize, + OUT UINTN *DescriptorSize, + OUT UINTN *MapKey OPTIONAL, + OUT UINT32 *DescriptorVersion OPTIONAL, + OUT UINTN *OriginalMemoryMapSize OPTIONAL, + IN BOOLEAN IncludeSplitSpace + ) +{ + ASSERT (FALSE); + return NULL; +} + +EFI_STATUS +GetFileSize ( + IN EFI_FILE_PROTOCOL *File, + OUT UINT32 *Size + ) +{ + ASSERT (FALSE); + return EFI_UNSUPPORTED; +} diff --git a/Utilities/DiskImage/Makefile b/Utilities/DiskImage/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..8f5544b94666c5dd0ca8d3135f5648822b884eca --- /dev/null +++ b/Utilities/DiskImage/Makefile @@ -0,0 +1,43 @@ +## @file +# Copyright (c) 2020, vit9696. All rights reserved. +# SPDX-License-Identifier: BSD-3-Clause +## + +PRODUCT = DiskImage$(SUFFIX) +OBJS = DiskImage.o \ + FileDummy.o \ + OcAppleChunklistLib.o \ + OcAppleDiskImageLib.o \ + OcAppleDiskImageLibInternal.o \ + OcXmlLib.o \ + Sha2.o \ + BigNumWordMul64.o \ + BigNumPrimitives.o \ + BigNumMontgomery.o \ + RsaDigitalSign.o \ + SecureMem.o \ + OcAppleKeysLib.o \ + OcAsciiLib.o \ + OcAppleRamDiskLib.o \ + adler32.o \ + compress.o \ + crc32.o \ + deflate.o \ + infback.o \ + inffast.o \ + inflate.o \ + inftrees.o \ + trees.o \ + uncompr.o \ + zlib_uefi.o +VPATH = ../../Library/OcAppleChunklistLib:$\ + ../../Library/OcAppleDiskImageLib:$\ + ../../Library/OcAppleRamDiskLib:$\ + ../../Library/OcXmlLib:$\ + ../../Library/OcCryptoLib:$\ + ../../Library/OcCryptoLib/IA32:$\ + ../../Library/OcAppleKeysLib:$\ + ../../Library/OcStringLib:$\ + ../../Library/OcFileLib:$\ + ../../Library/OcCompressionLib/zlib +include ../../User/Makefile diff --git a/build_oc.tool b/build_oc.tool index ddd5f2af8c5733bdfc9955a6733c7315c3f98c0d..d5ec946c20af982145f21ccdd27b5b418d505d4e 100755 --- a/build_oc.tool +++ b/build_oc.tool @@ -5,6 +5,7 @@ buildutil() { "AppleEfiSignTool" "ConfigValidity" "EfiResTool" + "DiskImage" "disklabel" "HelloWorld" "icnspack"