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
main(int argc,char ** argv)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