blob: a16a9c9ef9029e50f39ad703d4847a4248f01a69 [file]
## @file
# This module for building TPM Reference Library for fTPM.
#
# Copyright (c) 2025, Arm Limited. All rights reserved.<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = TpmLib
MODULE_UNI_FILE = TpmLib.uni
FILE_GUID = fb2db358-1da3-11ef-8859-2f704f58e30f
MODULE_TYPE = BASE
VERSION_STRING = 1.0
LIBRARY_CLASS = TpmLib
CONSTRUCTOR = TpmLibConstructor
DEFINE TPM_LIB_PATH = TPM/TPMCmd/tpm/src
DEFINE TPM_CRYPTOLIB_PATH = TPM/TPMCmd/tpm/cryptolibs
DEFINE TPM_PLAT_PATH = TPM/TPMCmd/Platform/src
DEFINE TPM_CONF_PATH = TPM/TPMCmd/TpmConfiguration
DEFINE TPM_LIB_OPTIONS_INCLUDE = -include ./TpmLibCompileOptions.h
DEFINE TPM_LIB_WARNING_SUPRESS_GCC = -Wno-unused-function -Wno-implicit-fallthrough -Wno-cast-align -Wno-cast-function-type -Wno-missing-braces -Wno-sign-compare -Wno-suggest-attribute=noreturn -Wno-switch-default -Wno-implicit-function-declaration -Wno-unused-value -Wno-logical-not-parentheses
#
# VALID_ARCHITECTURES = AARCH64
#
[Sources]
Include/TpmConfiguration/TpmBuildSwitches.h
Include/TpmConfiguration/TpmProfile_Common.h
Include/TpmConfiguration/TpmProfile_Misc.h
Ossl/BnToOsslMath.c
Ossl/TpmToOsslSupport.c
TpmLibCompileOptions.h
TpmLib.c
TpmPlatformFunctions.c
$(TPM_LIB_PATH)/X509/X509_ECC.c
$(TPM_LIB_PATH)/X509/X509_RSA.c
$(TPM_LIB_PATH)/X509/TpmASN1.c
$(TPM_LIB_PATH)/X509/X509_spt.c
$(TPM_LIB_PATH)/command/Asymmetric/ECC_Decrypt.c
$(TPM_LIB_PATH)/command/Asymmetric/ECC_Encrypt.c
$(TPM_LIB_PATH)/command/Asymmetric/ECC_Parameters.c
$(TPM_LIB_PATH)/command/Asymmetric/ECDH_KeyGen.c
$(TPM_LIB_PATH)/command/Asymmetric/ECDH_ZGen.c
$(TPM_LIB_PATH)/command/Asymmetric/EC_Ephemeral.c
$(TPM_LIB_PATH)/command/Asymmetric/RSA_Decrypt.c
$(TPM_LIB_PATH)/command/Asymmetric/RSA_Encrypt.c
$(TPM_LIB_PATH)/command/Asymmetric/ZGen_2Phase.c
$(TPM_LIB_PATH)/command/AttachedComponent/AC_GetCapability.c
$(TPM_LIB_PATH)/command/AttachedComponent/AC_Send.c
$(TPM_LIB_PATH)/command/AttachedComponent/AC_spt.c
$(TPM_LIB_PATH)/command/AttachedComponent/Policy_AC_SendSelect.c
$(TPM_LIB_PATH)/command/Attestation/Attest_spt.c
$(TPM_LIB_PATH)/command/Attestation/Certify.c
$(TPM_LIB_PATH)/command/Attestation/CertifyCreation.c
$(TPM_LIB_PATH)/command/Attestation/CertifyX509.c
$(TPM_LIB_PATH)/command/Attestation/GetCommandAuditDigest.c
$(TPM_LIB_PATH)/command/Attestation/GetSessionAuditDigest.c
$(TPM_LIB_PATH)/command/Attestation/GetTime.c
$(TPM_LIB_PATH)/command/Attestation/Quote.c
$(TPM_LIB_PATH)/command/Capability/GetCapability.c
$(TPM_LIB_PATH)/command/Capability/SetCapability.c
$(TPM_LIB_PATH)/command/Capability/TestParms.c
$(TPM_LIB_PATH)/command/ClockTimer/ACT_SetTimeout.c
$(TPM_LIB_PATH)/command/ClockTimer/ACT_spt.c
$(TPM_LIB_PATH)/command/ClockTimer/ClockRateAdjust.c
$(TPM_LIB_PATH)/command/ClockTimer/ClockSet.c
$(TPM_LIB_PATH)/command/ClockTimer/ReadClock.c
$(TPM_LIB_PATH)/command/CommandAudit/SetCommandCodeAuditStatus.c
$(TPM_LIB_PATH)/command/Context/ContextLoad.c
$(TPM_LIB_PATH)/command/Context/ContextSave.c
$(TPM_LIB_PATH)/command/Context/Context_spt.c
$(TPM_LIB_PATH)/command/Context/EvictControl.c
$(TPM_LIB_PATH)/command/Context/FlushContext.c
$(TPM_LIB_PATH)/command/DA/DictionaryAttackParameters.c
$(TPM_LIB_PATH)/command/DA/DictionaryAttackLockReset.c
$(TPM_LIB_PATH)/command/Duplication/Duplicate.c
$(TPM_LIB_PATH)/command/Duplication/Import.c
$(TPM_LIB_PATH)/command/Duplication/Rewrap.c
$(TPM_LIB_PATH)/command/EA/PolicyAuthValue.c
$(TPM_LIB_PATH)/command/EA/PolicyAuthorize.c
$(TPM_LIB_PATH)/command/EA/PolicyAuthorizeNV.c
$(TPM_LIB_PATH)/command/EA/PolicyCapability.c
$(TPM_LIB_PATH)/command/EA/PolicyCommandCode.c
$(TPM_LIB_PATH)/command/EA/PolicyCounterTimer.c
$(TPM_LIB_PATH)/command/EA/PolicyCpHash.c
$(TPM_LIB_PATH)/command/EA/PolicyDuplicationSelect.c
$(TPM_LIB_PATH)/command/EA/PolicyGetDigest.c
$(TPM_LIB_PATH)/command/EA/PolicyLocality.c
$(TPM_LIB_PATH)/command/EA/PolicyNV.c
$(TPM_LIB_PATH)/command/EA/PolicyNameHash.c
$(TPM_LIB_PATH)/command/EA/PolicyNvWritten.c
$(TPM_LIB_PATH)/command/EA/PolicyOR.c
$(TPM_LIB_PATH)/command/EA/PolicyPCR.c
$(TPM_LIB_PATH)/command/EA/PolicyParameters.c
$(TPM_LIB_PATH)/command/EA/PolicyPassword.c
$(TPM_LIB_PATH)/command/EA/PolicyPhysicalPresence.c
$(TPM_LIB_PATH)/command/EA/PolicySecret.c
$(TPM_LIB_PATH)/command/EA/PolicySigned.c
$(TPM_LIB_PATH)/command/EA/PolicyTemplate.c
$(TPM_LIB_PATH)/command/EA/PolicyTicket.c
$(TPM_LIB_PATH)/command/EA/PolicyTransportSPDM.c
$(TPM_LIB_PATH)/command/EA/Policy_spt.c
$(TPM_LIB_PATH)/command/Ecdaa/Commit.c
$(TPM_LIB_PATH)/command/FieldUpgrade/FieldUpgradeData.c
$(TPM_LIB_PATH)/command/FieldUpgrade/FieldUpgradeStart.c
$(TPM_LIB_PATH)/command/FieldUpgrade/FirmwareRead.c
$(TPM_LIB_PATH)/command/HashHMAC/EventSequenceComplete.c
$(TPM_LIB_PATH)/command/HashHMAC/HMAC_Start.c
$(TPM_LIB_PATH)/command/HashHMAC/HashSequenceStart.c
$(TPM_LIB_PATH)/command/HashHMAC/MAC_Start.c
$(TPM_LIB_PATH)/command/HashHMAC/SequenceComplete.c
$(TPM_LIB_PATH)/command/HashHMAC/SequenceUpdate.c
$(TPM_LIB_PATH)/command/Hierarchy/ChangeEPS.c
$(TPM_LIB_PATH)/command/Hierarchy/ChangePPS.c
$(TPM_LIB_PATH)/command/Hierarchy/Clear.c
$(TPM_LIB_PATH)/command/Hierarchy/HierarchyControl.c
$(TPM_LIB_PATH)/command/Hierarchy/CreatePrimary.c
$(TPM_LIB_PATH)/command/Hierarchy/HierarchyChangeAuth.c
$(TPM_LIB_PATH)/command/Hierarchy/ClearControl.c
$(TPM_LIB_PATH)/command/Hierarchy/ReadOnlyControl.c
$(TPM_LIB_PATH)/command/Hierarchy/SetPrimaryPolicy.c
$(TPM_LIB_PATH)/command/Misc/PP_Commands.c
$(TPM_LIB_PATH)/command/Misc/SetAlgorithmSet.c
$(TPM_LIB_PATH)/command/NVStorage/NV_Certify.c
$(TPM_LIB_PATH)/command/NVStorage/NV_ChangeAuth.c
$(TPM_LIB_PATH)/command/NVStorage/NV_DefineSpace.c
$(TPM_LIB_PATH)/command/NVStorage/NV_DefineSpace2.c
$(TPM_LIB_PATH)/command/NVStorage/NV_Extend.c
$(TPM_LIB_PATH)/command/NVStorage/NV_GlobalWriteLock.c
$(TPM_LIB_PATH)/command/NVStorage/NV_Increment.c
$(TPM_LIB_PATH)/command/NVStorage/NV_Read.c
$(TPM_LIB_PATH)/command/NVStorage/NV_ReadLock.c
$(TPM_LIB_PATH)/command/NVStorage/NV_ReadPublic.c
$(TPM_LIB_PATH)/command/NVStorage/NV_ReadPublic2.c
$(TPM_LIB_PATH)/command/NVStorage/NV_SetBits.c
$(TPM_LIB_PATH)/command/NVStorage/NV_UndefineSpace.c
$(TPM_LIB_PATH)/command/NVStorage/NV_UndefineSpaceSpecial.c
$(TPM_LIB_PATH)/command/NVStorage/NV_Write.c
$(TPM_LIB_PATH)/command/NVStorage/NV_WriteLock.c
$(TPM_LIB_PATH)/command/NVStorage/NV_spt.c
$(TPM_LIB_PATH)/command/Object/ActivateCredential.c
$(TPM_LIB_PATH)/command/Object/Create.c
$(TPM_LIB_PATH)/command/Object/CreateLoaded.c
$(TPM_LIB_PATH)/command/Object/Load.c
$(TPM_LIB_PATH)/command/Object/LoadExternal.c
$(TPM_LIB_PATH)/command/Object/MakeCredential.c
$(TPM_LIB_PATH)/command/Object/ObjectChangeAuth.c
$(TPM_LIB_PATH)/command/Object/Object_spt.c
$(TPM_LIB_PATH)/command/Object/ReadPublic.c
$(TPM_LIB_PATH)/command/Object/Unseal.c
$(TPM_LIB_PATH)/command/PCR/PCR_Allocate.c
$(TPM_LIB_PATH)/command/PCR/PCR_Event.c
$(TPM_LIB_PATH)/command/PCR/PCR_Extend.c
$(TPM_LIB_PATH)/command/PCR/PCR_Read.c
$(TPM_LIB_PATH)/command/PCR/PCR_Reset.c
$(TPM_LIB_PATH)/command/PCR/PCR_SetAuthValue.c
$(TPM_LIB_PATH)/command/PCR/PCR_SetAuthPolicy.c
$(TPM_LIB_PATH)/command/Random/GetRandom.c
$(TPM_LIB_PATH)/command/Random/StirRandom.c
$(TPM_LIB_PATH)/command/Session/PolicyRestart.c
$(TPM_LIB_PATH)/command/Session/StartAuthSession.c
$(TPM_LIB_PATH)/command/Signature/Sign.c
$(TPM_LIB_PATH)/command/Signature/VerifySignature.c
$(TPM_LIB_PATH)/command/Startup/Shutdown.c
$(TPM_LIB_PATH)/command/Startup/Startup.c
$(TPM_LIB_PATH)/command/Symmetric/EncryptDecrypt.c
$(TPM_LIB_PATH)/command/Symmetric/EncryptDecrypt2.c
$(TPM_LIB_PATH)/command/Symmetric/EncryptDecrypt_spt.c
$(TPM_LIB_PATH)/command/Symmetric/HMAC.c
$(TPM_LIB_PATH)/command/Symmetric/Hash.c
$(TPM_LIB_PATH)/command/Symmetric/MAC.c
$(TPM_LIB_PATH)/command/Testing/GetTestResult.c
$(TPM_LIB_PATH)/command/Testing/IncrementalSelfTest.c
$(TPM_LIB_PATH)/command/Testing/SelfTest.c
$(TPM_LIB_PATH)/crypt/AlgorithmTests.c
$(TPM_LIB_PATH)/crypt/CryptCmac.c
$(TPM_LIB_PATH)/crypt/CryptEccCrypt.c
$(TPM_LIB_PATH)/crypt/CryptEccData.c
$(TPM_LIB_PATH)/crypt/CryptEccKeyExchange.c
$(TPM_LIB_PATH)/crypt/CryptEccMain.c
$(TPM_LIB_PATH)/crypt/CryptEccSignature.c
$(TPM_LIB_PATH)/crypt/CryptHash.c
$(TPM_LIB_PATH)/crypt/CryptPrime.c
$(TPM_LIB_PATH)/crypt/CryptPrimeSieve.c
$(TPM_LIB_PATH)/crypt/CryptRand.c
$(TPM_LIB_PATH)/crypt/CryptRsa.c
$(TPM_LIB_PATH)/crypt/CryptSelfTest.c
$(TPM_LIB_PATH)/crypt/CryptSmac.c
$(TPM_LIB_PATH)/crypt/CryptSym.c
$(TPM_LIB_PATH)/crypt/CryptUtil.c
$(TPM_LIB_PATH)/crypt/RsaKeyCache.c
$(TPM_LIB_PATH)/crypt/PrimeData.c
$(TPM_LIB_PATH)/crypt/Ticket.c
$(TPM_LIB_PATH)/crypt/ecc/TpmEcc_Signature_ECDAA.c
$(TPM_LIB_PATH)/crypt/ecc/TpmEcc_Signature_ECDSA.c
$(TPM_LIB_PATH)/crypt/ecc/TpmEcc_Signature_SM2.c
$(TPM_LIB_PATH)/crypt/ecc/TpmEcc_Signature_Schnorr.c
$(TPM_LIB_PATH)/crypt/ecc/TpmEcc_Signature_Util.c
$(TPM_LIB_PATH)/crypt/ecc/TpmEcc_Util.c
$(TPM_LIB_PATH)/crypt/math/TpmMath_Debug.c
$(TPM_LIB_PATH)/crypt/math/TpmMath_Util.c
$(TPM_LIB_PATH)/events/_TPM_Hash_Data.c
$(TPM_LIB_PATH)/events/_TPM_Hash_End.c
$(TPM_LIB_PATH)/events/_TPM_Hash_Start.c
$(TPM_LIB_PATH)/events/_TPM_Init.c
$(TPM_LIB_PATH)/main/CommandDispatcher.c
$(TPM_LIB_PATH)/main/ExecCommand.c
$(TPM_LIB_PATH)/main/SessionProcess.c
$(TPM_LIB_PATH)/subsystem/CommandAudit.c
$(TPM_LIB_PATH)/subsystem/DA.c
$(TPM_LIB_PATH)/subsystem/Hierarchy.c
$(TPM_LIB_PATH)/subsystem/NvDynamic.c
$(TPM_LIB_PATH)/subsystem/NvReserved.c
$(TPM_LIB_PATH)/subsystem/Object.c
$(TPM_LIB_PATH)/subsystem/PCR.c
$(TPM_LIB_PATH)/subsystem/PP.c
$(TPM_LIB_PATH)/subsystem/Session.c
$(TPM_LIB_PATH)/subsystem/Time.c
$(TPM_LIB_PATH)/support/AlgorithmCap.c
$(TPM_LIB_PATH)/support/Bits.c
$(TPM_LIB_PATH)/support/CommandCodeAttributes.c
$(TPM_LIB_PATH)/support/Entity.c
$(TPM_LIB_PATH)/support/Global.c
$(TPM_LIB_PATH)/support/Handle.c
$(TPM_LIB_PATH)/support/IoBuffers.c
$(TPM_LIB_PATH)/support/Locality.c
$(TPM_LIB_PATH)/support/Manufacture.c
$(TPM_LIB_PATH)/support/Marshal.c
$(TPM_LIB_PATH)/support/MathOnByteBuffers.c
$(TPM_LIB_PATH)/support/Memory.c
$(TPM_LIB_PATH)/support/Power.c
$(TPM_LIB_PATH)/support/PropertyCap.c
$(TPM_LIB_PATH)/support/Response.c
$(TPM_LIB_PATH)/support/ResponseCodeProcessing.c
$(TPM_LIB_PATH)/support/SecChannel.c
$(TPM_LIB_PATH)/support/TableDrivenMarshal.c
$(TPM_LIB_PATH)/support/TableMarshalData.c
$(TPM_LIB_PATH)/support/TpmFail.c
$(TPM_LIB_PATH)/support/TpmSizeChecks.c
$(TPM_CONF_PATH)/TpmVendorCommandHandlers/Vendor_TCG_Test.c
$(TPM_CRYPTOLIB_PATH)/TpmBigNum/BnConvert.c
$(TPM_CRYPTOLIB_PATH)/TpmBigNum/BnEccConstants.c
$(TPM_CRYPTOLIB_PATH)/TpmBigNum/BnMath.c
$(TPM_CRYPTOLIB_PATH)/TpmBigNum/BnMemory.c
$(TPM_CRYPTOLIB_PATH)/TpmBigNum/BnUtil.c
$(TPM_CRYPTOLIB_PATH)/TpmBigNum/TpmBigNumThunks.c
# using some plat functions as they are.
$(TPM_PLAT_PATH)/Cancel.c
$(TPM_PLAT_PATH)/Init.c
$(TPM_PLAT_PATH)/LocalityPlat.c
$(TPM_PLAT_PATH)/NVVirtual.c
$(TPM_PLAT_PATH)/PPPlat.c
$(TPM_PLAT_PATH)/PlatformACT.c
$(TPM_PLAT_PATH)/PlatformData.c
$(TPM_PLAT_PATH)/PlatformPcr.c
$(TPM_PLAT_PATH)/PowerPlat.c
$(TPM_PLAT_PATH)/SelfTest.c
[Packages]
CryptoPkg/CryptoPkg.dec
MdePkg/MdePkg.dec
TcgTpmPkg/TcgTpmPkg.dec
[LibraryClasses]
BaseLib
BaseCryptLib
DebugLib
RngLib
OpensslLib
PlatformTpmLib
[BuildOptions]
GCC:*_*_*_CC_FLAGS = -DGCC
GCC:*_*_*_CC_FLAGS = $(TPM_LIB_OPTIONS_INCLUDE) $(TPM_LIB_WARNING_SUPRESS_GCC)