Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Side by Side Diff: tests/tpm_lite/redefine_unowned.c

Issue 3389004: Rehaul of firmware TPM tests (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/vboot_reference.git
Patch Set: remove leaked change Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/tpm_lite/redefine.c ('k') | tests/tpm_lite/spaceperm.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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 /* Test of protection from space redefinition when an owner is NOT present.
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 TPM_CHECK(TlclStartupIfNeeded());
24 TPM_CHECK(TlclSelfTestFull());
25 TPM_CHECK(TlclAssertPhysicalPresence());
26
27 assert(!TlclIsOwned());
28
29 /* Ensures spaces exist. */
30 TPM_CHECK(TlclRead(INDEX0, (uint8_t*) &x, sizeof(x)));
31 TPM_CHECK(TlclRead(INDEX1, (uint8_t*) &x, sizeof(x)));
32
33 /* Redefines spaces a couple of times. */
34 perm = TPM_NV_PER_PPWRITE | TPM_NV_PER_GLOBALLOCK;
35 TPM_CHECK(TlclDefineSpace(INDEX0, perm, 2 * sizeof(uint32_t)));
36 TPM_CHECK(TlclDefineSpace(INDEX0, perm, sizeof(uint32_t)));
37
38 perm = TPM_NV_PER_PPWRITE;
39 TPM_CHECK(TlclDefineSpace(INDEX1, perm, 2 * sizeof(uint32_t)));
40 TPM_CHECK(TlclDefineSpace(INDEX1, perm, sizeof(uint32_t)));
41
42 // Sets the global lock.
43 TlclSetGlobalLock();
44
45 // Verifies that index0 cannot be redefined.
46 result = TlclDefineSpace(INDEX0, perm, sizeof(uint32_t));
47 assert(result == TPM_E_AREA_LOCKED);
48
49 // Checks that index1 can.
50 TPM_CHECK(TlclDefineSpace(INDEX1, perm, 2 * sizeof(uint32_t)));
51 TPM_CHECK(TlclDefineSpace(INDEX1, perm, sizeof(uint32_t)));
52
53 // Turns off PP.
54 TlclLockPhysicalPresence();
55
56 // Verifies that neither index0 nor index1 can be redefined.
57 result = TlclDefineSpace(INDEX0, perm, sizeof(uint32_t));
58 assert(result == TPM_E_BAD_PRESENCE);
59 result = TlclDefineSpace(INDEX1, perm, sizeof(uint32_t));
60 assert(result == TPM_E_BAD_PRESENCE);
61
62 printf("TEST SUCCEEDED\n");
63 exit(0);
64 }
OLDNEW
« no previous file with comments | « tests/tpm_lite/redefine.c ('k') | tests/tpm_lite/spaceperm.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698