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

Unified Diff: tpm/tpm_structures.h

Issue 660204: Upgrade to tpm-emulator version 0.7. (Closed)
Patch Set: Created 10 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tpm/tpm_storage.c ('k') | tpm/tpm_testing.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tpm/tpm_structures.h
diff --git a/tpm/tpm_structures.h b/tpm/tpm_structures.h
index 82c184911ffe269f42da4d977287fe21deb67e42..91a76cecc5fc3e7c041f074ab5b9fec67714c01e 100644
--- a/tpm/tpm_structures.h
+++ b/tpm/tpm_structures.h
@@ -1,7 +1,6 @@
-/* Software-Based Trusted Platform Module (TPM) Emulator for Linux
- * Copyright (C) 2004 Mario Strasser <mast@gmx.net>,
- * Swiss Federal Institute of Technology (ETH) Zurich
- * 2006, 2007 Heiko Stamer <stamer@gaos.org>
+/* Software-based Trusted Platform Module (TPM) Emulator
+ * Copyright (C) 2004-2010 Mario Strasser <mast@gmx.net>
+ * 2005-2008 Heiko Stamer <stamer@gaos.org>
*
* This module is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published
@@ -13,7 +12,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * $Id$
+ * $Id: tpm_structures.h 367 2010-02-13 15:52:18Z mast $
*/
#ifndef _TPM_STRUCTURES_H_
@@ -150,6 +149,7 @@ typedef UINT32 TPM_FAMILY_OPERATION;
#define TPM_ET_COUNTER 0x0A
#define TPM_ET_NV 0x0B
#define TPM_ET_OPERATOR 0x0C
+#define TPM_ET_VERIFICATION_AUTH 0x0D
#define TPM_ET_RESERVED_HANDLE 0x40
/* MSB Values */
#define TPM_ET_XOR 0x00
@@ -2236,6 +2236,17 @@ static inline int sizeof_TPM_PERMANENT_DATA(TPM_PERMANENT_DATA *s) {
return size;
}
+static inline void free_TPM_PERMANENT_DATA(TPM_PERMANENT_DATA *s)
+{
+ int i;
+ /* release the EK, SRK as well as all other rsa keys */
+ if (s->endorsementKey.size > 0) tpm_rsa_release_private_key(&s->endorsementKey);
+ if (s->srk.payload) free_TPM_KEY_DATA(s->srk);
+ if (s->manuMaintPub.valid) free_TPM_PUBKEY_DATA(s->manuMaintPub);
+ for (i = 0; i < TPM_MAX_KEYS; i++)
+ if (s->keys[i].payload) free_TPM_KEY_DATA(s->keys[i]);
+}
+
/*
* TPM_STCLEAR_DATA ([TPM_Part2], Section 7.5)
* Most of the data in this structure resets on TPM_Startup(ST_Clear).
@@ -2347,6 +2358,13 @@ typedef struct tdTPM_DATA {
TPM_STANY_DATA data;
} stany;
} TPM_DATA;
+#define sizeof_TPM_DATA(s) ( \
+ sizeof_TPM_PERMANENT_FLAGS(s.permanent.flags) + 2 \
+ + sizeof_TPM_PERMANENT_DATA(&s.permanent.data) \
+ + sizeof_TPM_STCLEAR_FLAGS(s.stclear.flags) \
+ + sizeof_TPM_STCLEAR_DATA(s.stclear.data) \
+ + sizeof_TPM_STANY_DATA(s.stany.data))
+#define free_TPM_DATA(s) { free_TPM_PERMANENT_DATA(&s.permanent.data); }
/*
* Context Structures
« no previous file with comments | « tpm/tpm_storage.c ('k') | tpm/tpm_testing.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698