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

Side by Side Diff: tpm/tpm_startup.c

Issue 660204: Upgrade to tpm-emulator version 0.7. (Closed)
Patch Set: Created 10 years, 9 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
« no previous file with comments | « tpm/tpm_owner.c ('k') | tpm/tpm_storage.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Software-Based Trusted Platform Module (TPM) Emulator for Linux 1 /* Software-based Trusted Platform Module (TPM) Emulator
2 * Copyright (C) 2004 Mario Strasser <mast@gmx.net>, 2 * Copyright (C) 2004-2010 Mario Strasser <mast@gmx.net>
3 * Swiss Federal Institute of Technology (ETH) Zurich
4 * 3 *
5 * This module is free software; you can redistribute it and/or modify 4 * This module is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published 5 * it under the terms of the GNU General Public License as published
7 * by the Free Software Foundation; either version 2 of the License, 6 * by the Free Software Foundation; either version 2 of the License,
8 * or (at your option) any later version. 7 * or (at your option) any later version.
9 * 8 *
10 * This module is distributed in the hope that it will be useful, 9 * This module is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details. 12 * GNU General Public License for more details.
14 * 13 *
15 * $Id$ 14 * $Id: tpm_startup.c 367 2010-02-13 15:52:18Z mast $
16 */ 15 */
17 16
18 #include "tpm_emulator.h" 17 #include "tpm_emulator.h"
19 #include "tpm_commands.h" 18 #include "tpm_commands.h"
20 #include "tpm_data.h" 19 #include "tpm_data.h"
21 #include "tpm_handles.h" 20 #include "tpm_handles.h"
22 21
23 /* 22 /*
24 * Admin Startup and State ([TPM_Part3], Section 3) 23 * Admin Startup and State ([TPM_Part3], Section 3)
25 * This section describes the commands that start a TPM. 24 * This section describes the commands that start a TPM.
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 else 59 else
61 SET_TO_ZERO(&tpmData.permanent.data.pcrValue[i].digest); 60 SET_TO_ZERO(&tpmData.permanent.data.pcrValue[i].digest);
62 } 61 }
63 /* reset STCLEAR_FLAGS */ 62 /* reset STCLEAR_FLAGS */
64 SET_TO_ZERO(&tpmData.stclear.flags); 63 SET_TO_ZERO(&tpmData.stclear.flags);
65 tpmData.stclear.flags.tag = TPM_TAG_STCLEAR_FLAGS; 64 tpmData.stclear.flags.tag = TPM_TAG_STCLEAR_FLAGS;
66 tpmData.stclear.flags.deactivated = tpmData.permanent.flags.deactivated; 65 tpmData.stclear.flags.deactivated = tpmData.permanent.flags.deactivated;
67 /* reset STCLEAR_DATA */ 66 /* reset STCLEAR_DATA */
68 SET_TO_ZERO(&tpmData.stclear.data); 67 SET_TO_ZERO(&tpmData.stclear.data);
69 tpmData.stclear.data.tag = TPM_TAG_STCLEAR_DATA; 68 tpmData.stclear.data.tag = TPM_TAG_STCLEAR_DATA;
70 /* flush volatiles and PCR dependent keys keys */ 69 /* flush volatiles and PCR dependent keys */
71 for (i = 0; i < TPM_MAX_KEYS; i++) { 70 for (i = 0; i < TPM_MAX_KEYS; i++) {
72 if (tpmData.permanent.data.keys[i].payload 71 if (tpmData.permanent.data.keys[i].payload
73 && ((tpmData.permanent.data.keys[i].keyFlags & TPM_KEY_FLAG_VOLATILE) 72 && ((tpmData.permanent.data.keys[i].keyFlags & TPM_KEY_FLAG_VOLATILE)
74 || tpmData.permanent.data.keys[i].parentPCRStatus)) 73 || tpmData.permanent.data.keys[i].parentPCRStatus))
75 TPM_FlushSpecific(INDEX_TO_KEY_HANDLE(i), TPM_RT_KEY); 74 TPM_FlushSpecific(INDEX_TO_KEY_HANDLE(i), TPM_RT_KEY);
76 } 75 }
77 /* init key-context nonce */ 76 /* init key-context nonce */
78 SET_TO_RAND(&tpmData.stclear.data.contextNonceKey); 77 SET_TO_RAND(&tpmData.stclear.data.contextNonceKey);
79 /* invalidate counter handle */ 78 /* invalidate counter handle */
80 tpmData.stclear.data.countID = TPM_INVALID_HANDLE; 79 tpmData.stclear.data.countID = TPM_INVALID_HANDLE;
(...skipping 24 matching lines...) Expand all
105 TPM_RESULT TPM_SaveState() 104 TPM_RESULT TPM_SaveState()
106 { 105 {
107 info("TPM_SaveState()"); 106 info("TPM_SaveState()");
108 if (tpmData.permanent.flags.selfTestSucceeded && !tpmData.stclear.flags.deacti vated) { 107 if (tpmData.permanent.flags.selfTestSucceeded && !tpmData.stclear.flags.deacti vated) {
109 return (tpm_store_permanent_data()) ? TPM_FAIL : TPM_SUCCESS; 108 return (tpm_store_permanent_data()) ? TPM_FAIL : TPM_SUCCESS;
110 } else { 109 } else {
111 debug("TPM is deactivated or in fail-stop mode, thus the permanent data is n ot stored"); 110 debug("TPM is deactivated or in fail-stop mode, thus the permanent data is n ot stored");
112 return TPM_SUCCESS; 111 return TPM_SUCCESS;
113 } 112 }
114 } 113 }
OLDNEW
« no previous file with comments | « tpm/tpm_owner.c ('k') | tpm/tpm_storage.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698