diff options
Diffstat (limited to 'tests/tpm_lite/tpmtest_globallock.c')
-rw-r--r-- | tests/tpm_lite/tpmtest_globallock.c | 72 |
1 files changed, 37 insertions, 35 deletions
diff --git a/tests/tpm_lite/tpmtest_globallock.c b/tests/tpm_lite/tpmtest_globallock.c index 96fad9df..2e728524 100644 --- a/tests/tpm_lite/tpmtest_globallock.c +++ b/tests/tpm_lite/tpmtest_globallock.c @@ -15,39 +15,41 @@ #include "tlcl_tests.h" int main(int argc, char** argv) { - uint32_t zero = 0; - uint32_t x; - - TlclLibInit(); - TPM_CHECK(TlclStartupIfNeeded()); - TPM_CHECK(TlclSelfTestFull()); - TPM_CHECK(TlclAssertPhysicalPresence()); - TPM_CHECK(TlclRead(INDEX0, (uint8_t*) &x, sizeof(x))); - TPM_CHECK(TlclWrite(INDEX0, (uint8_t*) &zero, sizeof(uint32_t))); - TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x))); - TPM_CHECK(TlclWrite(INDEX1, (uint8_t*) &zero, sizeof(uint32_t))); - TPM_CHECK(TlclSetGlobalLock()); - - // Verifies that write to index0 fails. - x = 1; - TPM_EXPECT(TlclWrite(INDEX0, (uint8_t*) &x, sizeof(x)), TPM_E_AREA_LOCKED); - TPM_CHECK(TlclRead(INDEX0, (uint8_t*) &x, sizeof(x))); - VbAssert(x == 0); - - // Verifies that write to index1 is still possible. - x = 2; - TPM_CHECK(TlclWrite(INDEX1, (uint8_t*) &x, sizeof(x))); - TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x))); - VbAssert(x == 2); - - // Turns off PP. - TlclLockPhysicalPresence(); - - // Verifies that write to index1 fails. - x = 3; - TPM_EXPECT(TlclWrite(INDEX1, (uint8_t*) &x, sizeof(x)), TPM_E_BAD_PRESENCE); - TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x))); - VbAssert(x == 2); - printf("TEST SUCCEEDED\n"); - exit(0); + uint32_t zero = 0; + uint32_t x; + + TlclLibInit(); + TPM_CHECK(TlclStartupIfNeeded()); + TPM_CHECK(TlclSelfTestFull()); + TPM_CHECK(TlclAssertPhysicalPresence()); + TPM_CHECK(TlclRead(INDEX0, (uint8_t*) &x, sizeof(x))); + TPM_CHECK(TlclWrite(INDEX0, (uint8_t*) &zero, sizeof(uint32_t))); + TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x))); + TPM_CHECK(TlclWrite(INDEX1, (uint8_t*) &zero, sizeof(uint32_t))); + TPM_CHECK(TlclSetGlobalLock()); + + // Verifies that write to index0 fails. + x = 1; + TPM_EXPECT(TlclWrite(INDEX0, (uint8_t*) &x, sizeof(x)), + TPM_E_AREA_LOCKED); + TPM_CHECK(TlclRead(INDEX0, (uint8_t*) &x, sizeof(x))); + VbAssert(x == 0); + + // Verifies that write to index1 is still possible. + x = 2; + TPM_CHECK(TlclWrite(INDEX1, (uint8_t*) &x, sizeof(x))); + TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x))); + VbAssert(x == 2); + + // Turns off PP. + TlclLockPhysicalPresence(); + + // Verifies that write to index1 fails. + x = 3; + TPM_EXPECT(TlclWrite(INDEX1, (uint8_t*) &x, sizeof(x)), + TPM_E_BAD_PRESENCE); + TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x))); + VbAssert(x == 2); + printf("TEST SUCCEEDED\n"); + exit(0); } |