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

Side by Side Diff: tpm/tpm_marshalling.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_marshalling.h ('k') | tpm/tpm_migration.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, 3 * 2005-2008 Heiko Stamer <stamer@gaos.org>
4 * 2005, 2006 Heiko Stamer <stamer@gaos.org>
5 * 4 *
6 * This module is free software; you can redistribute it and/or modify 5 * This module is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published 6 * it under the terms of the GNU General Public License as published
8 * by the Free Software Foundation; either version 2 of the License, 7 * by the Free Software Foundation; either version 2 of the License,
9 * or (at your option) any later version. 8 * or (at your option) any later version.
10 * 9 *
11 * This module is distributed in the hope that it will be useful, 10 * This module is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details. 13 * GNU General Public License for more details.
15 * 14 *
16 * $Id$ 15 * $Id: tpm_marshalling.c 372 2010-02-15 12:52:00Z mast $
17 */ 16 */
18 17
19 #include "tpm_marshalling.h" 18 #include "tpm_marshalling.h"
20 #include "tpm_handles.h" 19 #include "tpm_handles.h"
21 #include "crypto/rsa.h" 20 #include "crypto/rsa.h"
22 21
23 int tpm_marshal_UINT32_ARRAY(BYTE **ptr, UINT32 *length, 22 int tpm_marshal_UINT32_ARRAY(BYTE **ptr, UINT32 *length,
24 UINT32 *v, UINT32 n) 23 UINT32 *v, UINT32 n)
25 { 24 {
26 UINT32 i; 25 UINT32 i;
(...skipping 1658 matching lines...) Expand 10 before | Expand all | Expand 10 after
1685 for (i = 0; i < TPM_MAX_KEYS; i++) { 1684 for (i = 0; i < TPM_MAX_KEYS; i++) {
1686 if (tpm_unmarshal_TPM_KEY_DATA(ptr, length, &v->keys[i])) return -1; 1685 if (tpm_unmarshal_TPM_KEY_DATA(ptr, length, &v->keys[i])) return -1;
1687 } 1686 }
1688 if (tpm_unmarshal_UINT32_ARRAY(ptr, length, v->tis_timeouts, TPM_NUM_TIS_TIMEO UTS) 1687 if (tpm_unmarshal_UINT32_ARRAY(ptr, length, v->tis_timeouts, TPM_NUM_TIS_TIMEO UTS)
1689 || tpm_unmarshal_UINT32_ARRAY(ptr, length, v->cmd_durations, TPM_NUM_CMD_D URATIONS)) return -1; 1688 || tpm_unmarshal_UINT32_ARRAY(ptr, length, v->cmd_durations, TPM_NUM_CMD_D URATIONS)) return -1;
1690 return 0; 1689 return 0;
1691 } 1690 }
1692 1691
1693 int tpm_marshal_TPM_STCLEAR_DATA(BYTE **ptr, UINT32 *length, TPM_STCLEAR_DATA *v ) 1692 int tpm_marshal_TPM_STCLEAR_DATA(BYTE **ptr, UINT32 *length, TPM_STCLEAR_DATA *v )
1694 { 1693 {
1695 UINT32 i;
1696 if (tpm_marshal_TPM_STRUCTURE_TAG(ptr, length, v->tag) 1694 if (tpm_marshal_TPM_STRUCTURE_TAG(ptr, length, v->tag)
1697 || tpm_marshal_TPM_NONCE(ptr, length, &v->contextNonceKey) 1695 || tpm_marshal_TPM_NONCE(ptr, length, &v->contextNonceKey)
1698 || tpm_marshal_TPM_COUNT_ID(ptr, length, v->countID) 1696 || tpm_marshal_TPM_COUNT_ID(ptr, length, v->countID)
1699 || tpm_marshal_UINT32(ptr, length, v->ownerReference) 1697 || tpm_marshal_UINT32(ptr, length, v->ownerReference)
1700 || tpm_marshal_BOOL(ptr, length, v->disableResetLock) 1698 || tpm_marshal_BOOL(ptr, length, v->disableResetLock)
1701 || tpm_marshal_UINT32(ptr, length, v->deferredPhysicalPresence)) return -1 ; 1699 || tpm_marshal_UINT32(ptr, length, v->deferredPhysicalPresence)) return -1 ;
1702 return 0; 1700 return 0;
1703 } 1701 }
1704 1702
1705 int tpm_unmarshal_TPM_STCLEAR_DATA(BYTE **ptr, UINT32 *length, TPM_STCLEAR_DATA *v) 1703 int tpm_unmarshal_TPM_STCLEAR_DATA(BYTE **ptr, UINT32 *length, TPM_STCLEAR_DATA *v)
1706 { 1704 {
1707 UINT32 i;
1708 if (tpm_unmarshal_TPM_STRUCTURE_TAG(ptr, length, &v->tag) 1705 if (tpm_unmarshal_TPM_STRUCTURE_TAG(ptr, length, &v->tag)
1709 || tpm_unmarshal_TPM_NONCE(ptr, length, &v->contextNonceKey) 1706 || tpm_unmarshal_TPM_NONCE(ptr, length, &v->contextNonceKey)
1710 || tpm_unmarshal_TPM_COUNT_ID(ptr, length, &v->countID) 1707 || tpm_unmarshal_TPM_COUNT_ID(ptr, length, &v->countID)
1711 || tpm_unmarshal_UINT32(ptr, length, &v->ownerReference) 1708 || tpm_unmarshal_UINT32(ptr, length, &v->ownerReference)
1712 || tpm_unmarshal_BOOL(ptr, length, &v->disableResetLock) 1709 || tpm_unmarshal_BOOL(ptr, length, &v->disableResetLock)
1713 || tpm_unmarshal_UINT32(ptr, length, &v->deferredPhysicalPresence)) return -1; 1710 || tpm_unmarshal_UINT32(ptr, length, &v->deferredPhysicalPresence)) return -1;
1714 return 0; 1711 return 0;
1715 } 1712 }
1716 1713
1717 int tpm_marshal_TPM_SESSION_DATA(BYTE **ptr, UINT32 *length, TPM_SESSION_DATA *v ) 1714 int tpm_marshal_TPM_SESSION_DATA(BYTE **ptr, UINT32 *length, TPM_SESSION_DATA *v )
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1781 if (tpm_unmarshal_TPM_SESSION_DATA(ptr, length, &v->sessions[i])) return -1; 1778 if (tpm_unmarshal_TPM_SESSION_DATA(ptr, length, &v->sessions[i])) return -1;
1782 } 1779 }
1783 for (i = 0; i < TPM_MAX_SESSIONS_DAA; i++) { 1780 for (i = 0; i < TPM_MAX_SESSIONS_DAA; i++) {
1784 if (tpm_unmarshal_TPM_DAA_SESSION_DATA(ptr, length, &v->sessionsDAA[i])) ret urn -1; 1781 if (tpm_unmarshal_TPM_DAA_SESSION_DATA(ptr, length, &v->sessionsDAA[i])) ret urn -1;
1785 } 1782 }
1786 if (tpm_unmarshal_DAAHANDLE(ptr, length, &v->currentDAA) 1783 if (tpm_unmarshal_DAAHANDLE(ptr, length, &v->currentDAA)
1787 || tpm_unmarshal_TPM_TRANSHANDLE(ptr, length, &v->transExclusive)) return -1; 1784 || tpm_unmarshal_TPM_TRANSHANDLE(ptr, length, &v->transExclusive)) return -1;
1788 return 0; 1785 return 0;
1789 } 1786 }
1790 1787
1788 int tpm_marshal_TPM_DATA(BYTE **ptr, UINT32 *length, TPM_DATA *v)
1789 {
1790 if (tpm_marshal_TPM_PERMANENT_FLAGS(ptr, length, &v->permanent.flags)
1791 || tpm_marshal_BOOL(ptr, length, v->permanent.flags.selfTestSucceeded)
1792 || tpm_marshal_BOOL(ptr, length, v->permanent.flags.owned)
1793 || tpm_marshal_TPM_PERMANENT_DATA(ptr, length, &v->permanent.data)
1794 || tpm_marshal_TPM_STCLEAR_FLAGS(ptr, length, &v->stclear.flags)
1795 || tpm_marshal_TPM_STCLEAR_DATA(ptr, length, &v->stclear.data)
1796 || tpm_marshal_TPM_STANY_DATA(ptr, length, &v->stany.data)) return -1;
1797 return 0;
1798 }
1799
1800 int tpm_unmarshal_TPM_DATA(BYTE **ptr, UINT32 *length, TPM_DATA *v)
1801 {
1802 if (tpm_unmarshal_TPM_PERMANENT_FLAGS(ptr, length, &v->permanent.flags)
1803 || tpm_unmarshal_BOOL(ptr, length, &v->permanent.flags.selfTestSucceeded)
1804 || tpm_unmarshal_BOOL(ptr, length, &v->permanent.flags.owned)
1805 || tpm_unmarshal_TPM_PERMANENT_DATA(ptr, length, &v->permanent.data)
1806 || tpm_unmarshal_TPM_STCLEAR_FLAGS(ptr, length, &v->stclear.flags)
1807 || tpm_unmarshal_TPM_STCLEAR_DATA(ptr, length, &v->stclear.data)
1808 || tpm_unmarshal_TPM_STANY_DATA(ptr, length, &v->stany.data)) return -1;
1809 return 0;
1810 }
1811
1791 int tpm_marshal_TPM_RESPONSE(BYTE **ptr, UINT32 *length, TPM_RESPONSE *v) 1812 int tpm_marshal_TPM_RESPONSE(BYTE **ptr, UINT32 *length, TPM_RESPONSE *v)
1792 { 1813 {
1793 if (tpm_marshal_TPM_TAG(ptr, length, v->tag) 1814 if (tpm_marshal_TPM_TAG(ptr, length, v->tag)
1794 || tpm_marshal_UINT32(ptr, length, v->size) 1815 || tpm_marshal_UINT32(ptr, length, v->size)
1795 || tpm_marshal_TPM_RESULT(ptr, length, v->result) 1816 || tpm_marshal_TPM_RESULT(ptr, length, v->result)
1796 || tpm_marshal_BLOB(ptr, length, v->param, v->paramSize)) return -1; 1817 || tpm_marshal_BLOB(ptr, length, v->param, v->paramSize)) return -1;
1797 if (v->tag == TPM_TAG_RSP_AUTH2_COMMAND) { 1818 if (v->tag == TPM_TAG_RSP_AUTH2_COMMAND) {
1798 if (tpm_marshal_TPM_AUTH(ptr, length, v->auth1) 1819 if (tpm_marshal_TPM_AUTH(ptr, length, v->auth1)
1799 || tpm_marshal_TPM_AUTH(ptr, length, v->auth2)) return -1; 1820 || tpm_marshal_TPM_AUTH(ptr, length, v->auth2)) return -1;
1800 } else if (v->tag == TPM_TAG_RSP_AUTH1_COMMAND) { 1821 } else if (v->tag == TPM_TAG_RSP_AUTH1_COMMAND) {
(...skipping 23 matching lines...) Expand all
1824 if (tpm_unmarshal_BLOB(ptr, length, &v->param, v->paramSize) 1845 if (tpm_unmarshal_BLOB(ptr, length, &v->param, v->paramSize)
1825 || tpm_unmarshal_TPM_AUTH(ptr, length, &v->auth1)) return -1; 1846 || tpm_unmarshal_TPM_AUTH(ptr, length, &v->auth1)) return -1;
1826 v->auth1.ordinal = v->ordinal; 1847 v->auth1.ordinal = v->ordinal;
1827 v->auth2.authHandle = TPM_INVALID_HANDLE; 1848 v->auth2.authHandle = TPM_INVALID_HANDLE;
1828 } else { 1849 } else {
1829 v->auth1.authHandle = TPM_INVALID_HANDLE; 1850 v->auth1.authHandle = TPM_INVALID_HANDLE;
1830 v->auth2.authHandle = TPM_INVALID_HANDLE; 1851 v->auth2.authHandle = TPM_INVALID_HANDLE;
1831 } 1852 }
1832 return 0; 1853 return 0;
1833 } 1854 }
OLDNEW
« no previous file with comments | « tpm/tpm_marshalling.h ('k') | tpm/tpm_migration.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698