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