Modify 'tpmc block' to lock only the FW index
[vboot.git] / firmware / linktest / main.c
1 /* Copyright (c) 2012 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 #include "sysincludes.h"
7
8 #include "cgptlib.h"
9 #include "load_kernel_fw.h"
10 #include "rollback_index.h"
11 #include "tlcl.h"
12 #include "vboot_common.h"
13 #include "vboot_kernel.h"
14 #include "vboot_nvstorage.h"
15
16
17 int main(void)
18 {
19         /* cgptlib.h */
20         GptInit(0);
21         GptNextKernelEntry(0, 0, 0);
22         GptUpdateKernelEntry(0, 0);
23
24         /* load_kernel_fw.h */
25         LoadKernel(0, 0);
26
27         /* rollback_index.h */
28         RollbackKernelRead(0);
29         RollbackKernelWrite(0);
30         RollbackKernelLock(0);
31
32         /* tlcl.h */
33         TlclStartup();
34         TlclResume();
35         TlclSelfTestFull();
36         TlclContinueSelfTest();
37         TlclDefineSpace(0, 0, 0);
38         TlclWrite(0, 0, 0);
39         TlclRead(0, 0, 0);
40         TlclWriteLock(0);
41         TlclReadLock(0);
42         TlclIsOwned();
43         TlclForceClear();
44         TlclSetEnable();
45         TlclSetDeactivated(0);
46         TlclGetFlags(0, 0, 0);
47         TlclSetGlobalLock();
48         TlclExtend(0, 0, 0);
49         TlclGetPermissions(0, 0);
50 #ifndef TPM2_MODE
51         TlclAssertPhysicalPresence();
52         TlclSetNvLocked();
53         TlclClearEnable();
54 #endif
55
56         /* vboot_api.h - entry points INTO vboot_reference */
57         VbSelectAndLoadKernel(0, 0);
58
59         /* vboot_common.h */
60         OffsetOf(0, 0);
61         GetPublicKeyData(0);
62         GetPublicKeyDataC(0);
63         GetSignatureData(0);
64         GetSignatureDataC(0);
65         VerifyMemberInside(0, 0, 0, 0, 0, 0);
66         VerifyPublicKeyInside(0, 0, 0);
67         VerifySignatureInside(0, 0, 0);
68         PublicKeyInit(0, 0, 0);
69         PublicKeyCopy(0, 0);
70         PublicKeyToRSA(0);
71         VerifyData(0, 0, 0, 0);
72         VerifyDigest(0, 0, 0);
73         KeyBlockVerify(0, 0, 0, 0);
74         VerifyKernelPreamble(0, 0, 0);
75         VbSharedDataInit(0, 0);
76         VbSharedDataReserve(0, 0);
77         VbSharedDataSetKernelKey(0, 0);
78
79         VbNvSetup(0);
80         VbNvGet(0, 0, 0);
81         VbNvSet(0, 0, 0);
82         VbNvTeardown(0);
83
84         return 0;
85 }