| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 /* Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 
|  | 2  * Use of this source code is governed by a BSD-style license that can be | 
|  | 3  * found in the LICENSE file. | 
|  | 4  */ | 
|  | 5 | 
|  | 6 /* Testing: ForceClear and behavior of disable and permanent deactivated flags. | 
|  | 7  * | 
|  | 8  * ForceClear sets the permanent disable and deactivated flags to their default | 
|  | 9  * value of TRUE.  The specs say nothing about STCLEAR flags, so they should be | 
|  | 10  * left alone.  This test checks that both flags may be reset without a reboot, | 
|  | 11  * resulting in a fully enabled and activated TPM.  (We know that because | 
|  | 12  * ForceClear requires that the TPM be enabled and activated to run.) | 
|  | 13  */ | 
|  | 14 | 
|  | 15 #include <stdio.h> | 
|  | 16 #include <tss/tcs.h> | 
|  | 17 | 
|  | 18 #include "tlcl.h" | 
|  | 19 #include "utility.h" | 
|  | 20 | 
|  | 21 #define CHECK(command) do { if ((command) != TPM_SUCCESS) \ | 
|  | 22       error(#command "\n"); }                             \ | 
|  | 23   while(0) | 
|  | 24 | 
|  | 25 int main(int argc, char** argv) { | 
|  | 26   uint8_t disable, deactivated; | 
|  | 27   int i; | 
|  | 28 | 
|  | 29   TlclLibInit(); | 
|  | 30   CHECK(TlclStartup()); | 
|  | 31   CHECK(TlclSelftestfull()); | 
|  | 32 | 
|  | 33   CHECK(TlclAssertPhysicalPresence()); | 
|  | 34   printf("PP asserted\n"); | 
|  | 35 | 
|  | 36   CHECK(TlclGetFlags(&disable, &deactivated)); | 
|  | 37   printf("disable is %d, deactivated is %d\n", disable, deactivated); | 
|  | 38 | 
|  | 39   for (i = 0; i < 2; i++) { | 
|  | 40 | 
|  | 41     CHECK(TlclForceClear()); | 
|  | 42     printf("tpm is cleared\n"); | 
|  | 43 | 
|  | 44     CHECK(TlclGetFlags(&disable, &deactivated)); | 
|  | 45     printf("disable is %d, deactivated is %d\n", disable, deactivated); | 
|  | 46 | 
|  | 47     CHECK(TlclSetEnable()); | 
|  | 48     printf("disable flag is cleared\n"); | 
|  | 49 | 
|  | 50     CHECK(TlclGetFlags(&disable, &deactivated)); | 
|  | 51     printf("disable is %d, deactivated is %d\n", disable, deactivated); | 
|  | 52 | 
|  | 53     CHECK(TlclSetDeactivated(0)); | 
|  | 54     printf("deactivated flag is cleared\n"); | 
|  | 55 | 
|  | 56     CHECK(TlclGetFlags(&disable, &deactivated)); | 
|  | 57     printf("disable is %d, deactivated is %d\n", disable, deactivated); | 
|  | 58   } | 
|  | 59 | 
|  | 60   return 0; | 
|  | 61 } | 
| OLD | NEW | 
|---|