diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-17 07:54:55 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-05-17 07:54:55 +0000 |
commit | 9e3a0bf49d35b38bb325f479faa6acf96516b8df (patch) | |
tree | 15279a2c6ba60e0e4d5707210ef750ed035dde72 | |
parent | 204257160b290c4b6e8849b668810bccb3c9da45 (diff) | |
parent | 08c43b205383fe7ed23f53ac7d15f545716bc236 (diff) | |
download | tpm2-oreo-m4-s7-release.tar.gz |
release-request-655284b0-7f0b-48b5-b01d-27f48a99f2c0-for-git_oc-mr1-release-4017105 snap-temp-L82600000064873863android-wear-8.1.0_r1android-vts-8.1_r9android-vts-8.1_r8android-vts-8.1_r7android-vts-8.1_r6android-vts-8.1_r5android-vts-8.1_r4android-vts-8.1_r3android-vts-8.1_r14android-vts-8.1_r13android-vts-8.1_r12android-vts-8.1_r11android-vts-8.1_r10android-security-8.1.0_r93android-security-8.1.0_r92android-security-8.1.0_r91android-security-8.1.0_r90android-security-8.1.0_r89android-security-8.1.0_r88android-security-8.1.0_r87android-security-8.1.0_r86android-security-8.1.0_r85android-security-8.1.0_r84android-security-8.1.0_r83android-security-8.1.0_r82android-cts-8.1_r9android-cts-8.1_r8android-cts-8.1_r7android-cts-8.1_r6android-cts-8.1_r5android-cts-8.1_r4android-cts-8.1_r3android-cts-8.1_r25android-cts-8.1_r24android-cts-8.1_r23android-cts-8.1_r22android-cts-8.1_r21android-cts-8.1_r20android-cts-8.1_r2android-cts-8.1_r19android-cts-8.1_r18android-cts-8.1_r17android-cts-8.1_r16android-cts-8.1_r15android-cts-8.1_r14android-cts-8.1_r13android-cts-8.1_r12android-cts-8.1_r11android-cts-8.1_r10android-cts-8.1_r1android-8.1.0_r9android-8.1.0_r81android-8.1.0_r80android-8.1.0_r8android-8.1.0_r79android-8.1.0_r78android-8.1.0_r77android-8.1.0_r76android-8.1.0_r75android-8.1.0_r74android-8.1.0_r73android-8.1.0_r72android-8.1.0_r71android-8.1.0_r70android-8.1.0_r7android-8.1.0_r69android-8.1.0_r68android-8.1.0_r67android-8.1.0_r66android-8.1.0_r65android-8.1.0_r64android-8.1.0_r63android-8.1.0_r62android-8.1.0_r61android-8.1.0_r60android-8.1.0_r6android-8.1.0_r53android-8.1.0_r52android-8.1.0_r51android-8.1.0_r50android-8.1.0_r5android-8.1.0_r48android-8.1.0_r47android-8.1.0_r46android-8.1.0_r45android-8.1.0_r43android-8.1.0_r42android-8.1.0_r41android-8.1.0_r40android-8.1.0_r4android-8.1.0_r39android-8.1.0_r38android-8.1.0_r37android-8.1.0_r36android-8.1.0_r35android-8.1.0_r33android-8.1.0_r32android-8.1.0_r31android-8.1.0_r30android-8.1.0_r3android-8.1.0_r29android-8.1.0_r28android-8.1.0_r27android-8.1.0_r26android-8.1.0_r25android-8.1.0_r23android-8.1.0_r22android-8.1.0_r21android-8.1.0_r20android-8.1.0_r2android-8.1.0_r19android-8.1.0_r18android-8.1.0_r17android-8.1.0_r16android-8.1.0_r15android-8.1.0_r14android-8.1.0_r13android-8.1.0_r12android-8.1.0_r11android-8.1.0_r10android-8.1.0_r1security-oc-mr1-releaseoreo-mr1-wear-releaseoreo-mr1-vts-releaseoreo-mr1-security-releaseoreo-mr1-s1-releaseoreo-mr1-releaseoreo-mr1-cuttlefish-testingoreo-mr1-cts-releaseoreo-m8-releaseoreo-m7-releaseoreo-m6-s4-releaseoreo-m6-s3-releaseoreo-m6-s2-releaseoreo-m5-releaseoreo-m4-s9-releaseoreo-m4-s8-releaseoreo-m4-s7-releaseoreo-m4-s6-releaseoreo-m4-s5-releaseoreo-m4-s4-releaseoreo-m4-s3-releaseoreo-m4-s2-releaseoreo-m4-s12-releaseoreo-m4-s11-releaseoreo-m4-s10-releaseoreo-m4-s1-releaseoreo-m3-releaseoreo-m2-s5-releaseoreo-m2-s4-releaseoreo-m2-s3-releaseoreo-m2-s2-releaseoreo-m2-s1-releaseoreo-m2-release
Change-Id: I4a854ccdb246969de28384179147d65298be54f9
-rw-r--r-- | Android.bp | 308 | ||||
-rw-r--r-- | Android.mk | 305 | ||||
-rw-r--r-- | MemoryLib.c | 6 | ||||
-rw-r--r-- | fuzz/Dockerfile | 8 | ||||
-rw-r--r-- | fuzz/README | 6 |
5 files changed, 322 insertions, 311 deletions
diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..934cfda --- /dev/null +++ b/Android.bp @@ -0,0 +1,308 @@ +// 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", + ], + +} diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 46e84c9..0000000 --- a/Android.mk +++ /dev/null @@ -1,305 +0,0 @@ -# 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. - -LOCAL_PATH := $(call my-dir) - -# libtpm2 -# ======================================================== -include $(CLEAR_VARS) -LOCAL_MODULE := libtpm2 -LOCAL_CFLAGS := -Wall -Wextra -Werror \ - -Wno-typedef-redefinition \ - -Wno-unused-parameter \ - -Wno-missing-field-initializers \ - -Wno-tautological-compare \ - -Wno-sign-compare -LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/tpm2 -LOCAL_CLANG := true -LOCAL_SHARED_LIBRARIES := libcrypto -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include -LOCAL_SRC_FILES := \ - 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 -include $(BUILD_SHARED_LIBRARY) diff --git a/MemoryLib.c b/MemoryLib.c index 7beac63..178848e 100644 --- a/MemoryLib.c +++ b/MemoryLib.c @@ -75,15 +75,15 @@ MemoryEqual( UINT32 size // IN: size of bytes being compared ) { - BOOL equal = TRUE; + BOOL diff = FALSE; const BYTE *b1, *b2; b1 = (BYTE *)buffer1; b2 = (BYTE *)buffer2; // Compare all bytes so that there is no leakage of information // due to timing differences. for(; size > 0; size--) - equal = (*b1++ == *b2++) && equal; - return equal; + diff |= *b1++ ^ *b2++; + return !diff; } // // diff --git a/fuzz/Dockerfile b/fuzz/Dockerfile index 69e2878..db3e560 100644 --- a/fuzz/Dockerfile +++ b/fuzz/Dockerfile @@ -1,11 +1,13 @@ -# Copyright 2016 The Chromium Authors. All rights reserved. +# Copyright 2017 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # Defines a docker image that can build fuzzers. # -FROM ossfuzz/base-libfuzzer -RUN apt-get install -y make libssl-dev binutils libgcc-5-dev +FROM gcr.io/oss-fuzz-base/base-builder +RUN apt-get update && apt-get install -y make libssl-dev binutils libgcc-5-dev COPY . /src/tpm2/ COPY fuzz/build.sh /src/ + +WORKDIR tpm2 diff --git a/fuzz/README b/fuzz/README index 4c0cc04..90fd5f6 100644 --- a/fuzz/README +++ b/fuzz/README @@ -32,6 +32,12 @@ To reproduce a crash under gdb: $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \ ossfuzz/tpm2 + or + + $ docker run -ti --rm -v $(pwd):/src/tpm2 -v /tmp/fuzzers:/out \ + -e FUZZING_ENGINE=libfuzzer \ + -e SANITIZER=<address/memory/undefined> \ + ossfuzz/tpm2 Get a shell in the container |