// Copyright (C) 2015 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// libtpm2
// ========================================================
cc_library_shared {
    name: "libtpm2",
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
        "-Wno-typedef-redefinition",
        "-Wno-unused-parameter",
        "-Wno-missing-field-initializers",
        "-Wno-tautological-compare",
        "-Wno-sign-compare",
    ],
    local_include_dirs: ["include/tpm2"],
    shared_libs: ["libcrypto"],
    export_include_dirs: ["include"],
    srcs: [
        "ActivateCredential.c",
        "AlgorithmCap.c",
        "Attest_spt.c",
        "Bits.c",
        "Cancel.c",
        "Certify.c",
        "CertifyCreation.c",
        "ChangeEPS.c",
        "ChangePPS.c",
        "Clear.c",
        "ClearControl.c",
        "Clock.c",
        "ClockRateAdjust.c",
        "ClockSet.c",
        "CommandAudit.c",
        "CommandCodeAttributes.c",
        "CommandDispatcher.c",
        "Commit.c",
        "ContextLoad.c",
        "ContextSave.c",
        "Context_spt.c",
        "CpriCryptPri.c",
        "CpriECC.c",
        "CpriHash.c",
        "CpriMisc.c",
        "CpriRNG.c",
        "CpriRSA.c",
        "CpriSym.c",
        "Create.c",
        "CreatePrimary.c",
        "CryptSelfTest.c",
        "CryptUtil.c",
        "DA.c",
        "DRTM.c",
        "DictionaryAttackLockReset.c",
        "DictionaryAttackParameters.c",
        "Duplicate.c",
        "ECC_Parameters.c",
        "ECDH_KeyGen.c",
        "ECDH_ZGen.c",
        "EC_Ephemeral.c",
        "EncryptDecrypt.c",
        "Entity.c",
        "Entropy.c",
        "EventSequenceComplete.c",
        "EvictControl.c",
        "ExecCommand.c",
        "FieldUpgradeData.c",
        "FieldUpgradeStart.c",
        "FirmwareRead.c",
        "FlushContext.c",
        "GetCapability.c",
        "GetCommandAuditDigest.c",
        "GetCommandCodeString.c",
        "GetRandom.c",
        "GetSessionAuditDigest.c",
        "GetTestResult.c",
        "GetTime.c",
        "Global.c",
        "HMAC.c",
        "HMAC_Start.c",
        "Handle.c",
        "HandleProcess.c",
        "Hash.c",
        "HashSequenceStart.c",
        "Hierarchy.c",
        "HierarchyChangeAuth.c",
        "HierarchyControl.c",
        "Import.c",
        "IncrementalSelfTest.c",
        "Load.c",
        "LoadExternal.c",
        "Locality.c",
        "LocalityPlat.c",
        "MakeCredential.c",
        "Marshal_ActivateCredential.c",
        "Marshal_Certify.c",
        "Marshal_CertifyCreation.c",
        "Marshal_ChangeEPS.c",
        "Marshal_ChangePPS.c",
        "Marshal_Clear.c",
        "Marshal_ClearControl.c",
        "Marshal_ClockRateAdjust.c",
        "Marshal_ClockSet.c",
        "Marshal_Commit.c",
        "Marshal_ContextLoad.c",
        "Marshal_ContextSave.c",
        "Marshal_Create.c",
        "Marshal_CreatePrimary.c",
        "Marshal_DictionaryAttackLockReset.c",
        "Marshal_DictionaryAttackParameters.c",
        "Marshal_Duplicate.c",
        "Marshal_ECC_Parameters.c",
        "Marshal_ECDH_KeyGen.c",
        "Marshal_ECDH_ZGen.c",
        "Marshal_EC_Ephemeral.c",
        "Marshal_EncryptDecrypt.c",
        "Marshal_EventSequenceComplete.c",
        "Marshal_EvictControl.c",
        "Marshal_FirmwareRead.c",
        "Marshal_FlushContext.c",
        "Marshal_GetCapability.c",
        "Marshal_GetCommandAuditDigest.c",
        "Marshal_GetRandom.c",
        "Marshal_GetSessionAuditDigest.c",
        "Marshal_GetTestResult.c",
        "Marshal_GetTime.c",
        "Marshal_HMAC.c",
        "Marshal_HMAC_Start.c",
        "Marshal_Hash.c",
        "Marshal_HashSequenceStart.c",
        "Marshal_HierarchyChangeAuth.c",
        "Marshal_HierarchyControl.c",
        "Marshal_Import.c",
        "Marshal_IncrementalSelfTest.c",
        "Marshal_Load.c",
        "Marshal_LoadExternal.c",
        "Marshal_MakeCredential.c",
        "Marshal_NV_Certify.c",
        "Marshal_NV_ChangeAuth.c",
        "Marshal_NV_DefineSpace.c",
        "Marshal_NV_Extend.c",
        "Marshal_NV_GlobalWriteLock.c",
        "Marshal_NV_Increment.c",
        "Marshal_NV_Read.c",
        "Marshal_NV_ReadLock.c",
        "Marshal_NV_ReadPublic.c",
        "Marshal_NV_SetBits.c",
        "Marshal_NV_UndefineSpace.c",
        "Marshal_NV_UndefineSpaceSpecial.c",
        "Marshal_NV_Write.c",
        "Marshal_NV_WriteLock.c",
        "Marshal_ObjectChangeAuth.c",
        "Marshal_PCR_Allocate.c",
        "Marshal_PCR_Event.c",
        "Marshal_PCR_Extend.c",
        "Marshal_PCR_Read.c",
        "Marshal_PCR_Reset.c",
        "Marshal_PCR_SetAuthPolicy.c",
        "Marshal_PCR_SetAuthValue.c",
        "Marshal_PP_Commands.c",
        "Marshal_PolicyAuthValue.c",
        "Marshal_PolicyAuthorize.c",
        "Marshal_PolicyCommandCode.c",
        "Marshal_PolicyCounterTimer.c",
        "Marshal_PolicyCpHash.c",
        "Marshal_PolicyDuplicationSelect.c",
        "Marshal_PolicyGetDigest.c",
        "Marshal_PolicyLocality.c",
        "Marshal_PolicyNV.c",
        "Marshal_PolicyNameHash.c",
        "Marshal_PolicyNvWritten.c",
        "Marshal_PolicyOR.c",
        "Marshal_PolicyPCR.c",
        "Marshal_PolicyPassword.c",
        "Marshal_PolicyPhysicalPresence.c",
        "Marshal_PolicyRestart.c",
        "Marshal_PolicySecret.c",
        "Marshal_PolicySigned.c",
        "Marshal_PolicyTicket.c",
        "Marshal_Quote.c",
        "Marshal_RSA_Decrypt.c",
        "Marshal_RSA_Encrypt.c",
        "Marshal_ReadClock.c",
        "Marshal_ReadPublic.c",
        "Marshal_Rewrap.c",
        "Marshal_SelfTest.c",
        "Marshal_SequenceComplete.c",
        "Marshal_SequenceUpdate.c",
        "Marshal_SetAlgorithmSet.c",
        "Marshal_SetCommandCodeAuditStatus.c",
        "Marshal_SetPrimaryPolicy.c",
        "Marshal_Shutdown.c",
        "Marshal_Sign.c",
        "Marshal_StartAuthSession.c",
        "Marshal_Startup.c",
        "Marshal_StirRandom.c",
        "Marshal_TestParms.c",
        "Marshal_Unseal.c",
        "Marshal_VerifySignature.c",
        "Marshal_ZGen_2Phase.c",
        "Manufacture.c",
        "MathFunctions.c",
        "MemoryLib.c",
        "NV.c",
        "NVMem.c",
        "NV_Certify.c",
        "NV_ChangeAuth.c",
        "NV_DefineSpace.c",
        "NV_Extend.c",
        "NV_GlobalWriteLock.c",
        "NV_Increment.c",
        "NV_Read.c",
        "NV_ReadLock.c",
        "NV_ReadPublic.c",
        "NV_SetBits.c",
        "NV_UndefineSpace.c",
        "NV_UndefineSpaceSpecial.c",
        "NV_Write.c",
        "NV_WriteLock.c",
        "NV_spt.c",
        "Object.c",
        "ObjectChangeAuth.c",
        "Object_spt.c",
        "PCR.c",
        "PCR_Allocate.c",
        "PCR_Event.c",
        "PCR_Extend.c",
        "PCR_Read.c",
        "PCR_Reset.c",
        "PCR_SetAuthPolicy.c",
        "PCR_SetAuthValue.c",
        "PP.c",
        "PPPlat.c",
        "PP_Commands.c",
        "PlatformData.c",
        "PolicyAuthValue.c",
        "PolicyAuthorize.c",
        "PolicyCommandCode.c",
        "PolicyCounterTimer.c",
        "PolicyCpHash.c",
        "PolicyDuplicationSelect.c",
        "PolicyGetDigest.c",
        "PolicyLocality.c",
        "PolicyNV.c",
        "PolicyNameHash.c",
        "PolicyNvWritten.c",
        "PolicyOR.c",
        "PolicyPCR.c",
        "PolicyPassword.c",
        "PolicyPhysicalPresence.c",
        "PolicyRestart.c",
        "PolicySecret.c",
        "PolicySigned.c",
        "PolicyTicket.c",
        "Policy_spt.c",
        "Power.c",
        "PowerPlat.c",
        "PropertyCap.c",
        "Quote.c",
        "RSAData.c",
        "RSAKeySieve.c",
        "RSA_Decrypt.c",
        "RSA_Encrypt.c",
        "ReadClock.c",
        "ReadPublic.c",
        "Rewrap.c",
        "SelfTest.c",
        "SequenceComplete.c",
        "SequenceUpdate.c",
        "Session.c",
        "SessionProcess.c",
        "SetAlgorithmSet.c",
        "SetCommandCodeAuditStatus.c",
        "SetPrimaryPolicy.c",
        "Shutdown.c",
        "Sign.c",
        "StartAuthSession.c",
        "Startup.c",
        "StirRandom.c",
        "TestParms.c",
        "Ticket.c",
        "Time.c",
        "TpmFail.c",
        "Unique.c",
        "Unseal.c",
        "VerifySignature.c",
        "ZGen_2Phase.c",
        "_TPM_Hash_Data.c",
        "_TPM_Hash_End.c",
        "_TPM_Hash_Start.c",
        "_TPM_Init.c",
        "tpm_generated.c",
    ],

}