Home | History | Annotate | Download | only in tpm_lite
      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 /* Create two spaces for uses in tests.  OK if they already exist.
      7  */
      8 
      9 #include <stdio.h>
     10 #include <stdint.h>
     11 #include <stdlib.h>
     12 
     13 #include "tlcl.h"
     14 #include "tlcl_tests.h"
     15 #include "utility.h"
     16 
     17 int main(int argc, char** argv) {
     18   uint32_t perm;
     19   uint32_t result;
     20   uint32_t x;
     21 
     22   TlclLibInit();
     23 
     24   TPM_CHECK(TlclStartupIfNeeded());
     25   TPM_CHECK(TlclSelfTestFull());
     26   TPM_CHECK(TlclAssertPhysicalPresence());
     27   TPM_CHECK(TlclForceClear());
     28   TPM_CHECK(TlclSetEnable());
     29   TPM_CHECK(TlclSetDeactivated(0));
     30 
     31   result = TlclRead(INDEX0, (uint8_t*) &x, sizeof(x));
     32   if (result == TPM_E_BADINDEX) {
     33     perm = TPM_NV_PER_PPWRITE | TPM_NV_PER_GLOBALLOCK;
     34     TPM_CHECK(TlclDefineSpace(INDEX0, perm, sizeof(uint32_t)));
     35   }
     36 
     37   result = TlclRead(INDEX1, (uint8_t*) &x, sizeof(x));
     38   if (result == TPM_E_BADINDEX) {
     39     perm = TPM_NV_PER_PPWRITE;
     40     TPM_CHECK(TlclDefineSpace(INDEX1, perm, sizeof(uint32_t)));
     41   }
     42 
     43   printf("TEST SUCCEEDED\n");
     44   exit(0);
     45 }
     46