xref: /aosp_15_r20/external/gsc-utils/tpm_generated/tpm_generated.h (revision 4f2df630800bdcf1d4f0decf95d8a1cb87344f5f)
1*4f2df630SAndroid Build Coastguard Worker // Copyright 2019 The ChromiumOS Authors
2*4f2df630SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*4f2df630SAndroid Build Coastguard Worker // found in the LICENSE file.
4*4f2df630SAndroid Build Coastguard Worker 
5*4f2df630SAndroid Build Coastguard Worker // THIS CODE IS GENERATED - DO NOT MODIFY!
6*4f2df630SAndroid Build Coastguard Worker 
7*4f2df630SAndroid Build Coastguard Worker #ifndef TRUNKS_TPM_GENERATED_H_
8*4f2df630SAndroid Build Coastguard Worker #define TRUNKS_TPM_GENERATED_H_
9*4f2df630SAndroid Build Coastguard Worker 
10*4f2df630SAndroid Build Coastguard Worker #include <string>
11*4f2df630SAndroid Build Coastguard Worker 
12*4f2df630SAndroid Build Coastguard Worker #include "callback.h"
13*4f2df630SAndroid Build Coastguard Worker #include "hex.h"
14*4f2df630SAndroid Build Coastguard Worker #include "trunks_export.h"
15*4f2df630SAndroid Build Coastguard Worker 
16*4f2df630SAndroid Build Coastguard Worker // Mini-libchrome: reproduces just the parts of libchrome that this file needs.
17*4f2df630SAndroid Build Coastguard Worker // Embedded in an anonymous namespace so we're not polluting base.
18*4f2df630SAndroid Build Coastguard Worker namespace {
19*4f2df630SAndroid Build Coastguard Worker namespace base {
20*4f2df630SAndroid Build Coastguard Worker using trunks::BindOnce;
21*4f2df630SAndroid Build Coastguard Worker using trunks::HexEncode;
22*4f2df630SAndroid Build Coastguard Worker using trunks::OnceCallback;
23*4f2df630SAndroid Build Coastguard Worker }
24*4f2df630SAndroid Build Coastguard Worker }
25*4f2df630SAndroid Build Coastguard Worker 
26*4f2df630SAndroid Build Coastguard Worker namespace trunks {
27*4f2df630SAndroid Build Coastguard Worker 
28*4f2df630SAndroid Build Coastguard Worker class AuthorizationDelegate;
29*4f2df630SAndroid Build Coastguard Worker class CommandTransceiver;
30*4f2df630SAndroid Build Coastguard Worker 
31*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA1_DIGEST_SIZE)
32*4f2df630SAndroid Build Coastguard Worker #define SHA1_DIGEST_SIZE 20
33*4f2df630SAndroid Build Coastguard Worker #endif
34*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA1_BLOCK_SIZE)
35*4f2df630SAndroid Build Coastguard Worker #define SHA1_BLOCK_SIZE 64
36*4f2df630SAndroid Build Coastguard Worker #endif
37*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA1_DER_SIZE)
38*4f2df630SAndroid Build Coastguard Worker #define SHA1_DER_SIZE 15
39*4f2df630SAndroid Build Coastguard Worker #endif
40*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA1_DER)
41*4f2df630SAndroid Build Coastguard Worker #define SHA1_DER                                                            \
42*4f2df630SAndroid Build Coastguard Worker   {                                                                         \
43*4f2df630SAndroid Build Coastguard Worker     0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, \
44*4f2df630SAndroid Build Coastguard Worker         0x00, 0x04, 0x14                                                    \
45*4f2df630SAndroid Build Coastguard Worker   }
46*4f2df630SAndroid Build Coastguard Worker #endif
47*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA256_DIGEST_SIZE)
48*4f2df630SAndroid Build Coastguard Worker #define SHA256_DIGEST_SIZE 32
49*4f2df630SAndroid Build Coastguard Worker #endif
50*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA256_BLOCK_SIZE)
51*4f2df630SAndroid Build Coastguard Worker #define SHA256_BLOCK_SIZE 64
52*4f2df630SAndroid Build Coastguard Worker #endif
53*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA256_DER_SIZE)
54*4f2df630SAndroid Build Coastguard Worker #define SHA256_DER_SIZE 19
55*4f2df630SAndroid Build Coastguard Worker #endif
56*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA256_DER)
57*4f2df630SAndroid Build Coastguard Worker #define SHA256_DER                                                          \
58*4f2df630SAndroid Build Coastguard Worker   {                                                                         \
59*4f2df630SAndroid Build Coastguard Worker     0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \
60*4f2df630SAndroid Build Coastguard Worker         0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20                            \
61*4f2df630SAndroid Build Coastguard Worker   }
62*4f2df630SAndroid Build Coastguard Worker #endif
63*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA384_DIGEST_SIZE)
64*4f2df630SAndroid Build Coastguard Worker #define SHA384_DIGEST_SIZE 48
65*4f2df630SAndroid Build Coastguard Worker #endif
66*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA384_BLOCK_SIZE)
67*4f2df630SAndroid Build Coastguard Worker #define SHA384_BLOCK_SIZE 128
68*4f2df630SAndroid Build Coastguard Worker #endif
69*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA384_DER_SIZE)
70*4f2df630SAndroid Build Coastguard Worker #define SHA384_DER_SIZE 19
71*4f2df630SAndroid Build Coastguard Worker #endif
72*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA384_DER)
73*4f2df630SAndroid Build Coastguard Worker #define SHA384_DER                                                          \
74*4f2df630SAndroid Build Coastguard Worker   {                                                                         \
75*4f2df630SAndroid Build Coastguard Worker     0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \
76*4f2df630SAndroid Build Coastguard Worker         0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30                            \
77*4f2df630SAndroid Build Coastguard Worker   }
78*4f2df630SAndroid Build Coastguard Worker #endif
79*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA512_DIGEST_SIZE)
80*4f2df630SAndroid Build Coastguard Worker #define SHA512_DIGEST_SIZE 64
81*4f2df630SAndroid Build Coastguard Worker #endif
82*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA512_BLOCK_SIZE)
83*4f2df630SAndroid Build Coastguard Worker #define SHA512_BLOCK_SIZE 128
84*4f2df630SAndroid Build Coastguard Worker #endif
85*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA512_DER_SIZE)
86*4f2df630SAndroid Build Coastguard Worker #define SHA512_DER_SIZE 19
87*4f2df630SAndroid Build Coastguard Worker #endif
88*4f2df630SAndroid Build Coastguard Worker #if !defined(SHA512_DER)
89*4f2df630SAndroid Build Coastguard Worker #define SHA512_DER                                                          \
90*4f2df630SAndroid Build Coastguard Worker   {                                                                         \
91*4f2df630SAndroid Build Coastguard Worker     0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, \
92*4f2df630SAndroid Build Coastguard Worker         0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40                            \
93*4f2df630SAndroid Build Coastguard Worker   }
94*4f2df630SAndroid Build Coastguard Worker #endif
95*4f2df630SAndroid Build Coastguard Worker #if !defined(SM3_256_DIGEST_SIZE)
96*4f2df630SAndroid Build Coastguard Worker #define SM3_256_DIGEST_SIZE 32
97*4f2df630SAndroid Build Coastguard Worker #endif
98*4f2df630SAndroid Build Coastguard Worker #if !defined(SM3_256_BLOCK_SIZE)
99*4f2df630SAndroid Build Coastguard Worker #define SM3_256_BLOCK_SIZE 64
100*4f2df630SAndroid Build Coastguard Worker #endif
101*4f2df630SAndroid Build Coastguard Worker #if !defined(SM3_256_DER_SIZE)
102*4f2df630SAndroid Build Coastguard Worker #define SM3_256_DER_SIZE 18
103*4f2df630SAndroid Build Coastguard Worker #endif
104*4f2df630SAndroid Build Coastguard Worker #if !defined(SM3_256_DER)
105*4f2df630SAndroid Build Coastguard Worker #define SM3_256_DER                                                         \
106*4f2df630SAndroid Build Coastguard Worker   {                                                                         \
107*4f2df630SAndroid Build Coastguard Worker     0x30, 0x30, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x81, 0x1c, 0x81, 0x45, 0x01, \
108*4f2df630SAndroid Build Coastguard Worker         0x83, 0x11, 0x05, 0x00, 0x04, 0x20                                  \
109*4f2df630SAndroid Build Coastguard Worker   }
110*4f2df630SAndroid Build Coastguard Worker #endif
111*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SESSION_NUMBER)
112*4f2df630SAndroid Build Coastguard Worker #define MAX_SESSION_NUMBER 3
113*4f2df630SAndroid Build Coastguard Worker #endif
114*4f2df630SAndroid Build Coastguard Worker #if !defined(YES)
115*4f2df630SAndroid Build Coastguard Worker #define YES 1
116*4f2df630SAndroid Build Coastguard Worker #endif
117*4f2df630SAndroid Build Coastguard Worker #if !defined(NO)
118*4f2df630SAndroid Build Coastguard Worker #define NO 0
119*4f2df630SAndroid Build Coastguard Worker #endif
120*4f2df630SAndroid Build Coastguard Worker #if !defined(TRUE)
121*4f2df630SAndroid Build Coastguard Worker #define TRUE 1
122*4f2df630SAndroid Build Coastguard Worker #endif
123*4f2df630SAndroid Build Coastguard Worker #if !defined(FALSE)
124*4f2df630SAndroid Build Coastguard Worker #define FALSE 0
125*4f2df630SAndroid Build Coastguard Worker #endif
126*4f2df630SAndroid Build Coastguard Worker #if !defined(SET)
127*4f2df630SAndroid Build Coastguard Worker #define SET 1
128*4f2df630SAndroid Build Coastguard Worker #endif
129*4f2df630SAndroid Build Coastguard Worker #if !defined(CLEAR)
130*4f2df630SAndroid Build Coastguard Worker #define CLEAR 0
131*4f2df630SAndroid Build Coastguard Worker #endif
132*4f2df630SAndroid Build Coastguard Worker #if !defined(BIG_ENDIAN_TPM)
133*4f2df630SAndroid Build Coastguard Worker #define BIG_ENDIAN_TPM NO
134*4f2df630SAndroid Build Coastguard Worker #endif
135*4f2df630SAndroid Build Coastguard Worker #if !defined(LITTLE_ENDIAN_TPM)
136*4f2df630SAndroid Build Coastguard Worker #define LITTLE_ENDIAN_TPM YES
137*4f2df630SAndroid Build Coastguard Worker #endif
138*4f2df630SAndroid Build Coastguard Worker #if !defined(NO_AUTO_ALIGN)
139*4f2df630SAndroid Build Coastguard Worker #define NO_AUTO_ALIGN NO
140*4f2df630SAndroid Build Coastguard Worker #endif
141*4f2df630SAndroid Build Coastguard Worker #if !defined(RSA_KEY_SIZES_BITS)
142*4f2df630SAndroid Build Coastguard Worker #define RSA_KEY_SIZES_BITS \
143*4f2df630SAndroid Build Coastguard Worker   { 1024, 2048 }
144*4f2df630SAndroid Build Coastguard Worker #endif
145*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_RSA_KEY_BITS)
146*4f2df630SAndroid Build Coastguard Worker #define MAX_RSA_KEY_BITS 2048
147*4f2df630SAndroid Build Coastguard Worker #endif
148*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_RSA_KEY_BYTES)
149*4f2df630SAndroid Build Coastguard Worker #define MAX_RSA_KEY_BYTES ((MAX_RSA_KEY_BITS + 7) / 8)
150*4f2df630SAndroid Build Coastguard Worker #endif
151*4f2df630SAndroid Build Coastguard Worker #if !defined(ECC_CURVES)
152*4f2df630SAndroid Build Coastguard Worker #define ECC_CURVES                                      \
153*4f2df630SAndroid Build Coastguard Worker   {                                                     \
154*4f2df630SAndroid Build Coastguard Worker     trunks::TPM_ECC_NIST_P256, trunks::TPM_ECC_BN_P256, \
155*4f2df630SAndroid Build Coastguard Worker         trunks::TPM_ECC_SM2_P256                        \
156*4f2df630SAndroid Build Coastguard Worker   }
157*4f2df630SAndroid Build Coastguard Worker #endif
158*4f2df630SAndroid Build Coastguard Worker #if !defined(ECC_KEY_SIZES_BITS)
159*4f2df630SAndroid Build Coastguard Worker #define ECC_KEY_SIZES_BITS \
160*4f2df630SAndroid Build Coastguard Worker   { 256 }
161*4f2df630SAndroid Build Coastguard Worker #endif
162*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_ECC_KEY_BITS)
163*4f2df630SAndroid Build Coastguard Worker #define MAX_ECC_KEY_BITS 256
164*4f2df630SAndroid Build Coastguard Worker #endif
165*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_ECC_KEY_BYTES)
166*4f2df630SAndroid Build Coastguard Worker #define MAX_ECC_KEY_BYTES ((MAX_ECC_KEY_BITS + 7) / 8)
167*4f2df630SAndroid Build Coastguard Worker #endif
168*4f2df630SAndroid Build Coastguard Worker #if !defined(AES_KEY_SIZES_BITS)
169*4f2df630SAndroid Build Coastguard Worker #define AES_KEY_SIZES_BITS \
170*4f2df630SAndroid Build Coastguard Worker   { 128 }
171*4f2df630SAndroid Build Coastguard Worker #endif
172*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_AES_KEY_BITS)
173*4f2df630SAndroid Build Coastguard Worker #define MAX_AES_KEY_BITS 128
174*4f2df630SAndroid Build Coastguard Worker #endif
175*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_AES_BLOCK_SIZE_BYTES)
176*4f2df630SAndroid Build Coastguard Worker #define MAX_AES_BLOCK_SIZE_BYTES 16
177*4f2df630SAndroid Build Coastguard Worker #endif
178*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_AES_KEY_BYTES)
179*4f2df630SAndroid Build Coastguard Worker #define MAX_AES_KEY_BYTES ((MAX_AES_KEY_BITS + 7) / 8)
180*4f2df630SAndroid Build Coastguard Worker #endif
181*4f2df630SAndroid Build Coastguard Worker #if !defined(SM4_KEY_SIZES_BITS)
182*4f2df630SAndroid Build Coastguard Worker #define SM4_KEY_SIZES_BITS \
183*4f2df630SAndroid Build Coastguard Worker   { 128 }
184*4f2df630SAndroid Build Coastguard Worker #endif
185*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SM4_KEY_BITS)
186*4f2df630SAndroid Build Coastguard Worker #define MAX_SM4_KEY_BITS 128
187*4f2df630SAndroid Build Coastguard Worker #endif
188*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SM4_BLOCK_SIZE_BYTES)
189*4f2df630SAndroid Build Coastguard Worker #define MAX_SM4_BLOCK_SIZE_BYTES 16
190*4f2df630SAndroid Build Coastguard Worker #endif
191*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SM4_KEY_BYTES)
192*4f2df630SAndroid Build Coastguard Worker #define MAX_SM4_KEY_BYTES ((MAX_SM4_KEY_BITS + 7) / 8)
193*4f2df630SAndroid Build Coastguard Worker #endif
194*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SYM_KEY_BITS)
195*4f2df630SAndroid Build Coastguard Worker #define MAX_SYM_KEY_BITS MAX_AES_KEY_BITS
196*4f2df630SAndroid Build Coastguard Worker #endif
197*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SYM_KEY_BYTES)
198*4f2df630SAndroid Build Coastguard Worker #define MAX_SYM_KEY_BYTES MAX_AES_KEY_BYTES
199*4f2df630SAndroid Build Coastguard Worker #endif
200*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SYM_BLOCK_SIZE)
201*4f2df630SAndroid Build Coastguard Worker #define MAX_SYM_BLOCK_SIZE MAX_AES_BLOCK_SIZE_BYTES
202*4f2df630SAndroid Build Coastguard Worker #endif
203*4f2df630SAndroid Build Coastguard Worker #if !defined(FIELD_UPGRADE_IMPLEMENTED)
204*4f2df630SAndroid Build Coastguard Worker #define FIELD_UPGRADE_IMPLEMENTED NO
205*4f2df630SAndroid Build Coastguard Worker #endif
206*4f2df630SAndroid Build Coastguard Worker #if !defined(BSIZE)
207*4f2df630SAndroid Build Coastguard Worker #define BSIZE trunks::UINT16
208*4f2df630SAndroid Build Coastguard Worker #endif
209*4f2df630SAndroid Build Coastguard Worker #if !defined(BUFFER_ALIGNMENT)
210*4f2df630SAndroid Build Coastguard Worker #define BUFFER_ALIGNMENT 4
211*4f2df630SAndroid Build Coastguard Worker #endif
212*4f2df630SAndroid Build Coastguard Worker #if !defined(IMPLEMENTATION_PCR)
213*4f2df630SAndroid Build Coastguard Worker #define IMPLEMENTATION_PCR 24
214*4f2df630SAndroid Build Coastguard Worker #endif
215*4f2df630SAndroid Build Coastguard Worker #if !defined(PLATFORM_PCR)
216*4f2df630SAndroid Build Coastguard Worker #define PLATFORM_PCR 24
217*4f2df630SAndroid Build Coastguard Worker #endif
218*4f2df630SAndroid Build Coastguard Worker #if !defined(DRTM_PCR)
219*4f2df630SAndroid Build Coastguard Worker #define DRTM_PCR 17
220*4f2df630SAndroid Build Coastguard Worker #endif
221*4f2df630SAndroid Build Coastguard Worker #if !defined(HCRTM_PCR)
222*4f2df630SAndroid Build Coastguard Worker #define HCRTM_PCR 0
223*4f2df630SAndroid Build Coastguard Worker #endif
224*4f2df630SAndroid Build Coastguard Worker #if !defined(NUM_LOCALITIES)
225*4f2df630SAndroid Build Coastguard Worker #define NUM_LOCALITIES 5
226*4f2df630SAndroid Build Coastguard Worker #endif
227*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_HANDLE_NUM)
228*4f2df630SAndroid Build Coastguard Worker #define MAX_HANDLE_NUM 3
229*4f2df630SAndroid Build Coastguard Worker #endif
230*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_ACTIVE_SESSIONS)
231*4f2df630SAndroid Build Coastguard Worker #define MAX_ACTIVE_SESSIONS 64
232*4f2df630SAndroid Build Coastguard Worker #endif
233*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_SLOT)
234*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_SLOT trunks::UINT16
235*4f2df630SAndroid Build Coastguard Worker #endif
236*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_COUNTER)
237*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_COUNTER trunks::UINT64
238*4f2df630SAndroid Build Coastguard Worker #endif
239*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_LOADED_SESSIONS)
240*4f2df630SAndroid Build Coastguard Worker #define MAX_LOADED_SESSIONS 3
241*4f2df630SAndroid Build Coastguard Worker #endif
242*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SESSION_NUM)
243*4f2df630SAndroid Build Coastguard Worker #define MAX_SESSION_NUM 3
244*4f2df630SAndroid Build Coastguard Worker #endif
245*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_LOADED_OBJECTS)
246*4f2df630SAndroid Build Coastguard Worker #define MAX_LOADED_OBJECTS 3
247*4f2df630SAndroid Build Coastguard Worker #endif
248*4f2df630SAndroid Build Coastguard Worker #if !defined(MIN_EVICT_OBJECTS)
249*4f2df630SAndroid Build Coastguard Worker #define MIN_EVICT_OBJECTS 2
250*4f2df630SAndroid Build Coastguard Worker #endif
251*4f2df630SAndroid Build Coastguard Worker #if !defined(PCR_SELECT_MIN)
252*4f2df630SAndroid Build Coastguard Worker #define PCR_SELECT_MIN ((PLATFORM_PCR + 7) / 8)
253*4f2df630SAndroid Build Coastguard Worker #endif
254*4f2df630SAndroid Build Coastguard Worker #if !defined(PCR_SELECT_MAX)
255*4f2df630SAndroid Build Coastguard Worker #define PCR_SELECT_MAX ((IMPLEMENTATION_PCR + 7) / 8)
256*4f2df630SAndroid Build Coastguard Worker #endif
257*4f2df630SAndroid Build Coastguard Worker #if !defined(NUM_POLICY_PCR_GROUP)
258*4f2df630SAndroid Build Coastguard Worker #define NUM_POLICY_PCR_GROUP 1
259*4f2df630SAndroid Build Coastguard Worker #endif
260*4f2df630SAndroid Build Coastguard Worker #if !defined(NUM_AUTHVALUE_PCR_GROUP)
261*4f2df630SAndroid Build Coastguard Worker #define NUM_AUTHVALUE_PCR_GROUP 1
262*4f2df630SAndroid Build Coastguard Worker #endif
263*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CONTEXT_SIZE)
264*4f2df630SAndroid Build Coastguard Worker #define MAX_CONTEXT_SIZE 4000
265*4f2df630SAndroid Build Coastguard Worker #endif
266*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_DIGEST_BUFFER)
267*4f2df630SAndroid Build Coastguard Worker #define MAX_DIGEST_BUFFER 1024
268*4f2df630SAndroid Build Coastguard Worker #endif
269*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_NV_INDEX_SIZE)
270*4f2df630SAndroid Build Coastguard Worker #define MAX_NV_INDEX_SIZE 2048
271*4f2df630SAndroid Build Coastguard Worker #endif
272*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_NV_BUFFER_SIZE)
273*4f2df630SAndroid Build Coastguard Worker #define MAX_NV_BUFFER_SIZE 1024
274*4f2df630SAndroid Build Coastguard Worker #endif
275*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_BUFFER)
276*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_BUFFER 1024
277*4f2df630SAndroid Build Coastguard Worker #endif
278*4f2df630SAndroid Build Coastguard Worker #if !defined(NV_MEMORY_SIZE)
279*4f2df630SAndroid Build Coastguard Worker #define NV_MEMORY_SIZE 16384
280*4f2df630SAndroid Build Coastguard Worker #endif
281*4f2df630SAndroid Build Coastguard Worker #if !defined(NUM_STATIC_PCR)
282*4f2df630SAndroid Build Coastguard Worker #define NUM_STATIC_PCR 16
283*4f2df630SAndroid Build Coastguard Worker #endif
284*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_ALG_LIST_SIZE)
285*4f2df630SAndroid Build Coastguard Worker #define MAX_ALG_LIST_SIZE 64
286*4f2df630SAndroid Build Coastguard Worker #endif
287*4f2df630SAndroid Build Coastguard Worker #if !defined(TIMER_PRESCALE)
288*4f2df630SAndroid Build Coastguard Worker #define TIMER_PRESCALE 100000
289*4f2df630SAndroid Build Coastguard Worker #endif
290*4f2df630SAndroid Build Coastguard Worker #if !defined(PRIMARY_SEED_SIZE)
291*4f2df630SAndroid Build Coastguard Worker #define PRIMARY_SEED_SIZE 32
292*4f2df630SAndroid Build Coastguard Worker #endif
293*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_ENCRYPT_ALG)
294*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_ENCRYPT_ALG trunks::TPM_ALG_AES
295*4f2df630SAndroid Build Coastguard Worker #endif
296*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_ENCRYPT_KEY_BITS)
297*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_ENCRYPT_KEY_BITS MAX_SYM_KEY_BITS
298*4f2df630SAndroid Build Coastguard Worker #endif
299*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_ENCRYPT_KEY_BYTES)
300*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_ENCRYPT_KEY_BYTES ((CONTEXT_ENCRYPT_KEY_BITS + 7) / 8)
301*4f2df630SAndroid Build Coastguard Worker #endif
302*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_INTEGRITY_HASH_ALG)
303*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_INTEGRITY_HASH_ALG trunks::TPM_ALG_SHA256
304*4f2df630SAndroid Build Coastguard Worker #endif
305*4f2df630SAndroid Build Coastguard Worker #if !defined(CONTEXT_INTEGRITY_HASH_SIZE)
306*4f2df630SAndroid Build Coastguard Worker #define CONTEXT_INTEGRITY_HASH_SIZE SHA256_DIGEST_SIZE
307*4f2df630SAndroid Build Coastguard Worker #endif
308*4f2df630SAndroid Build Coastguard Worker #if !defined(PROOF_SIZE)
309*4f2df630SAndroid Build Coastguard Worker #define PROOF_SIZE CONTEXT_INTEGRITY_HASH_SIZE
310*4f2df630SAndroid Build Coastguard Worker #endif
311*4f2df630SAndroid Build Coastguard Worker #if !defined(NV_CLOCK_UPDATE_INTERVAL)
312*4f2df630SAndroid Build Coastguard Worker #define NV_CLOCK_UPDATE_INTERVAL 12
313*4f2df630SAndroid Build Coastguard Worker #endif
314*4f2df630SAndroid Build Coastguard Worker #if !defined(NUM_POLICY_PCR)
315*4f2df630SAndroid Build Coastguard Worker #define NUM_POLICY_PCR 1
316*4f2df630SAndroid Build Coastguard Worker #endif
317*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_COMMAND_SIZE)
318*4f2df630SAndroid Build Coastguard Worker #define MAX_COMMAND_SIZE 4096
319*4f2df630SAndroid Build Coastguard Worker #endif
320*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_RESPONSE_SIZE)
321*4f2df630SAndroid Build Coastguard Worker #define MAX_RESPONSE_SIZE 4096
322*4f2df630SAndroid Build Coastguard Worker #endif
323*4f2df630SAndroid Build Coastguard Worker #if !defined(ORDERLY_BITS)
324*4f2df630SAndroid Build Coastguard Worker #define ORDERLY_BITS 8
325*4f2df630SAndroid Build Coastguard Worker #endif
326*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_ORDERLY_COUNT)
327*4f2df630SAndroid Build Coastguard Worker #define MAX_ORDERLY_COUNT ((1 << ORDERLY_BITS) - 1)
328*4f2df630SAndroid Build Coastguard Worker #endif
329*4f2df630SAndroid Build Coastguard Worker #if !defined(ALG_ID_FIRST)
330*4f2df630SAndroid Build Coastguard Worker #define ALG_ID_FIRST trunks::TPM_ALG_FIRST
331*4f2df630SAndroid Build Coastguard Worker #endif
332*4f2df630SAndroid Build Coastguard Worker #if !defined(ALG_ID_LAST)
333*4f2df630SAndroid Build Coastguard Worker #define ALG_ID_LAST trunks::TPM_ALG_LAST
334*4f2df630SAndroid Build Coastguard Worker #endif
335*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_SYM_DATA)
336*4f2df630SAndroid Build Coastguard Worker #define MAX_SYM_DATA 128
337*4f2df630SAndroid Build Coastguard Worker #endif
338*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_RNG_ENTROPY_SIZE)
339*4f2df630SAndroid Build Coastguard Worker #define MAX_RNG_ENTROPY_SIZE 64
340*4f2df630SAndroid Build Coastguard Worker #endif
341*4f2df630SAndroid Build Coastguard Worker #if !defined(RAM_INDEX_SPACE)
342*4f2df630SAndroid Build Coastguard Worker #define RAM_INDEX_SPACE 512
343*4f2df630SAndroid Build Coastguard Worker #endif
344*4f2df630SAndroid Build Coastguard Worker #if !defined(RSA_DEFAULT_PUBLIC_EXPONENT)
345*4f2df630SAndroid Build Coastguard Worker #define RSA_DEFAULT_PUBLIC_EXPONENT 0x00010001
346*4f2df630SAndroid Build Coastguard Worker #endif
347*4f2df630SAndroid Build Coastguard Worker #if !defined(ENABLE_PCR_NO_INCREMENT)
348*4f2df630SAndroid Build Coastguard Worker #define ENABLE_PCR_NO_INCREMENT YES
349*4f2df630SAndroid Build Coastguard Worker #endif
350*4f2df630SAndroid Build Coastguard Worker #if !defined(CRT_FORMAT_RSA)
351*4f2df630SAndroid Build Coastguard Worker #define CRT_FORMAT_RSA YES
352*4f2df630SAndroid Build Coastguard Worker #endif
353*4f2df630SAndroid Build Coastguard Worker #if !defined(PRIVATE_VENDOR_SPECIFIC_BYTES)
354*4f2df630SAndroid Build Coastguard Worker #define PRIVATE_VENDOR_SPECIFIC_BYTES \
355*4f2df630SAndroid Build Coastguard Worker   ((MAX_RSA_KEY_BYTES / 2) * (3 + CRT_FORMAT_RSA * 2))
356*4f2df630SAndroid Build Coastguard Worker #endif
357*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_DATA)
358*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_DATA \
359*4f2df630SAndroid Build Coastguard Worker   (MAX_CAP_BUFFER - sizeof(trunks::TPM_CAP) - sizeof(trunks::UINT32))
360*4f2df630SAndroid Build Coastguard Worker #endif
361*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_ALGS)
362*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_ALGS (trunks::TPM_ALG_LAST - trunks::TPM_ALG_FIRST + 1)
363*4f2df630SAndroid Build Coastguard Worker #endif
364*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_HANDLES)
365*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_HANDLES (MAX_CAP_DATA / sizeof(trunks::TPM_HANDLE))
366*4f2df630SAndroid Build Coastguard Worker #endif
367*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_CC)
368*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_CC ((trunks::TPM_CC_LAST - trunks::TPM_CC_FIRST) + 1)
369*4f2df630SAndroid Build Coastguard Worker #endif
370*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_CCE)
371*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_CCE ((trunks::TPM_CCE_LAST - trunks::TPM_CCE_FIRST) + 1)
372*4f2df630SAndroid Build Coastguard Worker #endif
373*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_CAP_CC_ALL)
374*4f2df630SAndroid Build Coastguard Worker #define MAX_CAP_CC_ALL (MAX_CAP_CC + MAX_CAP_CCE)
375*4f2df630SAndroid Build Coastguard Worker #endif
376*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_TPM_PROPERTIES)
377*4f2df630SAndroid Build Coastguard Worker #define MAX_TPM_PROPERTIES (MAX_CAP_DATA / sizeof(trunks::TPMS_TAGGED_PROPERTY))
378*4f2df630SAndroid Build Coastguard Worker #endif
379*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_PCR_PROPERTIES)
380*4f2df630SAndroid Build Coastguard Worker #define MAX_PCR_PROPERTIES \
381*4f2df630SAndroid Build Coastguard Worker   (MAX_CAP_DATA / sizeof(trunks::TPMS_TAGGED_PCR_SELECT))
382*4f2df630SAndroid Build Coastguard Worker #endif
383*4f2df630SAndroid Build Coastguard Worker #if !defined(MAX_ECC_CURVES)
384*4f2df630SAndroid Build Coastguard Worker #define MAX_ECC_CURVES (MAX_CAP_DATA / sizeof(trunks::TPM_ECC_CURVE))
385*4f2df630SAndroid Build Coastguard Worker #endif
386*4f2df630SAndroid Build Coastguard Worker #if !defined(HASH_COUNT)
387*4f2df630SAndroid Build Coastguard Worker #define HASH_COUNT 5
388*4f2df630SAndroid Build Coastguard Worker #endif
389*4f2df630SAndroid Build Coastguard Worker 
390*4f2df630SAndroid Build Coastguard Worker typedef uint8_t UINT8;
391*4f2df630SAndroid Build Coastguard Worker typedef uint8_t BYTE;
392*4f2df630SAndroid Build Coastguard Worker typedef int8_t INT8;
393*4f2df630SAndroid Build Coastguard Worker typedef int BOOL;
394*4f2df630SAndroid Build Coastguard Worker typedef uint16_t UINT16;
395*4f2df630SAndroid Build Coastguard Worker typedef int16_t INT16;
396*4f2df630SAndroid Build Coastguard Worker typedef uint32_t UINT32;
397*4f2df630SAndroid Build Coastguard Worker typedef int32_t INT32;
398*4f2df630SAndroid Build Coastguard Worker typedef uint64_t UINT64;
399*4f2df630SAndroid Build Coastguard Worker typedef int64_t INT64;
400*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_ALGORITHM_ID;
401*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_MODIFIER_INDICATOR;
402*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_AUTHORIZATION_SIZE;
403*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_PARAMETER_SIZE;
404*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_KEY_SIZE;
405*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_KEY_BITS;
406*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_HANDLE;
407*4f2df630SAndroid Build Coastguard Worker struct TPM2B_DIGEST;
408*4f2df630SAndroid Build Coastguard Worker typedef TPM2B_DIGEST TPM2B_NONCE;
409*4f2df630SAndroid Build Coastguard Worker typedef TPM2B_DIGEST TPM2B_AUTH;
410*4f2df630SAndroid Build Coastguard Worker typedef TPM2B_DIGEST TPM2B_OPERAND;
411*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_SIGHASH;
412*4f2df630SAndroid Build Coastguard Worker typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_HMAC;
413*4f2df630SAndroid Build Coastguard Worker typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_RSASSA;
414*4f2df630SAndroid Build Coastguard Worker typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_RSAPSS;
415*4f2df630SAndroid Build Coastguard Worker typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_ECDSA;
416*4f2df630SAndroid Build Coastguard Worker typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_SM2;
417*4f2df630SAndroid Build Coastguard Worker typedef TPMS_SCHEME_SIGHASH TPMS_SCHEME_ECSCHNORR;
418*4f2df630SAndroid Build Coastguard Worker typedef BYTE TPMI_YES_NO;
419*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_DH_OBJECT;
420*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_DH_PERSISTENT;
421*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_DH_ENTITY;
422*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_DH_PCR;
423*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_SH_AUTH_SESSION;
424*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_SH_HMAC;
425*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_SH_POLICY;
426*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_DH_CONTEXT;
427*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_HIERARCHY;
428*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_ENABLES;
429*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_HIERARCHY_AUTH;
430*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_PLATFORM;
431*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_OWNER;
432*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_ENDORSEMENT;
433*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_PROVISION;
434*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_CLEAR;
435*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_NV_AUTH;
436*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_LOCKOUT;
437*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPMI_RH_NV_INDEX;
438*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_ALG_ID;
439*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_HASH;
440*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_ASYM;
441*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_SYM;
442*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_SYM_OBJECT;
443*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_SYM_MODE;
444*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_KDF;
445*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_SIG_SCHEME;
446*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ECC_KEY_EXCHANGE;
447*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_ST;
448*4f2df630SAndroid Build Coastguard Worker typedef TPM_ST TPMI_ST_COMMAND_TAG;
449*4f2df630SAndroid Build Coastguard Worker typedef TPM_ST TPMI_ST_ATTEST;
450*4f2df630SAndroid Build Coastguard Worker typedef TPM_KEY_BITS TPMI_AES_KEY_BITS;
451*4f2df630SAndroid Build Coastguard Worker typedef TPM_KEY_BITS TPMI_SM4_KEY_BITS;
452*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_KEYEDHASH_SCHEME;
453*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_ASYM_SCHEME;
454*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_RSA_SCHEME;
455*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_RSA_DECRYPT;
456*4f2df630SAndroid Build Coastguard Worker typedef TPM_KEY_BITS TPMI_RSA_KEY_BITS;
457*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_ECC_SCHEME;
458*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_ECC_CURVE;
459*4f2df630SAndroid Build Coastguard Worker typedef TPM_ECC_CURVE TPMI_ECC_CURVE;
460*4f2df630SAndroid Build Coastguard Worker typedef TPM_ALG_ID TPMI_ALG_PUBLIC;
461*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPMA_ALGORITHM;
462*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPMA_OBJECT;
463*4f2df630SAndroid Build Coastguard Worker typedef UINT8 TPMA_SESSION;
464*4f2df630SAndroid Build Coastguard Worker typedef UINT8 TPMA_LOCALITY;
465*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPMA_PERMANENT;
466*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPMA_STARTUP_CLEAR;
467*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPMA_MEMORY;
468*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_CC;
469*4f2df630SAndroid Build Coastguard Worker typedef TPM_CC TPMA_CC;
470*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_NV_INDEX;
471*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPMA_NV;
472*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_SPEC;
473*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_GENERATED;
474*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_RC;
475*4f2df630SAndroid Build Coastguard Worker typedef INT8 TPM_CLOCK_ADJUST;
476*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_EO;
477*4f2df630SAndroid Build Coastguard Worker typedef UINT16 TPM_SU;
478*4f2df630SAndroid Build Coastguard Worker typedef UINT8 TPM_SE;
479*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_CAP;
480*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_PT;
481*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_PT_PCR;
482*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_PS;
483*4f2df630SAndroid Build Coastguard Worker typedef UINT8 TPM_HT;
484*4f2df630SAndroid Build Coastguard Worker typedef UINT32 TPM_RH;
485*4f2df630SAndroid Build Coastguard Worker typedef TPM_HANDLE TPM_HC;
486*4f2df630SAndroid Build Coastguard Worker 
487*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SPEC TPM_SPEC_FAMILY = 0x322E3000;
488*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SPEC TPM_SPEC_LEVEL = 00;
489*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SPEC TPM_SPEC_VERSION = 99;
490*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SPEC TPM_SPEC_YEAR = 2013;
491*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SPEC TPM_SPEC_DAY_OF_YEAR = 304;
492*4f2df630SAndroid Build Coastguard Worker constexpr TPM_GENERATED TPM_GENERATED_VALUE = 0xff544347;
493*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ERROR = 0x0000;
494*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_FIRST = 0x0001;
495*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_RSA = 0x0001;
496*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SHA = 0x0004;
497*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SHA1 = 0x0004;
498*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_HMAC = 0x0005;
499*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_AES = 0x0006;
500*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_MGF1 = 0x0007;
501*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_KEYEDHASH = 0x0008;
502*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_XOR = 0x000A;
503*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SHA256 = 0x000B;
504*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SHA384 = 0x000C;
505*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SHA512 = 0x000D;
506*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_NULL = 0x0010;
507*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SM3_256 = 0x0012;
508*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SM4 = 0x0013;
509*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_RSASSA = 0x0014;
510*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_RSAES = 0x0015;
511*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_RSAPSS = 0x0016;
512*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_OAEP = 0x0017;
513*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECDSA = 0x0018;
514*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECDH = 0x0019;
515*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECDAA = 0x001A;
516*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SM2 = 0x001B;
517*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECSCHNORR = 0x001C;
518*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECMQV = 0x001D;
519*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_KDF1_SP800_56a = 0x0020;
520*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_KDF2 = 0x0021;
521*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_KDF1_SP800_108 = 0x0022;
522*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECC = 0x0023;
523*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_SYMCIPHER = 0x0025;
524*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_CTR = 0x0040;
525*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_OFB = 0x0041;
526*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_CBC = 0x0042;
527*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_CFB = 0x0043;
528*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_ECB = 0x0044;
529*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ALG_ID TPM_ALG_LAST = 0x0044;
530*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_NONE = 0x0000;
531*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_NIST_P192 = 0x0001;
532*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_NIST_P224 = 0x0002;
533*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_NIST_P256 = 0x0003;
534*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_NIST_P384 = 0x0004;
535*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_NIST_P521 = 0x0005;
536*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_BN_P256 = 0x0010;
537*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_BN_P638 = 0x0011;
538*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ECC_CURVE TPM_ECC_SM2_P256 = 0x0020;
539*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_FIRST = 0x0000011F;
540*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PP_FIRST = 0x0000011F;
541*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_UndefineSpaceSpecial = 0x0000011F;
542*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_EvictControl = 0x00000120;
543*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_HierarchyControl = 0x00000121;
544*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_UndefineSpace = 0x00000122;
545*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ChangeEPS = 0x00000124;
546*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ChangePPS = 0x00000125;
547*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Clear = 0x00000126;
548*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ClearControl = 0x00000127;
549*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ClockSet = 0x00000128;
550*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_HierarchyChangeAuth = 0x00000129;
551*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_DefineSpace = 0x0000012A;
552*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_Allocate = 0x0000012B;
553*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_SetAuthPolicy = 0x0000012C;
554*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PP_Commands = 0x0000012D;
555*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_SetPrimaryPolicy = 0x0000012E;
556*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_FieldUpgradeStart = 0x0000012F;
557*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ClockRateAdjust = 0x00000130;
558*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_CreatePrimary = 0x00000131;
559*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_GlobalWriteLock = 0x00000132;
560*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PP_LAST = 0x00000132;
561*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_GetCommandAuditDigest = 0x00000133;
562*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_Increment = 0x00000134;
563*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_SetBits = 0x00000135;
564*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_Extend = 0x00000136;
565*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_Write = 0x00000137;
566*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_WriteLock = 0x00000138;
567*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_DictionaryAttackLockReset = 0x00000139;
568*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_DictionaryAttackParameters = 0x0000013A;
569*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_ChangeAuth = 0x0000013B;
570*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_Event = 0x0000013C;
571*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_Reset = 0x0000013D;
572*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_SequenceComplete = 0x0000013E;
573*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_SetAlgorithmSet = 0x0000013F;
574*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_SetCommandCodeAuditStatus = 0x00000140;
575*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_FieldUpgradeData = 0x00000141;
576*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_IncrementalSelfTest = 0x00000142;
577*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_SelfTest = 0x00000143;
578*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Startup = 0x00000144;
579*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Shutdown = 0x00000145;
580*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_StirRandom = 0x00000146;
581*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ActivateCredential = 0x00000147;
582*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Certify = 0x00000148;
583*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyNV = 0x00000149;
584*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_CertifyCreation = 0x0000014A;
585*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Duplicate = 0x0000014B;
586*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_GetTime = 0x0000014C;
587*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_GetSessionAuditDigest = 0x0000014D;
588*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_Read = 0x0000014E;
589*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_ReadLock = 0x0000014F;
590*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ObjectChangeAuth = 0x00000150;
591*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicySecret = 0x00000151;
592*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Rewrap = 0x00000152;
593*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Create = 0x00000153;
594*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ECDH_ZGen = 0x00000154;
595*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_HMAC = 0x00000155;
596*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Import = 0x00000156;
597*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Load = 0x00000157;
598*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Quote = 0x00000158;
599*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_RSA_Decrypt = 0x00000159;
600*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_HMAC_Start = 0x0000015B;
601*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_SequenceUpdate = 0x0000015C;
602*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Sign = 0x0000015D;
603*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Unseal = 0x0000015E;
604*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicySigned = 0x00000160;
605*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ContextLoad = 0x00000161;
606*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ContextSave = 0x00000162;
607*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ECDH_KeyGen = 0x00000163;
608*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_EncryptDecrypt = 0x00000164;
609*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_FlushContext = 0x00000165;
610*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_LoadExternal = 0x00000167;
611*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_MakeCredential = 0x00000168;
612*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_ReadPublic = 0x00000169;
613*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyAuthorize = 0x0000016A;
614*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyAuthValue = 0x0000016B;
615*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyCommandCode = 0x0000016C;
616*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyCounterTimer = 0x0000016D;
617*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyCpHash = 0x0000016E;
618*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyLocality = 0x0000016F;
619*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyNameHash = 0x00000170;
620*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyOR = 0x00000171;
621*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyTicket = 0x00000172;
622*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ReadPublic = 0x00000173;
623*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_RSA_Encrypt = 0x00000174;
624*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_StartAuthSession = 0x00000176;
625*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_VerifySignature = 0x00000177;
626*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ECC_Parameters = 0x00000178;
627*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_FirmwareRead = 0x00000179;
628*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_GetCapability = 0x0000017A;
629*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_GetRandom = 0x0000017B;
630*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_GetTestResult = 0x0000017C;
631*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Hash = 0x0000017D;
632*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_Read = 0x0000017E;
633*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyPCR = 0x0000017F;
634*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyRestart = 0x00000180;
635*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ReadClock = 0x00000181;
636*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_Extend = 0x00000182;
637*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PCR_SetAuthValue = 0x00000183;
638*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_NV_Certify = 0x00000184;
639*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_EventSequenceComplete = 0x00000185;
640*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_HashSequenceStart = 0x00000186;
641*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyPhysicalPresence = 0x00000187;
642*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyDuplicationSelect = 0x00000188;
643*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyGetDigest = 0x00000189;
644*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_TestParms = 0x0000018A;
645*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_Commit = 0x0000018B;
646*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyPassword = 0x0000018C;
647*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_ZGen_2Phase = 0x0000018D;
648*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_EC_Ephemeral = 0x0000018E;
649*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_PolicyNvWritten = 0x0000018F;
650*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CC_LAST = 0x0000018F;
651*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CCE_FIRST = 0x20008001;
652*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CCE_PolicyFidoSigned = 0x20008001;
653*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CC TPM_CCE_LAST = 0x20008001;
654*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SUCCESS = 0x000;
655*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_BAD_TAG = 0x01E;
656*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC RC_VER1 = 0x100;
657*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_INITIALIZE = RC_VER1 + 0x000;
658*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_FAILURE = RC_VER1 + 0x001;
659*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SEQUENCE = RC_VER1 + 0x003;
660*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_PRIVATE = RC_VER1 + 0x00B;
661*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_HMAC = RC_VER1 + 0x019;
662*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_DISABLED = RC_VER1 + 0x020;
663*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_EXCLUSIVE = RC_VER1 + 0x021;
664*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_AUTH_TYPE = RC_VER1 + 0x024;
665*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_AUTH_MISSING = RC_VER1 + 0x025;
666*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_POLICY = RC_VER1 + 0x026;
667*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_PCR = RC_VER1 + 0x027;
668*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_PCR_CHANGED = RC_VER1 + 0x028;
669*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_UPGRADE = RC_VER1 + 0x02D;
670*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_TOO_MANY_CONTEXTS = RC_VER1 + 0x02E;
671*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_AUTH_UNAVAILABLE = RC_VER1 + 0x02F;
672*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REBOOT = RC_VER1 + 0x030;
673*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_UNBALANCED = RC_VER1 + 0x031;
674*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_COMMAND_SIZE = RC_VER1 + 0x042;
675*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_COMMAND_CODE = RC_VER1 + 0x043;
676*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_AUTHSIZE = RC_VER1 + 0x044;
677*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_AUTH_CONTEXT = RC_VER1 + 0x045;
678*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_RANGE = RC_VER1 + 0x046;
679*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_SIZE = RC_VER1 + 0x047;
680*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_LOCKED = RC_VER1 + 0x048;
681*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_AUTHORIZATION = RC_VER1 + 0x049;
682*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_UNINITIALIZED = RC_VER1 + 0x04A;
683*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_SPACE = RC_VER1 + 0x04B;
684*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_DEFINED = RC_VER1 + 0x04C;
685*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_BAD_CONTEXT = RC_VER1 + 0x050;
686*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_CPHASH = RC_VER1 + 0x051;
687*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_PARENT = RC_VER1 + 0x052;
688*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NEEDS_TEST = RC_VER1 + 0x053;
689*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NO_RESULT = RC_VER1 + 0x054;
690*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SENSITIVE = RC_VER1 + 0x055;
691*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC RC_MAX_FM0 = RC_VER1 + 0x07F;
692*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC RC_FMT1 = 0x080;
693*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_ASYMMETRIC = RC_FMT1 + 0x001;
694*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_ATTRIBUTES = RC_FMT1 + 0x002;
695*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_HASH = RC_FMT1 + 0x003;
696*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_VALUE = RC_FMT1 + 0x004;
697*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_HIERARCHY = RC_FMT1 + 0x005;
698*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_KEY_SIZE = RC_FMT1 + 0x007;
699*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_MGF = RC_FMT1 + 0x008;
700*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_MODE = RC_FMT1 + 0x009;
701*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_TYPE = RC_FMT1 + 0x00A;
702*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_HANDLE = RC_FMT1 + 0x00B;
703*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_KDF = RC_FMT1 + 0x00C;
704*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_RANGE = RC_FMT1 + 0x00D;
705*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_AUTH_FAIL = RC_FMT1 + 0x00E;
706*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NONCE = RC_FMT1 + 0x00F;
707*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_PP = RC_FMT1 + 0x010;
708*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SCHEME = RC_FMT1 + 0x012;
709*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SIZE = RC_FMT1 + 0x015;
710*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SYMMETRIC = RC_FMT1 + 0x016;
711*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_TAG = RC_FMT1 + 0x017;
712*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SELECTOR = RC_FMT1 + 0x018;
713*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_INSUFFICIENT = RC_FMT1 + 0x01A;
714*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SIGNATURE = RC_FMT1 + 0x01B;
715*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_KEY = RC_FMT1 + 0x01C;
716*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_POLICY_FAIL = RC_FMT1 + 0x01D;
717*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_INTEGRITY = RC_FMT1 + 0x01F;
718*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_TICKET = RC_FMT1 + 0x020;
719*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_RESERVED_BITS = RC_FMT1 + 0x021;
720*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_BAD_AUTH = RC_FMT1 + 0x022;
721*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_EXPIRED = RC_FMT1 + 0x023;
722*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_POLICY_CC = RC_FMT1 + 0x024;
723*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_BINDING = RC_FMT1 + 0x025;
724*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_CURVE = RC_FMT1 + 0x026;
725*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_ECC_POINT = RC_FMT1 + 0x027;
726*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC RC_WARN = 0x900;
727*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_CONTEXT_GAP = RC_WARN + 0x001;
728*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_OBJECT_MEMORY = RC_WARN + 0x002;
729*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SESSION_MEMORY = RC_WARN + 0x003;
730*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_MEMORY = RC_WARN + 0x004;
731*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_SESSION_HANDLES = RC_WARN + 0x005;
732*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_OBJECT_HANDLES = RC_WARN + 0x006;
733*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_LOCALITY = RC_WARN + 0x007;
734*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_YIELDED = RC_WARN + 0x008;
735*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_CANCELED = RC_WARN + 0x009;
736*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_TESTING = RC_WARN + 0x00A;
737*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H0 = RC_WARN + 0x010;
738*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H1 = RC_WARN + 0x011;
739*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H2 = RC_WARN + 0x012;
740*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H3 = RC_WARN + 0x013;
741*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H4 = RC_WARN + 0x014;
742*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H5 = RC_WARN + 0x015;
743*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_H6 = RC_WARN + 0x016;
744*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S0 = RC_WARN + 0x018;
745*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S1 = RC_WARN + 0x019;
746*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S2 = RC_WARN + 0x01A;
747*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S3 = RC_WARN + 0x01B;
748*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S4 = RC_WARN + 0x01C;
749*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S5 = RC_WARN + 0x01D;
750*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_REFERENCE_S6 = RC_WARN + 0x01E;
751*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_RATE = RC_WARN + 0x020;
752*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_LOCKOUT = RC_WARN + 0x021;
753*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_RETRY = RC_WARN + 0x022;
754*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NV_UNAVAILABLE = RC_WARN + 0x023;
755*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_NOT_USED = RC_WARN + 0x7F;
756*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_H = 0x000;
757*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_P = 0x040;
758*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_S = 0x800;
759*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_1 = 0x100;
760*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_2 = 0x200;
761*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_3 = 0x300;
762*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_4 = 0x400;
763*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_5 = 0x500;
764*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_6 = 0x600;
765*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_7 = 0x700;
766*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_8 = 0x800;
767*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_9 = 0x900;
768*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_A = 0xA00;
769*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_B = 0xB00;
770*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_C = 0xC00;
771*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_D = 0xD00;
772*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_E = 0xE00;
773*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_F = 0xF00;
774*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RC TPM_RC_N_MASK = 0xF00;
775*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_COARSE_SLOWER = -3;
776*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_MEDIUM_SLOWER = -2;
777*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_FINE_SLOWER = -1;
778*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_NO_CHANGE = 0;
779*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_FINE_FASTER = 1;
780*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_MEDIUM_FASTER = 2;
781*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CLOCK_ADJUST TPM_CLOCK_COARSE_FASTER = 3;
782*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_EQ = 0x0000;
783*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_NEQ = 0x0001;
784*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_SIGNED_GT = 0x0002;
785*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_UNSIGNED_GT = 0x0003;
786*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_SIGNED_LT = 0x0004;
787*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_UNSIGNED_LT = 0x0005;
788*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_SIGNED_GE = 0x0006;
789*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_UNSIGNED_GE = 0x0007;
790*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_SIGNED_LE = 0x0008;
791*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_UNSIGNED_LE = 0x0009;
792*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_BITSET = 0x000A;
793*4f2df630SAndroid Build Coastguard Worker constexpr TPM_EO TPM_EO_BITCLEAR = 0x000B;
794*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_RSP_COMMAND = 0x00C4;
795*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_NULL = 0X8000;
796*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_NO_SESSIONS = 0x8001;
797*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_SESSIONS = 0x8002;
798*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_NV = 0x8014;
799*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_COMMAND_AUDIT = 0x8015;
800*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_SESSION_AUDIT = 0x8016;
801*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_CERTIFY = 0x8017;
802*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_QUOTE = 0x8018;
803*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_TIME = 0x8019;
804*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_ATTEST_CREATION = 0x801A;
805*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_CREATION = 0x8021;
806*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_VERIFIED = 0x8022;
807*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_AUTH_SECRET = 0x8023;
808*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_HASHCHECK = 0x8024;
809*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_AUTH_SIGNED = 0x8025;
810*4f2df630SAndroid Build Coastguard Worker constexpr TPM_ST TPM_ST_FU_MANIFEST = 0x8029;
811*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SU TPM_SU_CLEAR = 0x0000;
812*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SU TPM_SU_STATE = 0x0001;
813*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SE TPM_SE_HMAC = 0x00;
814*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SE TPM_SE_POLICY = 0x01;
815*4f2df630SAndroid Build Coastguard Worker constexpr TPM_SE TPM_SE_TRIAL = 0x03;
816*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_FIRST = 0x00000000;
817*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_ALGS = 0x00000000;
818*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_HANDLES = 0x00000001;
819*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_COMMANDS = 0x00000002;
820*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_PP_COMMANDS = 0x00000003;
821*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_AUDIT_COMMANDS = 0x00000004;
822*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_PCRS = 0x00000005;
823*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_TPM_PROPERTIES = 0x00000006;
824*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_PCR_PROPERTIES = 0x00000007;
825*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_ECC_CURVES = 0x00000008;
826*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_LAST = 0x00000008;
827*4f2df630SAndroid Build Coastguard Worker constexpr TPM_CAP TPM_CAP_VENDOR_PROPERTY = 0x00000100;
828*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NONE = 0x00000000;
829*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT PT_GROUP = 0x00000100;
830*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT PT_FIXED = PT_GROUP * 1;
831*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_FAMILY_INDICATOR = PT_FIXED + 0;
832*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_LEVEL = PT_FIXED + 1;
833*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_REVISION = PT_FIXED + 2;
834*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_DAY_OF_YEAR = PT_FIXED + 3;
835*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_YEAR = PT_FIXED + 4;
836*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MANUFACTURER = PT_FIXED + 5;
837*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_VENDOR_STRING_1 = PT_FIXED + 6;
838*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_VENDOR_STRING_2 = PT_FIXED + 7;
839*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_VENDOR_STRING_3 = PT_FIXED + 8;
840*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_VENDOR_STRING_4 = PT_FIXED + 9;
841*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_VENDOR_TPM_TYPE = PT_FIXED + 10;
842*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_FIRMWARE_VERSION_1 = PT_FIXED + 11;
843*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_FIRMWARE_VERSION_2 = PT_FIXED + 12;
844*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_INPUT_BUFFER = PT_FIXED + 13;
845*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_TRANSIENT_MIN = PT_FIXED + 14;
846*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_PERSISTENT_MIN = PT_FIXED + 15;
847*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_LOADED_MIN = PT_FIXED + 16;
848*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_ACTIVE_SESSIONS_MAX = PT_FIXED + 17;
849*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PCR_COUNT = PT_FIXED + 18;
850*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PCR_SELECT_MIN = PT_FIXED + 19;
851*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_CONTEXT_GAP_MAX = PT_FIXED + 20;
852*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NV_COUNTERS_MAX = PT_FIXED + 22;
853*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NV_INDEX_MAX = PT_FIXED + 23;
854*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MEMORY = PT_FIXED + 24;
855*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_CLOCK_UPDATE = PT_FIXED + 25;
856*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_CONTEXT_HASH = PT_FIXED + 26;
857*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_CONTEXT_SYM = PT_FIXED + 27;
858*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_CONTEXT_SYM_SIZE = PT_FIXED + 28;
859*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_ORDERLY_COUNT = PT_FIXED + 29;
860*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MAX_COMMAND_SIZE = PT_FIXED + 30;
861*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MAX_RESPONSE_SIZE = PT_FIXED + 31;
862*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MAX_DIGEST = PT_FIXED + 32;
863*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MAX_OBJECT_CONTEXT = PT_FIXED + 33;
864*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MAX_SESSION_CONTEXT = PT_FIXED + 34;
865*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PS_FAMILY_INDICATOR = PT_FIXED + 35;
866*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PS_LEVEL = PT_FIXED + 36;
867*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PS_REVISION = PT_FIXED + 37;
868*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PS_DAY_OF_YEAR = PT_FIXED + 38;
869*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PS_YEAR = PT_FIXED + 39;
870*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_SPLIT_MAX = PT_FIXED + 40;
871*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_TOTAL_COMMANDS = PT_FIXED + 41;
872*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_LIBRARY_COMMANDS = PT_FIXED + 42;
873*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_VENDOR_COMMANDS = PT_FIXED + 43;
874*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NV_BUFFER_MAX = PT_FIXED + 44;
875*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT PT_VAR = PT_GROUP * 2;
876*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_PERMANENT = PT_VAR + 0;
877*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_STARTUP_CLEAR = PT_VAR + 1;
878*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_NV_INDEX = PT_VAR + 2;
879*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_LOADED = PT_VAR + 3;
880*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_LOADED_AVAIL = PT_VAR + 4;
881*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_ACTIVE = PT_VAR + 5;
882*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_ACTIVE_AVAIL = PT_VAR + 6;
883*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_TRANSIENT_AVAIL = PT_VAR + 7;
884*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_PERSISTENT = PT_VAR + 8;
885*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_HR_PERSISTENT_AVAIL = PT_VAR + 9;
886*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NV_COUNTERS = PT_VAR + 10;
887*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NV_COUNTERS_AVAIL = PT_VAR + 11;
888*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_ALGORITHM_SET = PT_VAR + 12;
889*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_LOADED_CURVES = PT_VAR + 13;
890*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_LOCKOUT_COUNTER = PT_VAR + 14;
891*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_MAX_AUTH_FAIL = PT_VAR + 15;
892*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_LOCKOUT_INTERVAL = PT_VAR + 16;
893*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_LOCKOUT_RECOVERY = PT_VAR + 17;
894*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_NV_WRITE_RECOVERY = PT_VAR + 18;
895*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_AUDIT_COUNTER_0 = PT_VAR + 19;
896*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT TPM_PT_AUDIT_COUNTER_1 = PT_VAR + 20;
897*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_FIRST = 0x00000000;
898*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_SAVE = 0x00000000;
899*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L0 = 0x00000001;
900*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L0 = 0x00000002;
901*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L1 = 0x00000003;
902*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L1 = 0x00000004;
903*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L2 = 0x00000005;
904*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L2 = 0x00000006;
905*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L3 = 0x00000007;
906*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L3 = 0x00000008;
907*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_EXTEND_L4 = 0x00000009;
908*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_RESET_L4 = 0x0000000A;
909*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_NO_INCREMENT = 0x00000011;
910*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_DRTM_RESET = 0x00000012;
911*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_POLICY = 0x00000013;
912*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_AUTH = 0x00000014;
913*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PT_PCR TPM_PT_PCR_LAST = 0x00000014;
914*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_MAIN = 0x00000000;
915*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_PC = 0x00000001;
916*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_PDA = 0x00000002;
917*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_CELL_PHONE = 0x00000003;
918*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_SERVER = 0x00000004;
919*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_PERIPHERAL = 0x00000005;
920*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_TSS = 0x00000006;
921*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_STORAGE = 0x00000007;
922*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_AUTHENTICATION = 0x00000008;
923*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_EMBEDDED = 0x00000009;
924*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_HARDCOPY = 0x0000000A;
925*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_INFRASTRUCTURE = 0x0000000B;
926*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_VIRTUALIZATION = 0x0000000C;
927*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_TNC = 0x0000000D;
928*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_MULTI_TENANT = 0x0000000E;
929*4f2df630SAndroid Build Coastguard Worker constexpr TPM_PS TPM_PS_TC = 0x0000000F;
930*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_PCR = 0x00;
931*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_NV_INDEX = 0x01;
932*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_HMAC_SESSION = 0x02;
933*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_LOADED_SESSION = 0x02;
934*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_POLICY_SESSION = 0x03;
935*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_ACTIVE_SESSION = 0x03;
936*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_PERMANENT = 0x40;
937*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_TRANSIENT = 0x80;
938*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HT TPM_HT_PERSISTENT = 0x81;
939*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_FIRST = 0x40000000;
940*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_SRK = 0x40000000;
941*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_OWNER = 0x40000001;
942*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_REVOKE = 0x40000002;
943*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_TRANSPORT = 0x40000003;
944*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_OPERATOR = 0x40000004;
945*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_ADMIN = 0x40000005;
946*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_EK = 0x40000006;
947*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_NULL = 0x40000007;
948*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_UNASSIGNED = 0x40000008;
949*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RS_PW = 0x40000009;
950*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_LOCKOUT = 0x4000000A;
951*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_ENDORSEMENT = 0x4000000B;
952*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_PLATFORM = 0x4000000C;
953*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_PLATFORM_NV = 0x4000000D;
954*4f2df630SAndroid Build Coastguard Worker constexpr TPM_RH TPM_RH_LAST = 0x4000000D;
955*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_HANDLE_MASK = 0x00FFFFFF;
956*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_RANGE_MASK = 0xFF000000;
957*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_SHIFT = 24;
958*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_PCR = (TPM_HT_PCR << HR_SHIFT);
959*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_HMAC_SESSION = (TPM_HT_HMAC_SESSION << HR_SHIFT);
960*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_POLICY_SESSION = (TPM_HT_POLICY_SESSION << HR_SHIFT);
961*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_TRANSIENT = (TPM_HT_TRANSIENT << HR_SHIFT);
962*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_PERSISTENT = (TPM_HT_PERSISTENT << HR_SHIFT);
963*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_NV_INDEX = (TPM_HT_NV_INDEX << HR_SHIFT);
964*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HR_PERMANENT = (TPM_HT_PERMANENT << HR_SHIFT);
965*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PCR_FIRST = (HR_PCR + 0);
966*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PCR_LAST = (PCR_FIRST + IMPLEMENTATION_PCR - 1);
967*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HMAC_SESSION_FIRST = (HR_HMAC_SESSION + 0);
968*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC HMAC_SESSION_LAST =
969*4f2df630SAndroid Build Coastguard Worker     (HMAC_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1);
970*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC LOADED_SESSION_LAST = HMAC_SESSION_LAST;
971*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC POLICY_SESSION_FIRST = (HR_POLICY_SESSION + 0);
972*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC POLICY_SESSION_LAST =
973*4f2df630SAndroid Build Coastguard Worker     (POLICY_SESSION_FIRST + MAX_ACTIVE_SESSIONS - 1);
974*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC TRANSIENT_FIRST = (HR_TRANSIENT + 0);
975*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC ACTIVE_SESSION_FIRST = POLICY_SESSION_FIRST;
976*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC ACTIVE_SESSION_LAST = POLICY_SESSION_LAST;
977*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC TRANSIENT_LAST = (TRANSIENT_FIRST + MAX_LOADED_OBJECTS - 1);
978*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PERSISTENT_FIRST = (HR_PERSISTENT + 0);
979*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PERSISTENT_LAST = (PERSISTENT_FIRST + 0x00FFFFFF);
980*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PLATFORM_PERSISTENT = (PERSISTENT_FIRST + 0x00800000);
981*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC NV_INDEX_FIRST = (HR_NV_INDEX + 0);
982*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC NV_INDEX_LAST = (NV_INDEX_FIRST + 0x00FFFFFF);
983*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PERMANENT_FIRST = TPM_RH_FIRST;
984*4f2df630SAndroid Build Coastguard Worker constexpr TPM_HC PERMANENT_LAST = TPM_RH_LAST;
985*4f2df630SAndroid Build Coastguard Worker 
986*4f2df630SAndroid Build Coastguard Worker struct TPMS_ALGORITHM_DESCRIPTION {
987*4f2df630SAndroid Build Coastguard Worker   TPM_ALG_ID alg = {};
988*4f2df630SAndroid Build Coastguard Worker   TPMA_ALGORITHM attributes = {};
989*4f2df630SAndroid Build Coastguard Worker };
990*4f2df630SAndroid Build Coastguard Worker 
991*4f2df630SAndroid Build Coastguard Worker union TPMU_HA {
992*4f2df630SAndroid Build Coastguard Worker   BYTE sha1[SHA1_DIGEST_SIZE];
993*4f2df630SAndroid Build Coastguard Worker   BYTE sha256[SHA256_DIGEST_SIZE];
994*4f2df630SAndroid Build Coastguard Worker   BYTE sm3_256[SM3_256_DIGEST_SIZE];
995*4f2df630SAndroid Build Coastguard Worker   BYTE sha384[SHA384_DIGEST_SIZE];
996*4f2df630SAndroid Build Coastguard Worker   BYTE sha512[SHA512_DIGEST_SIZE];
997*4f2df630SAndroid Build Coastguard Worker };
998*4f2df630SAndroid Build Coastguard Worker 
999*4f2df630SAndroid Build Coastguard Worker struct TPMT_HA {
1000*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1001*4f2df630SAndroid Build Coastguard Worker   TPMU_HA digest = {};
1002*4f2df630SAndroid Build Coastguard Worker };
1003*4f2df630SAndroid Build Coastguard Worker 
1004*4f2df630SAndroid Build Coastguard Worker struct TPM2B_DIGEST {
1005*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1006*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[sizeof(TPMU_HA)] = {};
1007*4f2df630SAndroid Build Coastguard Worker };
1008*4f2df630SAndroid Build Coastguard Worker 
1009*4f2df630SAndroid Build Coastguard Worker struct TPM2B_DATA {
1010*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1011*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[sizeof(TPMT_HA)] = {};
1012*4f2df630SAndroid Build Coastguard Worker };
1013*4f2df630SAndroid Build Coastguard Worker 
1014*4f2df630SAndroid Build Coastguard Worker struct TPM2B_EVENT {
1015*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1016*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[1024] = {};
1017*4f2df630SAndroid Build Coastguard Worker };
1018*4f2df630SAndroid Build Coastguard Worker 
1019*4f2df630SAndroid Build Coastguard Worker struct TPM2B_MAX_BUFFER {
1020*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1021*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_DIGEST_BUFFER] = {};
1022*4f2df630SAndroid Build Coastguard Worker };
1023*4f2df630SAndroid Build Coastguard Worker 
1024*4f2df630SAndroid Build Coastguard Worker struct TPM2B_MAX_NV_BUFFER {
1025*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1026*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_NV_BUFFER_SIZE] = {};
1027*4f2df630SAndroid Build Coastguard Worker };
1028*4f2df630SAndroid Build Coastguard Worker 
1029*4f2df630SAndroid Build Coastguard Worker struct TPM2B_TIMEOUT {
1030*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1031*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[sizeof(UINT64)] = {};
1032*4f2df630SAndroid Build Coastguard Worker };
1033*4f2df630SAndroid Build Coastguard Worker 
1034*4f2df630SAndroid Build Coastguard Worker struct TPM2B_IV {
1035*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1036*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_SYM_BLOCK_SIZE] = {};
1037*4f2df630SAndroid Build Coastguard Worker };
1038*4f2df630SAndroid Build Coastguard Worker 
1039*4f2df630SAndroid Build Coastguard Worker union TPMU_NAME {
1040*4f2df630SAndroid Build Coastguard Worker   TPMT_HA digest;
1041*4f2df630SAndroid Build Coastguard Worker   TPM_HANDLE handle;
1042*4f2df630SAndroid Build Coastguard Worker };
1043*4f2df630SAndroid Build Coastguard Worker 
1044*4f2df630SAndroid Build Coastguard Worker struct TPM2B_NAME {
1045*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1046*4f2df630SAndroid Build Coastguard Worker   BYTE name[sizeof(TPMU_NAME)] = {};
1047*4f2df630SAndroid Build Coastguard Worker };
1048*4f2df630SAndroid Build Coastguard Worker 
1049*4f2df630SAndroid Build Coastguard Worker struct TPMS_PCR_SELECT {
1050*4f2df630SAndroid Build Coastguard Worker   UINT8 sizeof_select = {};
1051*4f2df630SAndroid Build Coastguard Worker   BYTE pcr_select[PCR_SELECT_MAX] = {};
1052*4f2df630SAndroid Build Coastguard Worker };
1053*4f2df630SAndroid Build Coastguard Worker 
1054*4f2df630SAndroid Build Coastguard Worker struct TPMS_PCR_SELECTION {
1055*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash = {};
1056*4f2df630SAndroid Build Coastguard Worker   UINT8 sizeof_select = {};
1057*4f2df630SAndroid Build Coastguard Worker   BYTE pcr_select[PCR_SELECT_MAX] = {};
1058*4f2df630SAndroid Build Coastguard Worker };
1059*4f2df630SAndroid Build Coastguard Worker 
1060*4f2df630SAndroid Build Coastguard Worker struct TPMT_TK_CREATION {
1061*4f2df630SAndroid Build Coastguard Worker   TPM_ST tag = {};
1062*4f2df630SAndroid Build Coastguard Worker   TPMI_RH_HIERARCHY hierarchy = {};
1063*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST digest = {};
1064*4f2df630SAndroid Build Coastguard Worker };
1065*4f2df630SAndroid Build Coastguard Worker 
1066*4f2df630SAndroid Build Coastguard Worker struct TPMT_TK_VERIFIED {
1067*4f2df630SAndroid Build Coastguard Worker   TPM_ST tag = {};
1068*4f2df630SAndroid Build Coastguard Worker   TPMI_RH_HIERARCHY hierarchy = {};
1069*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST digest = {};
1070*4f2df630SAndroid Build Coastguard Worker };
1071*4f2df630SAndroid Build Coastguard Worker 
1072*4f2df630SAndroid Build Coastguard Worker struct TPMT_TK_AUTH {
1073*4f2df630SAndroid Build Coastguard Worker   TPM_ST tag = {};
1074*4f2df630SAndroid Build Coastguard Worker   TPMI_RH_HIERARCHY hierarchy = {};
1075*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST digest = {};
1076*4f2df630SAndroid Build Coastguard Worker };
1077*4f2df630SAndroid Build Coastguard Worker 
1078*4f2df630SAndroid Build Coastguard Worker struct TPMT_TK_HASHCHECK {
1079*4f2df630SAndroid Build Coastguard Worker   TPM_ST tag = {};
1080*4f2df630SAndroid Build Coastguard Worker   TPMI_RH_HIERARCHY hierarchy = {};
1081*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST digest = {};
1082*4f2df630SAndroid Build Coastguard Worker };
1083*4f2df630SAndroid Build Coastguard Worker 
1084*4f2df630SAndroid Build Coastguard Worker struct TPMS_ALG_PROPERTY {
1085*4f2df630SAndroid Build Coastguard Worker   TPM_ALG_ID alg = {};
1086*4f2df630SAndroid Build Coastguard Worker   TPMA_ALGORITHM alg_properties = {};
1087*4f2df630SAndroid Build Coastguard Worker };
1088*4f2df630SAndroid Build Coastguard Worker 
1089*4f2df630SAndroid Build Coastguard Worker struct TPMS_TAGGED_PROPERTY {
1090*4f2df630SAndroid Build Coastguard Worker   TPM_PT property = {};
1091*4f2df630SAndroid Build Coastguard Worker   UINT32 value = {};
1092*4f2df630SAndroid Build Coastguard Worker };
1093*4f2df630SAndroid Build Coastguard Worker 
1094*4f2df630SAndroid Build Coastguard Worker struct TPMS_TAGGED_PCR_SELECT {
1095*4f2df630SAndroid Build Coastguard Worker   TPM_PT tag = {};
1096*4f2df630SAndroid Build Coastguard Worker   UINT8 sizeof_select = {};
1097*4f2df630SAndroid Build Coastguard Worker   BYTE pcr_select[PCR_SELECT_MAX] = {};
1098*4f2df630SAndroid Build Coastguard Worker };
1099*4f2df630SAndroid Build Coastguard Worker 
1100*4f2df630SAndroid Build Coastguard Worker struct TPML_CC {
1101*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1102*4f2df630SAndroid Build Coastguard Worker   TPM_CC command_codes[MAX_CAP_CC_ALL] = {};
1103*4f2df630SAndroid Build Coastguard Worker };
1104*4f2df630SAndroid Build Coastguard Worker 
1105*4f2df630SAndroid Build Coastguard Worker struct TPML_CCA {
1106*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1107*4f2df630SAndroid Build Coastguard Worker   TPMA_CC command_attributes[MAX_CAP_CC_ALL] = {};
1108*4f2df630SAndroid Build Coastguard Worker };
1109*4f2df630SAndroid Build Coastguard Worker 
1110*4f2df630SAndroid Build Coastguard Worker struct TPML_ALG {
1111*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1112*4f2df630SAndroid Build Coastguard Worker   TPM_ALG_ID algorithms[MAX_ALG_LIST_SIZE] = {};
1113*4f2df630SAndroid Build Coastguard Worker };
1114*4f2df630SAndroid Build Coastguard Worker 
1115*4f2df630SAndroid Build Coastguard Worker struct TPML_HANDLE {
1116*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1117*4f2df630SAndroid Build Coastguard Worker   TPM_HANDLE handle[MAX_CAP_HANDLES] = {};
1118*4f2df630SAndroid Build Coastguard Worker };
1119*4f2df630SAndroid Build Coastguard Worker 
1120*4f2df630SAndroid Build Coastguard Worker struct TPML_DIGEST {
1121*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1122*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST digests[8] = {};
1123*4f2df630SAndroid Build Coastguard Worker };
1124*4f2df630SAndroid Build Coastguard Worker 
1125*4f2df630SAndroid Build Coastguard Worker struct TPML_DIGEST_VALUES {
1126*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1127*4f2df630SAndroid Build Coastguard Worker   TPMT_HA digests[HASH_COUNT] = {};
1128*4f2df630SAndroid Build Coastguard Worker };
1129*4f2df630SAndroid Build Coastguard Worker 
1130*4f2df630SAndroid Build Coastguard Worker struct TPM2B_DIGEST_VALUES {
1131*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1132*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[sizeof(TPML_DIGEST_VALUES)] = {};
1133*4f2df630SAndroid Build Coastguard Worker };
1134*4f2df630SAndroid Build Coastguard Worker 
1135*4f2df630SAndroid Build Coastguard Worker struct TPML_PCR_SELECTION {
1136*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1137*4f2df630SAndroid Build Coastguard Worker   TPMS_PCR_SELECTION pcr_selections[HASH_COUNT] = {};
1138*4f2df630SAndroid Build Coastguard Worker };
1139*4f2df630SAndroid Build Coastguard Worker 
1140*4f2df630SAndroid Build Coastguard Worker struct TPML_ALG_PROPERTY {
1141*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1142*4f2df630SAndroid Build Coastguard Worker   TPMS_ALG_PROPERTY alg_properties[MAX_CAP_ALGS] = {};
1143*4f2df630SAndroid Build Coastguard Worker };
1144*4f2df630SAndroid Build Coastguard Worker 
1145*4f2df630SAndroid Build Coastguard Worker struct TPML_TAGGED_TPM_PROPERTY {
1146*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1147*4f2df630SAndroid Build Coastguard Worker   TPMS_TAGGED_PROPERTY tpm_property[MAX_TPM_PROPERTIES] = {};
1148*4f2df630SAndroid Build Coastguard Worker };
1149*4f2df630SAndroid Build Coastguard Worker 
1150*4f2df630SAndroid Build Coastguard Worker struct TPML_TAGGED_PCR_PROPERTY {
1151*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1152*4f2df630SAndroid Build Coastguard Worker   TPMS_TAGGED_PCR_SELECT pcr_property[MAX_PCR_PROPERTIES] = {};
1153*4f2df630SAndroid Build Coastguard Worker };
1154*4f2df630SAndroid Build Coastguard Worker 
1155*4f2df630SAndroid Build Coastguard Worker struct TPML_ECC_CURVE {
1156*4f2df630SAndroid Build Coastguard Worker   UINT32 count = {};
1157*4f2df630SAndroid Build Coastguard Worker   TPM_ECC_CURVE ecc_curves[MAX_ECC_CURVES] = {};
1158*4f2df630SAndroid Build Coastguard Worker };
1159*4f2df630SAndroid Build Coastguard Worker 
1160*4f2df630SAndroid Build Coastguard Worker union TPMU_CAPABILITIES {
1161*4f2df630SAndroid Build Coastguard Worker   TPML_ALG_PROPERTY algorithms;
1162*4f2df630SAndroid Build Coastguard Worker   TPML_HANDLE handles;
1163*4f2df630SAndroid Build Coastguard Worker   TPML_CCA command;
1164*4f2df630SAndroid Build Coastguard Worker   TPML_CC pp_commands;
1165*4f2df630SAndroid Build Coastguard Worker   TPML_CC audit_commands;
1166*4f2df630SAndroid Build Coastguard Worker   TPML_PCR_SELECTION assigned_pcr;
1167*4f2df630SAndroid Build Coastguard Worker   TPML_TAGGED_TPM_PROPERTY tpm_properties;
1168*4f2df630SAndroid Build Coastguard Worker   TPML_TAGGED_PCR_PROPERTY pcr_properties;
1169*4f2df630SAndroid Build Coastguard Worker   TPML_ECC_CURVE ecc_curves;
1170*4f2df630SAndroid Build Coastguard Worker };
1171*4f2df630SAndroid Build Coastguard Worker 
1172*4f2df630SAndroid Build Coastguard Worker struct TPMS_CAPABILITY_DATA {
1173*4f2df630SAndroid Build Coastguard Worker   TPM_CAP capability = {};
1174*4f2df630SAndroid Build Coastguard Worker   TPMU_CAPABILITIES data = {};
1175*4f2df630SAndroid Build Coastguard Worker };
1176*4f2df630SAndroid Build Coastguard Worker 
1177*4f2df630SAndroid Build Coastguard Worker struct TPMS_CLOCK_INFO {
1178*4f2df630SAndroid Build Coastguard Worker   UINT64 clock = {};
1179*4f2df630SAndroid Build Coastguard Worker   UINT32 reset_count = {};
1180*4f2df630SAndroid Build Coastguard Worker   UINT32 restart_count = {};
1181*4f2df630SAndroid Build Coastguard Worker   TPMI_YES_NO safe = {};
1182*4f2df630SAndroid Build Coastguard Worker };
1183*4f2df630SAndroid Build Coastguard Worker 
1184*4f2df630SAndroid Build Coastguard Worker struct TPMS_TIME_INFO {
1185*4f2df630SAndroid Build Coastguard Worker   UINT64 time = {};
1186*4f2df630SAndroid Build Coastguard Worker   TPMS_CLOCK_INFO clock_info = {};
1187*4f2df630SAndroid Build Coastguard Worker };
1188*4f2df630SAndroid Build Coastguard Worker 
1189*4f2df630SAndroid Build Coastguard Worker struct TPMS_TIME_ATTEST_INFO {
1190*4f2df630SAndroid Build Coastguard Worker   TPMS_TIME_INFO time = {};
1191*4f2df630SAndroid Build Coastguard Worker   UINT64 firmware_version = {};
1192*4f2df630SAndroid Build Coastguard Worker };
1193*4f2df630SAndroid Build Coastguard Worker 
1194*4f2df630SAndroid Build Coastguard Worker struct TPMS_CERTIFY_INFO {
1195*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME name = {};
1196*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME qualified_name = {};
1197*4f2df630SAndroid Build Coastguard Worker };
1198*4f2df630SAndroid Build Coastguard Worker 
1199*4f2df630SAndroid Build Coastguard Worker struct TPMS_QUOTE_INFO {
1200*4f2df630SAndroid Build Coastguard Worker   TPML_PCR_SELECTION pcr_select = {};
1201*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST pcr_digest = {};
1202*4f2df630SAndroid Build Coastguard Worker };
1203*4f2df630SAndroid Build Coastguard Worker 
1204*4f2df630SAndroid Build Coastguard Worker struct TPMS_COMMAND_AUDIT_INFO {
1205*4f2df630SAndroid Build Coastguard Worker   UINT64 audit_counter = {};
1206*4f2df630SAndroid Build Coastguard Worker   TPM_ALG_ID digest_alg = {};
1207*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST audit_digest = {};
1208*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST command_digest = {};
1209*4f2df630SAndroid Build Coastguard Worker };
1210*4f2df630SAndroid Build Coastguard Worker 
1211*4f2df630SAndroid Build Coastguard Worker struct TPMS_SESSION_AUDIT_INFO {
1212*4f2df630SAndroid Build Coastguard Worker   TPMI_YES_NO exclusive_session = {};
1213*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST session_digest = {};
1214*4f2df630SAndroid Build Coastguard Worker };
1215*4f2df630SAndroid Build Coastguard Worker 
1216*4f2df630SAndroid Build Coastguard Worker struct TPMS_CREATION_INFO {
1217*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME object_name = {};
1218*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST creation_hash = {};
1219*4f2df630SAndroid Build Coastguard Worker };
1220*4f2df630SAndroid Build Coastguard Worker 
1221*4f2df630SAndroid Build Coastguard Worker struct TPMS_NV_CERTIFY_INFO {
1222*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME index_name = {};
1223*4f2df630SAndroid Build Coastguard Worker   UINT16 offset = {};
1224*4f2df630SAndroid Build Coastguard Worker   TPM2B_MAX_NV_BUFFER nv_contents = {};
1225*4f2df630SAndroid Build Coastguard Worker };
1226*4f2df630SAndroid Build Coastguard Worker 
1227*4f2df630SAndroid Build Coastguard Worker union TPMU_ATTEST {
1228*4f2df630SAndroid Build Coastguard Worker   TPMS_CERTIFY_INFO certify;
1229*4f2df630SAndroid Build Coastguard Worker   TPMS_CREATION_INFO creation;
1230*4f2df630SAndroid Build Coastguard Worker   TPMS_QUOTE_INFO quote;
1231*4f2df630SAndroid Build Coastguard Worker   TPMS_COMMAND_AUDIT_INFO command_audit;
1232*4f2df630SAndroid Build Coastguard Worker   TPMS_SESSION_AUDIT_INFO session_audit;
1233*4f2df630SAndroid Build Coastguard Worker   TPMS_TIME_ATTEST_INFO time;
1234*4f2df630SAndroid Build Coastguard Worker   TPMS_NV_CERTIFY_INFO nv;
1235*4f2df630SAndroid Build Coastguard Worker };
1236*4f2df630SAndroid Build Coastguard Worker 
1237*4f2df630SAndroid Build Coastguard Worker struct TPMS_ATTEST {
1238*4f2df630SAndroid Build Coastguard Worker   TPM_GENERATED magic = {};
1239*4f2df630SAndroid Build Coastguard Worker   TPMI_ST_ATTEST type = {};
1240*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME qualified_signer = {};
1241*4f2df630SAndroid Build Coastguard Worker   TPM2B_DATA extra_data = {};
1242*4f2df630SAndroid Build Coastguard Worker   TPMS_CLOCK_INFO clock_info = {};
1243*4f2df630SAndroid Build Coastguard Worker   UINT64 firmware_version = {};
1244*4f2df630SAndroid Build Coastguard Worker   TPMU_ATTEST attested = {};
1245*4f2df630SAndroid Build Coastguard Worker };
1246*4f2df630SAndroid Build Coastguard Worker 
1247*4f2df630SAndroid Build Coastguard Worker struct TPM2B_ATTEST {
1248*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1249*4f2df630SAndroid Build Coastguard Worker   BYTE attestation_data[sizeof(TPMS_ATTEST)] = {};
1250*4f2df630SAndroid Build Coastguard Worker };
1251*4f2df630SAndroid Build Coastguard Worker 
1252*4f2df630SAndroid Build Coastguard Worker struct TPMS_AUTH_COMMAND {
1253*4f2df630SAndroid Build Coastguard Worker   TPMI_SH_AUTH_SESSION session_handle = {};
1254*4f2df630SAndroid Build Coastguard Worker   TPM2B_NONCE nonce = {};
1255*4f2df630SAndroid Build Coastguard Worker   TPMA_SESSION session_attributes = {};
1256*4f2df630SAndroid Build Coastguard Worker   TPM2B_AUTH hmac = {};
1257*4f2df630SAndroid Build Coastguard Worker };
1258*4f2df630SAndroid Build Coastguard Worker 
1259*4f2df630SAndroid Build Coastguard Worker struct TPMS_AUTH_RESPONSE {
1260*4f2df630SAndroid Build Coastguard Worker   TPM2B_NONCE nonce = {};
1261*4f2df630SAndroid Build Coastguard Worker   TPMA_SESSION session_attributes = {};
1262*4f2df630SAndroid Build Coastguard Worker   TPM2B_AUTH hmac = {};
1263*4f2df630SAndroid Build Coastguard Worker };
1264*4f2df630SAndroid Build Coastguard Worker 
1265*4f2df630SAndroid Build Coastguard Worker union TPMU_SYM_KEY_BITS {
1266*4f2df630SAndroid Build Coastguard Worker   TPMI_AES_KEY_BITS aes;
1267*4f2df630SAndroid Build Coastguard Worker   TPMI_SM4_KEY_BITS sm4;
1268*4f2df630SAndroid Build Coastguard Worker   TPM_KEY_BITS sym;
1269*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH xor_;
1270*4f2df630SAndroid Build Coastguard Worker };
1271*4f2df630SAndroid Build Coastguard Worker 
1272*4f2df630SAndroid Build Coastguard Worker union TPMU_SYM_MODE {
1273*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SYM_MODE aes;
1274*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SYM_MODE sm4;
1275*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SYM_MODE sym;
1276*4f2df630SAndroid Build Coastguard Worker };
1277*4f2df630SAndroid Build Coastguard Worker 
1278*4f2df630SAndroid Build Coastguard Worker union TPMU_SYM_DETAILS {};
1279*4f2df630SAndroid Build Coastguard Worker 
1280*4f2df630SAndroid Build Coastguard Worker struct TPMT_SYM_DEF {
1281*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SYM algorithm = {};
1282*4f2df630SAndroid Build Coastguard Worker   TPMU_SYM_KEY_BITS key_bits = {};
1283*4f2df630SAndroid Build Coastguard Worker   TPMU_SYM_MODE mode = {};
1284*4f2df630SAndroid Build Coastguard Worker   TPMU_SYM_DETAILS details = {};
1285*4f2df630SAndroid Build Coastguard Worker };
1286*4f2df630SAndroid Build Coastguard Worker 
1287*4f2df630SAndroid Build Coastguard Worker struct TPMT_SYM_DEF_OBJECT {
1288*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SYM_OBJECT algorithm = {};
1289*4f2df630SAndroid Build Coastguard Worker   TPMU_SYM_KEY_BITS key_bits = {};
1290*4f2df630SAndroid Build Coastguard Worker   TPMU_SYM_MODE mode = {};
1291*4f2df630SAndroid Build Coastguard Worker   TPMU_SYM_DETAILS details = {};
1292*4f2df630SAndroid Build Coastguard Worker };
1293*4f2df630SAndroid Build Coastguard Worker 
1294*4f2df630SAndroid Build Coastguard Worker struct TPM2B_SYM_KEY {
1295*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1296*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_SYM_KEY_BYTES] = {};
1297*4f2df630SAndroid Build Coastguard Worker };
1298*4f2df630SAndroid Build Coastguard Worker 
1299*4f2df630SAndroid Build Coastguard Worker struct TPMS_SYMCIPHER_PARMS {
1300*4f2df630SAndroid Build Coastguard Worker   TPMT_SYM_DEF_OBJECT sym = {};
1301*4f2df630SAndroid Build Coastguard Worker };
1302*4f2df630SAndroid Build Coastguard Worker 
1303*4f2df630SAndroid Build Coastguard Worker struct TPM2B_SENSITIVE_DATA {
1304*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1305*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_SYM_DATA] = {};
1306*4f2df630SAndroid Build Coastguard Worker };
1307*4f2df630SAndroid Build Coastguard Worker 
1308*4f2df630SAndroid Build Coastguard Worker struct TPMS_SENSITIVE_CREATE {
1309*4f2df630SAndroid Build Coastguard Worker   TPM2B_AUTH user_auth = {};
1310*4f2df630SAndroid Build Coastguard Worker   TPM2B_SENSITIVE_DATA data = {};
1311*4f2df630SAndroid Build Coastguard Worker };
1312*4f2df630SAndroid Build Coastguard Worker 
1313*4f2df630SAndroid Build Coastguard Worker struct TPM2B_SENSITIVE_CREATE {
1314*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1315*4f2df630SAndroid Build Coastguard Worker   TPMS_SENSITIVE_CREATE sensitive = {};
1316*4f2df630SAndroid Build Coastguard Worker };
1317*4f2df630SAndroid Build Coastguard Worker 
1318*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_SIGHASH {
1319*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1320*4f2df630SAndroid Build Coastguard Worker };
1321*4f2df630SAndroid Build Coastguard Worker 
1322*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_XOR {
1323*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1324*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_KDF kdf = {};
1325*4f2df630SAndroid Build Coastguard Worker };
1326*4f2df630SAndroid Build Coastguard Worker 
1327*4f2df630SAndroid Build Coastguard Worker union TPMU_SCHEME_KEYEDHASH {
1328*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_HMAC hmac;
1329*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_XOR xor_;
1330*4f2df630SAndroid Build Coastguard Worker };
1331*4f2df630SAndroid Build Coastguard Worker 
1332*4f2df630SAndroid Build Coastguard Worker struct TPMT_KEYEDHASH_SCHEME {
1333*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_KEYEDHASH_SCHEME scheme = {};
1334*4f2df630SAndroid Build Coastguard Worker   TPMU_SCHEME_KEYEDHASH details = {};
1335*4f2df630SAndroid Build Coastguard Worker };
1336*4f2df630SAndroid Build Coastguard Worker 
1337*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_ECDAA {
1338*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1339*4f2df630SAndroid Build Coastguard Worker   UINT16 count = {};
1340*4f2df630SAndroid Build Coastguard Worker };
1341*4f2df630SAndroid Build Coastguard Worker 
1342*4f2df630SAndroid Build Coastguard Worker union TPMU_SIG_SCHEME {
1343*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_RSASSA rsassa;
1344*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_RSAPSS rsapss;
1345*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECDSA ecdsa;
1346*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_SM2 sm2;
1347*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECDAA ecdaa;
1348*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECSCHNORR ec_schnorr;
1349*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_HMAC hmac;
1350*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_SIGHASH any;
1351*4f2df630SAndroid Build Coastguard Worker };
1352*4f2df630SAndroid Build Coastguard Worker 
1353*4f2df630SAndroid Build Coastguard Worker struct TPMT_SIG_SCHEME {
1354*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SIG_SCHEME scheme = {};
1355*4f2df630SAndroid Build Coastguard Worker   TPMU_SIG_SCHEME details = {};
1356*4f2df630SAndroid Build Coastguard Worker };
1357*4f2df630SAndroid Build Coastguard Worker 
1358*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_OAEP {
1359*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1360*4f2df630SAndroid Build Coastguard Worker };
1361*4f2df630SAndroid Build Coastguard Worker 
1362*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_ECDH {
1363*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1364*4f2df630SAndroid Build Coastguard Worker };
1365*4f2df630SAndroid Build Coastguard Worker 
1366*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_MGF1 {
1367*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1368*4f2df630SAndroid Build Coastguard Worker };
1369*4f2df630SAndroid Build Coastguard Worker 
1370*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_KDF1_SP800_56a {
1371*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1372*4f2df630SAndroid Build Coastguard Worker };
1373*4f2df630SAndroid Build Coastguard Worker 
1374*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_KDF2 {
1375*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1376*4f2df630SAndroid Build Coastguard Worker };
1377*4f2df630SAndroid Build Coastguard Worker 
1378*4f2df630SAndroid Build Coastguard Worker struct TPMS_SCHEME_KDF1_SP800_108 {
1379*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash_alg = {};
1380*4f2df630SAndroid Build Coastguard Worker };
1381*4f2df630SAndroid Build Coastguard Worker 
1382*4f2df630SAndroid Build Coastguard Worker union TPMU_KDF_SCHEME {
1383*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_MGF1 mgf1;
1384*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_KDF1_SP800_56a kdf1_sp800_56a;
1385*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_KDF2 kdf2;
1386*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_KDF1_SP800_108 kdf1_sp800_108;
1387*4f2df630SAndroid Build Coastguard Worker };
1388*4f2df630SAndroid Build Coastguard Worker 
1389*4f2df630SAndroid Build Coastguard Worker struct TPMT_KDF_SCHEME {
1390*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_KDF scheme = {};
1391*4f2df630SAndroid Build Coastguard Worker   TPMU_KDF_SCHEME details = {};
1392*4f2df630SAndroid Build Coastguard Worker };
1393*4f2df630SAndroid Build Coastguard Worker 
1394*4f2df630SAndroid Build Coastguard Worker union TPMU_ASYM_SCHEME {
1395*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_RSASSA rsassa;
1396*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_RSAPSS rsapss;
1397*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_OAEP oaep;
1398*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECDSA ecdsa;
1399*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_SM2 sm2;
1400*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECDAA ecdaa;
1401*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECSCHNORR ec_schnorr;
1402*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_ECDH ecdh;
1403*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_SIGHASH any_sig;
1404*4f2df630SAndroid Build Coastguard Worker };
1405*4f2df630SAndroid Build Coastguard Worker 
1406*4f2df630SAndroid Build Coastguard Worker struct TPMT_ASYM_SCHEME {
1407*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_ASYM_SCHEME scheme = {};
1408*4f2df630SAndroid Build Coastguard Worker   TPMU_ASYM_SCHEME details = {};
1409*4f2df630SAndroid Build Coastguard Worker };
1410*4f2df630SAndroid Build Coastguard Worker 
1411*4f2df630SAndroid Build Coastguard Worker struct TPMT_RSA_SCHEME {
1412*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_RSA_SCHEME scheme = {};
1413*4f2df630SAndroid Build Coastguard Worker   TPMU_ASYM_SCHEME details = {};
1414*4f2df630SAndroid Build Coastguard Worker };
1415*4f2df630SAndroid Build Coastguard Worker 
1416*4f2df630SAndroid Build Coastguard Worker struct TPMT_RSA_DECRYPT {
1417*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_RSA_DECRYPT scheme = {};
1418*4f2df630SAndroid Build Coastguard Worker   TPMU_ASYM_SCHEME details = {};
1419*4f2df630SAndroid Build Coastguard Worker };
1420*4f2df630SAndroid Build Coastguard Worker 
1421*4f2df630SAndroid Build Coastguard Worker struct TPM2B_PUBLIC_KEY_RSA {
1422*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1423*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_RSA_KEY_BYTES] = {};
1424*4f2df630SAndroid Build Coastguard Worker };
1425*4f2df630SAndroid Build Coastguard Worker 
1426*4f2df630SAndroid Build Coastguard Worker struct TPM2B_PRIVATE_KEY_RSA {
1427*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1428*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_RSA_KEY_BYTES / 2] = {};
1429*4f2df630SAndroid Build Coastguard Worker };
1430*4f2df630SAndroid Build Coastguard Worker 
1431*4f2df630SAndroid Build Coastguard Worker struct TPM2B_ECC_PARAMETER {
1432*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1433*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_ECC_KEY_BYTES] = {};
1434*4f2df630SAndroid Build Coastguard Worker };
1435*4f2df630SAndroid Build Coastguard Worker 
1436*4f2df630SAndroid Build Coastguard Worker struct TPMS_ECC_POINT {
1437*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER x = {};
1438*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER y = {};
1439*4f2df630SAndroid Build Coastguard Worker };
1440*4f2df630SAndroid Build Coastguard Worker 
1441*4f2df630SAndroid Build Coastguard Worker struct TPM2B_ECC_POINT {
1442*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1443*4f2df630SAndroid Build Coastguard Worker   TPMS_ECC_POINT point = {};
1444*4f2df630SAndroid Build Coastguard Worker };
1445*4f2df630SAndroid Build Coastguard Worker 
1446*4f2df630SAndroid Build Coastguard Worker struct TPMT_ECC_SCHEME {
1447*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_ECC_SCHEME scheme = {};
1448*4f2df630SAndroid Build Coastguard Worker   TPMU_SIG_SCHEME details = {};
1449*4f2df630SAndroid Build Coastguard Worker };
1450*4f2df630SAndroid Build Coastguard Worker 
1451*4f2df630SAndroid Build Coastguard Worker struct TPMS_ALGORITHM_DETAIL_ECC {
1452*4f2df630SAndroid Build Coastguard Worker   TPM_ECC_CURVE curve_id = {};
1453*4f2df630SAndroid Build Coastguard Worker   UINT16 key_size = {};
1454*4f2df630SAndroid Build Coastguard Worker   TPMT_KDF_SCHEME kdf = {};
1455*4f2df630SAndroid Build Coastguard Worker   TPMT_ECC_SCHEME sign = {};
1456*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER p = {};
1457*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER a = {};
1458*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER b = {};
1459*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER g_x = {};
1460*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER g_y = {};
1461*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER n = {};
1462*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER h = {};
1463*4f2df630SAndroid Build Coastguard Worker };
1464*4f2df630SAndroid Build Coastguard Worker 
1465*4f2df630SAndroid Build Coastguard Worker struct TPMS_SIGNATURE_RSASSA {
1466*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash = {};
1467*4f2df630SAndroid Build Coastguard Worker   TPM2B_PUBLIC_KEY_RSA sig = {};
1468*4f2df630SAndroid Build Coastguard Worker };
1469*4f2df630SAndroid Build Coastguard Worker 
1470*4f2df630SAndroid Build Coastguard Worker struct TPMS_SIGNATURE_RSAPSS {
1471*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash = {};
1472*4f2df630SAndroid Build Coastguard Worker   TPM2B_PUBLIC_KEY_RSA sig = {};
1473*4f2df630SAndroid Build Coastguard Worker };
1474*4f2df630SAndroid Build Coastguard Worker 
1475*4f2df630SAndroid Build Coastguard Worker struct TPMS_SIGNATURE_ECDSA {
1476*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH hash = {};
1477*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER signature_r = {};
1478*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER signature_s = {};
1479*4f2df630SAndroid Build Coastguard Worker };
1480*4f2df630SAndroid Build Coastguard Worker 
1481*4f2df630SAndroid Build Coastguard Worker union TPMU_SIGNATURE {
1482*4f2df630SAndroid Build Coastguard Worker   TPMS_SIGNATURE_RSASSA rsassa;
1483*4f2df630SAndroid Build Coastguard Worker   TPMS_SIGNATURE_RSAPSS rsapss;
1484*4f2df630SAndroid Build Coastguard Worker   TPMS_SIGNATURE_ECDSA ecdsa;
1485*4f2df630SAndroid Build Coastguard Worker   TPMS_SIGNATURE_ECDSA sm2;
1486*4f2df630SAndroid Build Coastguard Worker   TPMS_SIGNATURE_ECDSA ecdaa;
1487*4f2df630SAndroid Build Coastguard Worker   TPMS_SIGNATURE_ECDSA ecschnorr;
1488*4f2df630SAndroid Build Coastguard Worker   TPMT_HA hmac;
1489*4f2df630SAndroid Build Coastguard Worker   TPMS_SCHEME_SIGHASH any;
1490*4f2df630SAndroid Build Coastguard Worker };
1491*4f2df630SAndroid Build Coastguard Worker 
1492*4f2df630SAndroid Build Coastguard Worker struct TPMT_SIGNATURE {
1493*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_SIG_SCHEME sig_alg = {};
1494*4f2df630SAndroid Build Coastguard Worker   TPMU_SIGNATURE signature = {};
1495*4f2df630SAndroid Build Coastguard Worker };
1496*4f2df630SAndroid Build Coastguard Worker 
1497*4f2df630SAndroid Build Coastguard Worker union TPMU_ENCRYPTED_SECRET {
1498*4f2df630SAndroid Build Coastguard Worker   BYTE ecc[sizeof(TPMS_ECC_POINT)];
1499*4f2df630SAndroid Build Coastguard Worker   BYTE rsa[MAX_RSA_KEY_BYTES];
1500*4f2df630SAndroid Build Coastguard Worker   BYTE symmetric[sizeof(TPM2B_DIGEST)];
1501*4f2df630SAndroid Build Coastguard Worker   BYTE keyed_hash[sizeof(TPM2B_DIGEST)];
1502*4f2df630SAndroid Build Coastguard Worker };
1503*4f2df630SAndroid Build Coastguard Worker 
1504*4f2df630SAndroid Build Coastguard Worker struct TPM2B_ENCRYPTED_SECRET {
1505*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1506*4f2df630SAndroid Build Coastguard Worker   BYTE secret[sizeof(TPMU_ENCRYPTED_SECRET)] = {};
1507*4f2df630SAndroid Build Coastguard Worker };
1508*4f2df630SAndroid Build Coastguard Worker 
1509*4f2df630SAndroid Build Coastguard Worker struct TPMS_KEYEDHASH_PARMS {
1510*4f2df630SAndroid Build Coastguard Worker   TPMT_KEYEDHASH_SCHEME scheme = {};
1511*4f2df630SAndroid Build Coastguard Worker };
1512*4f2df630SAndroid Build Coastguard Worker 
1513*4f2df630SAndroid Build Coastguard Worker struct TPMS_ASYM_PARMS {
1514*4f2df630SAndroid Build Coastguard Worker   TPMT_SYM_DEF_OBJECT symmetric = {};
1515*4f2df630SAndroid Build Coastguard Worker   TPMT_ASYM_SCHEME scheme = {};
1516*4f2df630SAndroid Build Coastguard Worker };
1517*4f2df630SAndroid Build Coastguard Worker 
1518*4f2df630SAndroid Build Coastguard Worker struct TPMS_RSA_PARMS {
1519*4f2df630SAndroid Build Coastguard Worker   TPMT_SYM_DEF_OBJECT symmetric = {};
1520*4f2df630SAndroid Build Coastguard Worker   TPMT_RSA_SCHEME scheme = {};
1521*4f2df630SAndroid Build Coastguard Worker   TPMI_RSA_KEY_BITS key_bits = {};
1522*4f2df630SAndroid Build Coastguard Worker   UINT32 exponent = {};
1523*4f2df630SAndroid Build Coastguard Worker };
1524*4f2df630SAndroid Build Coastguard Worker 
1525*4f2df630SAndroid Build Coastguard Worker struct TPMS_ECC_PARMS {
1526*4f2df630SAndroid Build Coastguard Worker   TPMT_SYM_DEF_OBJECT symmetric = {};
1527*4f2df630SAndroid Build Coastguard Worker   TPMT_ECC_SCHEME scheme = {};
1528*4f2df630SAndroid Build Coastguard Worker   TPMI_ECC_CURVE curve_id = {};
1529*4f2df630SAndroid Build Coastguard Worker   TPMT_KDF_SCHEME kdf = {};
1530*4f2df630SAndroid Build Coastguard Worker };
1531*4f2df630SAndroid Build Coastguard Worker 
1532*4f2df630SAndroid Build Coastguard Worker union TPMU_PUBLIC_PARMS {
1533*4f2df630SAndroid Build Coastguard Worker   TPMS_KEYEDHASH_PARMS keyed_hash_detail;
1534*4f2df630SAndroid Build Coastguard Worker   TPMS_SYMCIPHER_PARMS sym_detail;
1535*4f2df630SAndroid Build Coastguard Worker   TPMS_RSA_PARMS rsa_detail;
1536*4f2df630SAndroid Build Coastguard Worker   TPMS_ECC_PARMS ecc_detail;
1537*4f2df630SAndroid Build Coastguard Worker   TPMS_ASYM_PARMS asym_detail;
1538*4f2df630SAndroid Build Coastguard Worker };
1539*4f2df630SAndroid Build Coastguard Worker 
1540*4f2df630SAndroid Build Coastguard Worker struct TPMT_PUBLIC_PARMS {
1541*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_PUBLIC type = {};
1542*4f2df630SAndroid Build Coastguard Worker   TPMU_PUBLIC_PARMS parameters = {};
1543*4f2df630SAndroid Build Coastguard Worker };
1544*4f2df630SAndroid Build Coastguard Worker 
1545*4f2df630SAndroid Build Coastguard Worker union TPMU_PUBLIC_ID {
1546*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST keyed_hash;
1547*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST sym;
1548*4f2df630SAndroid Build Coastguard Worker   TPM2B_PUBLIC_KEY_RSA rsa;
1549*4f2df630SAndroid Build Coastguard Worker   TPMS_ECC_POINT ecc;
1550*4f2df630SAndroid Build Coastguard Worker };
1551*4f2df630SAndroid Build Coastguard Worker 
1552*4f2df630SAndroid Build Coastguard Worker struct TPMT_PUBLIC {
1553*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_PUBLIC type = {};
1554*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH name_alg = {};
1555*4f2df630SAndroid Build Coastguard Worker   TPMA_OBJECT object_attributes = {};
1556*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST auth_policy = {};
1557*4f2df630SAndroid Build Coastguard Worker   TPMU_PUBLIC_PARMS parameters = {};
1558*4f2df630SAndroid Build Coastguard Worker   TPMU_PUBLIC_ID unique = {};
1559*4f2df630SAndroid Build Coastguard Worker };
1560*4f2df630SAndroid Build Coastguard Worker 
1561*4f2df630SAndroid Build Coastguard Worker struct TPM2B_PUBLIC {
1562*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1563*4f2df630SAndroid Build Coastguard Worker   TPMT_PUBLIC public_area = {};
1564*4f2df630SAndroid Build Coastguard Worker };
1565*4f2df630SAndroid Build Coastguard Worker 
1566*4f2df630SAndroid Build Coastguard Worker struct TPM2B_PRIVATE_VENDOR_SPECIFIC {
1567*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1568*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[PRIVATE_VENDOR_SPECIFIC_BYTES] = {};
1569*4f2df630SAndroid Build Coastguard Worker };
1570*4f2df630SAndroid Build Coastguard Worker 
1571*4f2df630SAndroid Build Coastguard Worker union TPMU_SENSITIVE_COMPOSITE {
1572*4f2df630SAndroid Build Coastguard Worker   TPM2B_PRIVATE_KEY_RSA rsa;
1573*4f2df630SAndroid Build Coastguard Worker   TPM2B_ECC_PARAMETER ecc;
1574*4f2df630SAndroid Build Coastguard Worker   TPM2B_SENSITIVE_DATA bits;
1575*4f2df630SAndroid Build Coastguard Worker   TPM2B_SYM_KEY sym;
1576*4f2df630SAndroid Build Coastguard Worker   TPM2B_PRIVATE_VENDOR_SPECIFIC any;
1577*4f2df630SAndroid Build Coastguard Worker };
1578*4f2df630SAndroid Build Coastguard Worker 
1579*4f2df630SAndroid Build Coastguard Worker struct TPMT_SENSITIVE {
1580*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_PUBLIC sensitive_type = {};
1581*4f2df630SAndroid Build Coastguard Worker   TPM2B_AUTH auth_value = {};
1582*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST seed_value = {};
1583*4f2df630SAndroid Build Coastguard Worker   TPMU_SENSITIVE_COMPOSITE sensitive = {};
1584*4f2df630SAndroid Build Coastguard Worker };
1585*4f2df630SAndroid Build Coastguard Worker 
1586*4f2df630SAndroid Build Coastguard Worker struct TPM2B_SENSITIVE {
1587*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1588*4f2df630SAndroid Build Coastguard Worker   TPMT_SENSITIVE sensitive_area = {};
1589*4f2df630SAndroid Build Coastguard Worker };
1590*4f2df630SAndroid Build Coastguard Worker 
1591*4f2df630SAndroid Build Coastguard Worker struct TPM2B_PRIVATE {
1592*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1593*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_DIGEST_BUFFER] = {};
1594*4f2df630SAndroid Build Coastguard Worker };
1595*4f2df630SAndroid Build Coastguard Worker 
1596*4f2df630SAndroid Build Coastguard Worker struct TPM2B_ID_OBJECT {
1597*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1598*4f2df630SAndroid Build Coastguard Worker   BYTE credential[MAX_DIGEST_BUFFER] = {};
1599*4f2df630SAndroid Build Coastguard Worker };
1600*4f2df630SAndroid Build Coastguard Worker 
1601*4f2df630SAndroid Build Coastguard Worker struct TPMS_NV_PUBLIC {
1602*4f2df630SAndroid Build Coastguard Worker   TPMI_RH_NV_INDEX nv_index = {};
1603*4f2df630SAndroid Build Coastguard Worker   TPMI_ALG_HASH name_alg = {};
1604*4f2df630SAndroid Build Coastguard Worker   TPMA_NV attributes = {};
1605*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST auth_policy = {};
1606*4f2df630SAndroid Build Coastguard Worker   UINT16 data_size = {};
1607*4f2df630SAndroid Build Coastguard Worker };
1608*4f2df630SAndroid Build Coastguard Worker 
1609*4f2df630SAndroid Build Coastguard Worker struct TPM2B_NV_PUBLIC {
1610*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1611*4f2df630SAndroid Build Coastguard Worker   TPMS_NV_PUBLIC nv_public = {};
1612*4f2df630SAndroid Build Coastguard Worker };
1613*4f2df630SAndroid Build Coastguard Worker 
1614*4f2df630SAndroid Build Coastguard Worker struct TPM2B_CONTEXT_SENSITIVE {
1615*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1616*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[MAX_CONTEXT_SIZE] = {};
1617*4f2df630SAndroid Build Coastguard Worker };
1618*4f2df630SAndroid Build Coastguard Worker 
1619*4f2df630SAndroid Build Coastguard Worker struct TPMS_CONTEXT_DATA {
1620*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST integrity = {};
1621*4f2df630SAndroid Build Coastguard Worker   TPM2B_CONTEXT_SENSITIVE encrypted = {};
1622*4f2df630SAndroid Build Coastguard Worker };
1623*4f2df630SAndroid Build Coastguard Worker 
1624*4f2df630SAndroid Build Coastguard Worker struct TPM2B_CONTEXT_DATA {
1625*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1626*4f2df630SAndroid Build Coastguard Worker   BYTE buffer[sizeof(TPMS_CONTEXT_DATA)] = {};
1627*4f2df630SAndroid Build Coastguard Worker };
1628*4f2df630SAndroid Build Coastguard Worker 
1629*4f2df630SAndroid Build Coastguard Worker struct TPMS_CONTEXT {
1630*4f2df630SAndroid Build Coastguard Worker   UINT64 sequence = {};
1631*4f2df630SAndroid Build Coastguard Worker   TPMI_DH_CONTEXT saved_handle = {};
1632*4f2df630SAndroid Build Coastguard Worker   TPMI_RH_HIERARCHY hierarchy = {};
1633*4f2df630SAndroid Build Coastguard Worker   TPM2B_CONTEXT_DATA context_blob = {};
1634*4f2df630SAndroid Build Coastguard Worker };
1635*4f2df630SAndroid Build Coastguard Worker 
1636*4f2df630SAndroid Build Coastguard Worker struct TPMS_CREATION_DATA {
1637*4f2df630SAndroid Build Coastguard Worker   TPML_PCR_SELECTION pcr_select = {};
1638*4f2df630SAndroid Build Coastguard Worker   TPM2B_DIGEST pcr_digest = {};
1639*4f2df630SAndroid Build Coastguard Worker   TPMA_LOCALITY locality = {};
1640*4f2df630SAndroid Build Coastguard Worker   TPM_ALG_ID parent_name_alg = {};
1641*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME parent_name = {};
1642*4f2df630SAndroid Build Coastguard Worker   TPM2B_NAME parent_qualified_name = {};
1643*4f2df630SAndroid Build Coastguard Worker   TPM2B_DATA outside_info = {};
1644*4f2df630SAndroid Build Coastguard Worker };
1645*4f2df630SAndroid Build Coastguard Worker 
1646*4f2df630SAndroid Build Coastguard Worker struct TPM2B_CREATION_DATA {
1647*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1648*4f2df630SAndroid Build Coastguard Worker   TPMS_CREATION_DATA creation_data = {};
1649*4f2df630SAndroid Build Coastguard Worker };
1650*4f2df630SAndroid Build Coastguard Worker 
1651*4f2df630SAndroid Build Coastguard Worker struct FIDO_DATA_RANGE {
1652*4f2df630SAndroid Build Coastguard Worker   UINT16 offset = {};
1653*4f2df630SAndroid Build Coastguard Worker   UINT16 size = {};
1654*4f2df630SAndroid Build Coastguard Worker };
1655*4f2df630SAndroid Build Coastguard Worker 
1656*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT size_t GetNumberOfRequestHandles(TPM_CC command_code);
1657*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT size_t GetNumberOfResponseHandles(TPM_CC command_code);
1658*4f2df630SAndroid Build Coastguard Worker 
1659*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_uint8_t(const uint8_t& value,
1660*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
1661*4f2df630SAndroid Build Coastguard Worker 
1662*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_uint8_t(std::string* buffer,
1663*4f2df630SAndroid Build Coastguard Worker                                    uint8_t* value,
1664*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
1665*4f2df630SAndroid Build Coastguard Worker 
1666*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_int8_t(const int8_t& value, std::string* buffer);
1667*4f2df630SAndroid Build Coastguard Worker 
1668*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_int8_t(std::string* buffer,
1669*4f2df630SAndroid Build Coastguard Worker                                   int8_t* value,
1670*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
1671*4f2df630SAndroid Build Coastguard Worker 
1672*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_int(const int& value, std::string* buffer);
1673*4f2df630SAndroid Build Coastguard Worker 
1674*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_int(std::string* buffer,
1675*4f2df630SAndroid Build Coastguard Worker                                int* value,
1676*4f2df630SAndroid Build Coastguard Worker                                std::string* value_bytes);
1677*4f2df630SAndroid Build Coastguard Worker 
1678*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_uint16_t(const uint16_t& value,
1679*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
1680*4f2df630SAndroid Build Coastguard Worker 
1681*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_uint16_t(std::string* buffer,
1682*4f2df630SAndroid Build Coastguard Worker                                     uint16_t* value,
1683*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
1684*4f2df630SAndroid Build Coastguard Worker 
1685*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_int16_t(const int16_t& value,
1686*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
1687*4f2df630SAndroid Build Coastguard Worker 
1688*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_int16_t(std::string* buffer,
1689*4f2df630SAndroid Build Coastguard Worker                                    int16_t* value,
1690*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
1691*4f2df630SAndroid Build Coastguard Worker 
1692*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_uint32_t(const uint32_t& value,
1693*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
1694*4f2df630SAndroid Build Coastguard Worker 
1695*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_uint32_t(std::string* buffer,
1696*4f2df630SAndroid Build Coastguard Worker                                     uint32_t* value,
1697*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
1698*4f2df630SAndroid Build Coastguard Worker 
1699*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_int32_t(const int32_t& value,
1700*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
1701*4f2df630SAndroid Build Coastguard Worker 
1702*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_int32_t(std::string* buffer,
1703*4f2df630SAndroid Build Coastguard Worker                                    int32_t* value,
1704*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
1705*4f2df630SAndroid Build Coastguard Worker 
1706*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_uint64_t(const uint64_t& value,
1707*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
1708*4f2df630SAndroid Build Coastguard Worker 
1709*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_uint64_t(std::string* buffer,
1710*4f2df630SAndroid Build Coastguard Worker                                     uint64_t* value,
1711*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
1712*4f2df630SAndroid Build Coastguard Worker 
1713*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_int64_t(const int64_t& value,
1714*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
1715*4f2df630SAndroid Build Coastguard Worker 
1716*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_int64_t(std::string* buffer,
1717*4f2df630SAndroid Build Coastguard Worker                                    int64_t* value,
1718*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
1719*4f2df630SAndroid Build Coastguard Worker 
1720*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_UINT8(const UINT8& value, std::string* buffer);
1721*4f2df630SAndroid Build Coastguard Worker 
1722*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_UINT8(std::string* buffer,
1723*4f2df630SAndroid Build Coastguard Worker                                  UINT8* value,
1724*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
1725*4f2df630SAndroid Build Coastguard Worker 
1726*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_BYTE(const BYTE& value, std::string* buffer);
1727*4f2df630SAndroid Build Coastguard Worker 
1728*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_BYTE(std::string* buffer,
1729*4f2df630SAndroid Build Coastguard Worker                                 BYTE* value,
1730*4f2df630SAndroid Build Coastguard Worker                                 std::string* value_bytes);
1731*4f2df630SAndroid Build Coastguard Worker 
1732*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_INT8(const INT8& value, std::string* buffer);
1733*4f2df630SAndroid Build Coastguard Worker 
1734*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_INT8(std::string* buffer,
1735*4f2df630SAndroid Build Coastguard Worker                                 INT8* value,
1736*4f2df630SAndroid Build Coastguard Worker                                 std::string* value_bytes);
1737*4f2df630SAndroid Build Coastguard Worker 
1738*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_BOOL(const BOOL& value, std::string* buffer);
1739*4f2df630SAndroid Build Coastguard Worker 
1740*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_BOOL(std::string* buffer,
1741*4f2df630SAndroid Build Coastguard Worker                                 BOOL* value,
1742*4f2df630SAndroid Build Coastguard Worker                                 std::string* value_bytes);
1743*4f2df630SAndroid Build Coastguard Worker 
1744*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_UINT16(const UINT16& value, std::string* buffer);
1745*4f2df630SAndroid Build Coastguard Worker 
1746*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_UINT16(std::string* buffer,
1747*4f2df630SAndroid Build Coastguard Worker                                   UINT16* value,
1748*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
1749*4f2df630SAndroid Build Coastguard Worker 
1750*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_INT16(const INT16& value, std::string* buffer);
1751*4f2df630SAndroid Build Coastguard Worker 
1752*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_INT16(std::string* buffer,
1753*4f2df630SAndroid Build Coastguard Worker                                  INT16* value,
1754*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
1755*4f2df630SAndroid Build Coastguard Worker 
1756*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_UINT32(const UINT32& value, std::string* buffer);
1757*4f2df630SAndroid Build Coastguard Worker 
1758*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_UINT32(std::string* buffer,
1759*4f2df630SAndroid Build Coastguard Worker                                   UINT32* value,
1760*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
1761*4f2df630SAndroid Build Coastguard Worker 
1762*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_INT32(const INT32& value, std::string* buffer);
1763*4f2df630SAndroid Build Coastguard Worker 
1764*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_INT32(std::string* buffer,
1765*4f2df630SAndroid Build Coastguard Worker                                  INT32* value,
1766*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
1767*4f2df630SAndroid Build Coastguard Worker 
1768*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_UINT64(const UINT64& value, std::string* buffer);
1769*4f2df630SAndroid Build Coastguard Worker 
1770*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_UINT64(std::string* buffer,
1771*4f2df630SAndroid Build Coastguard Worker                                   UINT64* value,
1772*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
1773*4f2df630SAndroid Build Coastguard Worker 
1774*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_INT64(const INT64& value, std::string* buffer);
1775*4f2df630SAndroid Build Coastguard Worker 
1776*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_INT64(std::string* buffer,
1777*4f2df630SAndroid Build Coastguard Worker                                  INT64* value,
1778*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
1779*4f2df630SAndroid Build Coastguard Worker 
1780*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_ALGORITHM_ID(const TPM_ALGORITHM_ID& value,
1781*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
1782*4f2df630SAndroid Build Coastguard Worker 
1783*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_ALGORITHM_ID(std::string* buffer,
1784*4f2df630SAndroid Build Coastguard Worker                                             TPM_ALGORITHM_ID* value,
1785*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
1786*4f2df630SAndroid Build Coastguard Worker 
1787*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_MODIFIER_INDICATOR(
1788*4f2df630SAndroid Build Coastguard Worker     const TPM_MODIFIER_INDICATOR& value, std::string* buffer);
1789*4f2df630SAndroid Build Coastguard Worker 
1790*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_MODIFIER_INDICATOR(std::string* buffer,
1791*4f2df630SAndroid Build Coastguard Worker                                                   TPM_MODIFIER_INDICATOR* value,
1792*4f2df630SAndroid Build Coastguard Worker                                                   std::string* value_bytes);
1793*4f2df630SAndroid Build Coastguard Worker 
1794*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_AUTHORIZATION_SIZE(
1795*4f2df630SAndroid Build Coastguard Worker     const TPM_AUTHORIZATION_SIZE& value, std::string* buffer);
1796*4f2df630SAndroid Build Coastguard Worker 
1797*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_AUTHORIZATION_SIZE(std::string* buffer,
1798*4f2df630SAndroid Build Coastguard Worker                                                   TPM_AUTHORIZATION_SIZE* value,
1799*4f2df630SAndroid Build Coastguard Worker                                                   std::string* value_bytes);
1800*4f2df630SAndroid Build Coastguard Worker 
1801*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_PARAMETER_SIZE(
1802*4f2df630SAndroid Build Coastguard Worker     const TPM_PARAMETER_SIZE& value, std::string* buffer);
1803*4f2df630SAndroid Build Coastguard Worker 
1804*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_PARAMETER_SIZE(std::string* buffer,
1805*4f2df630SAndroid Build Coastguard Worker                                               TPM_PARAMETER_SIZE* value,
1806*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
1807*4f2df630SAndroid Build Coastguard Worker 
1808*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_KEY_SIZE(const TPM_KEY_SIZE& value,
1809*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
1810*4f2df630SAndroid Build Coastguard Worker 
1811*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_KEY_SIZE(std::string* buffer,
1812*4f2df630SAndroid Build Coastguard Worker                                         TPM_KEY_SIZE* value,
1813*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
1814*4f2df630SAndroid Build Coastguard Worker 
1815*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_KEY_BITS(const TPM_KEY_BITS& value,
1816*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
1817*4f2df630SAndroid Build Coastguard Worker 
1818*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_KEY_BITS(std::string* buffer,
1819*4f2df630SAndroid Build Coastguard Worker                                         TPM_KEY_BITS* value,
1820*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
1821*4f2df630SAndroid Build Coastguard Worker 
1822*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_HANDLE(const TPM_HANDLE& value,
1823*4f2df630SAndroid Build Coastguard Worker                                           std::string* buffer);
1824*4f2df630SAndroid Build Coastguard Worker 
1825*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_HANDLE(std::string* buffer,
1826*4f2df630SAndroid Build Coastguard Worker                                       TPM_HANDLE* value,
1827*4f2df630SAndroid Build Coastguard Worker                                       std::string* value_bytes);
1828*4f2df630SAndroid Build Coastguard Worker 
1829*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NONCE(const TPM2B_NONCE& value,
1830*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
1831*4f2df630SAndroid Build Coastguard Worker 
1832*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_NONCE(std::string* buffer,
1833*4f2df630SAndroid Build Coastguard Worker                                        TPM2B_NONCE* value,
1834*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
1835*4f2df630SAndroid Build Coastguard Worker 
1836*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_AUTH(const TPM2B_AUTH& value,
1837*4f2df630SAndroid Build Coastguard Worker                                           std::string* buffer);
1838*4f2df630SAndroid Build Coastguard Worker 
1839*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_AUTH(std::string* buffer,
1840*4f2df630SAndroid Build Coastguard Worker                                       TPM2B_AUTH* value,
1841*4f2df630SAndroid Build Coastguard Worker                                       std::string* value_bytes);
1842*4f2df630SAndroid Build Coastguard Worker 
1843*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_OPERAND(const TPM2B_OPERAND& value,
1844*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
1845*4f2df630SAndroid Build Coastguard Worker 
1846*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_OPERAND(std::string* buffer,
1847*4f2df630SAndroid Build Coastguard Worker                                          TPM2B_OPERAND* value,
1848*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
1849*4f2df630SAndroid Build Coastguard Worker 
1850*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_HMAC(const TPMS_SCHEME_HMAC& value,
1851*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
1852*4f2df630SAndroid Build Coastguard Worker 
1853*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_HMAC(std::string* buffer,
1854*4f2df630SAndroid Build Coastguard Worker                                             TPMS_SCHEME_HMAC* value,
1855*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
1856*4f2df630SAndroid Build Coastguard Worker 
1857*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_RSASSA(
1858*4f2df630SAndroid Build Coastguard Worker     const TPMS_SCHEME_RSASSA& value, std::string* buffer);
1859*4f2df630SAndroid Build Coastguard Worker 
1860*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_RSASSA(std::string* buffer,
1861*4f2df630SAndroid Build Coastguard Worker                                               TPMS_SCHEME_RSASSA* value,
1862*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
1863*4f2df630SAndroid Build Coastguard Worker 
1864*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_RSAPSS(
1865*4f2df630SAndroid Build Coastguard Worker     const TPMS_SCHEME_RSAPSS& value, std::string* buffer);
1866*4f2df630SAndroid Build Coastguard Worker 
1867*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_RSAPSS(std::string* buffer,
1868*4f2df630SAndroid Build Coastguard Worker                                               TPMS_SCHEME_RSAPSS* value,
1869*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
1870*4f2df630SAndroid Build Coastguard Worker 
1871*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDSA(const TPMS_SCHEME_ECDSA& value,
1872*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
1873*4f2df630SAndroid Build Coastguard Worker 
1874*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDSA(std::string* buffer,
1875*4f2df630SAndroid Build Coastguard Worker                                              TPMS_SCHEME_ECDSA* value,
1876*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
1877*4f2df630SAndroid Build Coastguard Worker 
1878*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_SM2(const TPMS_SCHEME_SM2& value,
1879*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
1880*4f2df630SAndroid Build Coastguard Worker 
1881*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_SM2(std::string* buffer,
1882*4f2df630SAndroid Build Coastguard Worker                                            TPMS_SCHEME_SM2* value,
1883*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
1884*4f2df630SAndroid Build Coastguard Worker 
1885*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECSCHNORR(
1886*4f2df630SAndroid Build Coastguard Worker     const TPMS_SCHEME_ECSCHNORR& value, std::string* buffer);
1887*4f2df630SAndroid Build Coastguard Worker 
1888*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECSCHNORR(std::string* buffer,
1889*4f2df630SAndroid Build Coastguard Worker                                                  TPMS_SCHEME_ECSCHNORR* value,
1890*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
1891*4f2df630SAndroid Build Coastguard Worker 
1892*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_YES_NO(const TPMI_YES_NO& value,
1893*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
1894*4f2df630SAndroid Build Coastguard Worker 
1895*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_YES_NO(std::string* buffer,
1896*4f2df630SAndroid Build Coastguard Worker                                        TPMI_YES_NO* value,
1897*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
1898*4f2df630SAndroid Build Coastguard Worker 
1899*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_OBJECT(const TPMI_DH_OBJECT& value,
1900*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
1901*4f2df630SAndroid Build Coastguard Worker 
1902*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_OBJECT(std::string* buffer,
1903*4f2df630SAndroid Build Coastguard Worker                                           TPMI_DH_OBJECT* value,
1904*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
1905*4f2df630SAndroid Build Coastguard Worker 
1906*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_PERSISTENT(
1907*4f2df630SAndroid Build Coastguard Worker     const TPMI_DH_PERSISTENT& value, std::string* buffer);
1908*4f2df630SAndroid Build Coastguard Worker 
1909*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_PERSISTENT(std::string* buffer,
1910*4f2df630SAndroid Build Coastguard Worker                                               TPMI_DH_PERSISTENT* value,
1911*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
1912*4f2df630SAndroid Build Coastguard Worker 
1913*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_ENTITY(const TPMI_DH_ENTITY& value,
1914*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
1915*4f2df630SAndroid Build Coastguard Worker 
1916*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_ENTITY(std::string* buffer,
1917*4f2df630SAndroid Build Coastguard Worker                                           TPMI_DH_ENTITY* value,
1918*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
1919*4f2df630SAndroid Build Coastguard Worker 
1920*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_PCR(const TPMI_DH_PCR& value,
1921*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
1922*4f2df630SAndroid Build Coastguard Worker 
1923*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_PCR(std::string* buffer,
1924*4f2df630SAndroid Build Coastguard Worker                                        TPMI_DH_PCR* value,
1925*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
1926*4f2df630SAndroid Build Coastguard Worker 
1927*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_AUTH_SESSION(
1928*4f2df630SAndroid Build Coastguard Worker     const TPMI_SH_AUTH_SESSION& value, std::string* buffer);
1929*4f2df630SAndroid Build Coastguard Worker 
1930*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_AUTH_SESSION(std::string* buffer,
1931*4f2df630SAndroid Build Coastguard Worker                                                 TPMI_SH_AUTH_SESSION* value,
1932*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
1933*4f2df630SAndroid Build Coastguard Worker 
1934*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_HMAC(const TPMI_SH_HMAC& value,
1935*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
1936*4f2df630SAndroid Build Coastguard Worker 
1937*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_HMAC(std::string* buffer,
1938*4f2df630SAndroid Build Coastguard Worker                                         TPMI_SH_HMAC* value,
1939*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
1940*4f2df630SAndroid Build Coastguard Worker 
1941*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_SH_POLICY(const TPMI_SH_POLICY& value,
1942*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
1943*4f2df630SAndroid Build Coastguard Worker 
1944*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_SH_POLICY(std::string* buffer,
1945*4f2df630SAndroid Build Coastguard Worker                                           TPMI_SH_POLICY* value,
1946*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
1947*4f2df630SAndroid Build Coastguard Worker 
1948*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_DH_CONTEXT(const TPMI_DH_CONTEXT& value,
1949*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
1950*4f2df630SAndroid Build Coastguard Worker 
1951*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_DH_CONTEXT(std::string* buffer,
1952*4f2df630SAndroid Build Coastguard Worker                                            TPMI_DH_CONTEXT* value,
1953*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
1954*4f2df630SAndroid Build Coastguard Worker 
1955*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_HIERARCHY(const TPMI_RH_HIERARCHY& value,
1956*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
1957*4f2df630SAndroid Build Coastguard Worker 
1958*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_HIERARCHY(std::string* buffer,
1959*4f2df630SAndroid Build Coastguard Worker                                              TPMI_RH_HIERARCHY* value,
1960*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
1961*4f2df630SAndroid Build Coastguard Worker 
1962*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_ENABLES(const TPMI_RH_ENABLES& value,
1963*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
1964*4f2df630SAndroid Build Coastguard Worker 
1965*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_ENABLES(std::string* buffer,
1966*4f2df630SAndroid Build Coastguard Worker                                            TPMI_RH_ENABLES* value,
1967*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
1968*4f2df630SAndroid Build Coastguard Worker 
1969*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_HIERARCHY_AUTH(
1970*4f2df630SAndroid Build Coastguard Worker     const TPMI_RH_HIERARCHY_AUTH& value, std::string* buffer);
1971*4f2df630SAndroid Build Coastguard Worker 
1972*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_HIERARCHY_AUTH(std::string* buffer,
1973*4f2df630SAndroid Build Coastguard Worker                                                   TPMI_RH_HIERARCHY_AUTH* value,
1974*4f2df630SAndroid Build Coastguard Worker                                                   std::string* value_bytes);
1975*4f2df630SAndroid Build Coastguard Worker 
1976*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_PLATFORM(const TPMI_RH_PLATFORM& value,
1977*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
1978*4f2df630SAndroid Build Coastguard Worker 
1979*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_PLATFORM(std::string* buffer,
1980*4f2df630SAndroid Build Coastguard Worker                                             TPMI_RH_PLATFORM* value,
1981*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
1982*4f2df630SAndroid Build Coastguard Worker 
1983*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_OWNER(const TPMI_RH_OWNER& value,
1984*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
1985*4f2df630SAndroid Build Coastguard Worker 
1986*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_OWNER(std::string* buffer,
1987*4f2df630SAndroid Build Coastguard Worker                                          TPMI_RH_OWNER* value,
1988*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
1989*4f2df630SAndroid Build Coastguard Worker 
1990*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_ENDORSEMENT(
1991*4f2df630SAndroid Build Coastguard Worker     const TPMI_RH_ENDORSEMENT& value, std::string* buffer);
1992*4f2df630SAndroid Build Coastguard Worker 
1993*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_ENDORSEMENT(std::string* buffer,
1994*4f2df630SAndroid Build Coastguard Worker                                                TPMI_RH_ENDORSEMENT* value,
1995*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
1996*4f2df630SAndroid Build Coastguard Worker 
1997*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_PROVISION(const TPMI_RH_PROVISION& value,
1998*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
1999*4f2df630SAndroid Build Coastguard Worker 
2000*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_PROVISION(std::string* buffer,
2001*4f2df630SAndroid Build Coastguard Worker                                              TPMI_RH_PROVISION* value,
2002*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2003*4f2df630SAndroid Build Coastguard Worker 
2004*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_CLEAR(const TPMI_RH_CLEAR& value,
2005*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2006*4f2df630SAndroid Build Coastguard Worker 
2007*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_CLEAR(std::string* buffer,
2008*4f2df630SAndroid Build Coastguard Worker                                          TPMI_RH_CLEAR* value,
2009*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2010*4f2df630SAndroid Build Coastguard Worker 
2011*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_NV_AUTH(const TPMI_RH_NV_AUTH& value,
2012*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2013*4f2df630SAndroid Build Coastguard Worker 
2014*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_NV_AUTH(std::string* buffer,
2015*4f2df630SAndroid Build Coastguard Worker                                            TPMI_RH_NV_AUTH* value,
2016*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2017*4f2df630SAndroid Build Coastguard Worker 
2018*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_LOCKOUT(const TPMI_RH_LOCKOUT& value,
2019*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2020*4f2df630SAndroid Build Coastguard Worker 
2021*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_LOCKOUT(std::string* buffer,
2022*4f2df630SAndroid Build Coastguard Worker                                            TPMI_RH_LOCKOUT* value,
2023*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2024*4f2df630SAndroid Build Coastguard Worker 
2025*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RH_NV_INDEX(const TPMI_RH_NV_INDEX& value,
2026*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2027*4f2df630SAndroid Build Coastguard Worker 
2028*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RH_NV_INDEX(std::string* buffer,
2029*4f2df630SAndroid Build Coastguard Worker                                             TPMI_RH_NV_INDEX* value,
2030*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2031*4f2df630SAndroid Build Coastguard Worker 
2032*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_HASH(const TPMI_ALG_HASH& value,
2033*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2034*4f2df630SAndroid Build Coastguard Worker 
2035*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_HASH(std::string* buffer,
2036*4f2df630SAndroid Build Coastguard Worker                                          TPMI_ALG_HASH* value,
2037*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2038*4f2df630SAndroid Build Coastguard Worker 
2039*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ASYM(const TPMI_ALG_ASYM& value,
2040*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2041*4f2df630SAndroid Build Coastguard Worker 
2042*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ASYM(std::string* buffer,
2043*4f2df630SAndroid Build Coastguard Worker                                          TPMI_ALG_ASYM* value,
2044*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2045*4f2df630SAndroid Build Coastguard Worker 
2046*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM(const TPMI_ALG_SYM& value,
2047*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2048*4f2df630SAndroid Build Coastguard Worker 
2049*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM(std::string* buffer,
2050*4f2df630SAndroid Build Coastguard Worker                                         TPMI_ALG_SYM* value,
2051*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2052*4f2df630SAndroid Build Coastguard Worker 
2053*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM_OBJECT(
2054*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_SYM_OBJECT& value, std::string* buffer);
2055*4f2df630SAndroid Build Coastguard Worker 
2056*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM_OBJECT(std::string* buffer,
2057*4f2df630SAndroid Build Coastguard Worker                                                TPMI_ALG_SYM_OBJECT* value,
2058*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2059*4f2df630SAndroid Build Coastguard Worker 
2060*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SYM_MODE(const TPMI_ALG_SYM_MODE& value,
2061*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2062*4f2df630SAndroid Build Coastguard Worker 
2063*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SYM_MODE(std::string* buffer,
2064*4f2df630SAndroid Build Coastguard Worker                                              TPMI_ALG_SYM_MODE* value,
2065*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2066*4f2df630SAndroid Build Coastguard Worker 
2067*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_KDF(const TPMI_ALG_KDF& value,
2068*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2069*4f2df630SAndroid Build Coastguard Worker 
2070*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_KDF(std::string* buffer,
2071*4f2df630SAndroid Build Coastguard Worker                                         TPMI_ALG_KDF* value,
2072*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2073*4f2df630SAndroid Build Coastguard Worker 
2074*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_SIG_SCHEME(
2075*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_SIG_SCHEME& value, std::string* buffer);
2076*4f2df630SAndroid Build Coastguard Worker 
2077*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_SIG_SCHEME(std::string* buffer,
2078*4f2df630SAndroid Build Coastguard Worker                                                TPMI_ALG_SIG_SCHEME* value,
2079*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2080*4f2df630SAndroid Build Coastguard Worker 
2081*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ECC_KEY_EXCHANGE(
2082*4f2df630SAndroid Build Coastguard Worker     const TPMI_ECC_KEY_EXCHANGE& value, std::string* buffer);
2083*4f2df630SAndroid Build Coastguard Worker 
2084*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ECC_KEY_EXCHANGE(std::string* buffer,
2085*4f2df630SAndroid Build Coastguard Worker                                                  TPMI_ECC_KEY_EXCHANGE* value,
2086*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2087*4f2df630SAndroid Build Coastguard Worker 
2088*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ST_COMMAND_TAG(
2089*4f2df630SAndroid Build Coastguard Worker     const TPMI_ST_COMMAND_TAG& value, std::string* buffer);
2090*4f2df630SAndroid Build Coastguard Worker 
2091*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ST_COMMAND_TAG(std::string* buffer,
2092*4f2df630SAndroid Build Coastguard Worker                                                TPMI_ST_COMMAND_TAG* value,
2093*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2094*4f2df630SAndroid Build Coastguard Worker 
2095*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ST_ATTEST(const TPMI_ST_ATTEST& value,
2096*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2097*4f2df630SAndroid Build Coastguard Worker 
2098*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ST_ATTEST(std::string* buffer,
2099*4f2df630SAndroid Build Coastguard Worker                                           TPMI_ST_ATTEST* value,
2100*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2101*4f2df630SAndroid Build Coastguard Worker 
2102*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_AES_KEY_BITS(const TPMI_AES_KEY_BITS& value,
2103*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2104*4f2df630SAndroid Build Coastguard Worker 
2105*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_AES_KEY_BITS(std::string* buffer,
2106*4f2df630SAndroid Build Coastguard Worker                                              TPMI_AES_KEY_BITS* value,
2107*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2108*4f2df630SAndroid Build Coastguard Worker 
2109*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_SM4_KEY_BITS(const TPMI_SM4_KEY_BITS& value,
2110*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2111*4f2df630SAndroid Build Coastguard Worker 
2112*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_SM4_KEY_BITS(std::string* buffer,
2113*4f2df630SAndroid Build Coastguard Worker                                              TPMI_SM4_KEY_BITS* value,
2114*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2115*4f2df630SAndroid Build Coastguard Worker 
2116*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_KEYEDHASH_SCHEME(
2117*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_KEYEDHASH_SCHEME& value, std::string* buffer);
2118*4f2df630SAndroid Build Coastguard Worker 
2119*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2120*4f2df630SAndroid Build Coastguard Worker Parse_TPMI_ALG_KEYEDHASH_SCHEME(std::string* buffer,
2121*4f2df630SAndroid Build Coastguard Worker                                 TPMI_ALG_KEYEDHASH_SCHEME* value,
2122*4f2df630SAndroid Build Coastguard Worker                                 std::string* value_bytes);
2123*4f2df630SAndroid Build Coastguard Worker 
2124*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ASYM_SCHEME(
2125*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_ASYM_SCHEME& value, std::string* buffer);
2126*4f2df630SAndroid Build Coastguard Worker 
2127*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ASYM_SCHEME(std::string* buffer,
2128*4f2df630SAndroid Build Coastguard Worker                                                 TPMI_ALG_ASYM_SCHEME* value,
2129*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2130*4f2df630SAndroid Build Coastguard Worker 
2131*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_RSA_SCHEME(
2132*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_RSA_SCHEME& value, std::string* buffer);
2133*4f2df630SAndroid Build Coastguard Worker 
2134*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_RSA_SCHEME(std::string* buffer,
2135*4f2df630SAndroid Build Coastguard Worker                                                TPMI_ALG_RSA_SCHEME* value,
2136*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2137*4f2df630SAndroid Build Coastguard Worker 
2138*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_RSA_DECRYPT(
2139*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_RSA_DECRYPT& value, std::string* buffer);
2140*4f2df630SAndroid Build Coastguard Worker 
2141*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_RSA_DECRYPT(std::string* buffer,
2142*4f2df630SAndroid Build Coastguard Worker                                                 TPMI_ALG_RSA_DECRYPT* value,
2143*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2144*4f2df630SAndroid Build Coastguard Worker 
2145*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_RSA_KEY_BITS(const TPMI_RSA_KEY_BITS& value,
2146*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2147*4f2df630SAndroid Build Coastguard Worker 
2148*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_RSA_KEY_BITS(std::string* buffer,
2149*4f2df630SAndroid Build Coastguard Worker                                              TPMI_RSA_KEY_BITS* value,
2150*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2151*4f2df630SAndroid Build Coastguard Worker 
2152*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_ECC_SCHEME(
2153*4f2df630SAndroid Build Coastguard Worker     const TPMI_ALG_ECC_SCHEME& value, std::string* buffer);
2154*4f2df630SAndroid Build Coastguard Worker 
2155*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_ECC_SCHEME(std::string* buffer,
2156*4f2df630SAndroid Build Coastguard Worker                                                TPMI_ALG_ECC_SCHEME* value,
2157*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2158*4f2df630SAndroid Build Coastguard Worker 
2159*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ECC_CURVE(const TPMI_ECC_CURVE& value,
2160*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2161*4f2df630SAndroid Build Coastguard Worker 
2162*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ECC_CURVE(std::string* buffer,
2163*4f2df630SAndroid Build Coastguard Worker                                           TPMI_ECC_CURVE* value,
2164*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2165*4f2df630SAndroid Build Coastguard Worker 
2166*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMI_ALG_PUBLIC(const TPMI_ALG_PUBLIC& value,
2167*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2168*4f2df630SAndroid Build Coastguard Worker 
2169*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMI_ALG_PUBLIC(std::string* buffer,
2170*4f2df630SAndroid Build Coastguard Worker                                            TPMI_ALG_PUBLIC* value,
2171*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2172*4f2df630SAndroid Build Coastguard Worker 
2173*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_ALGORITHM(const TPMA_ALGORITHM& value,
2174*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2175*4f2df630SAndroid Build Coastguard Worker 
2176*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_ALGORITHM(std::string* buffer,
2177*4f2df630SAndroid Build Coastguard Worker                                           TPMA_ALGORITHM* value,
2178*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2179*4f2df630SAndroid Build Coastguard Worker 
2180*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_OBJECT(const TPMA_OBJECT& value,
2181*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
2182*4f2df630SAndroid Build Coastguard Worker 
2183*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_OBJECT(std::string* buffer,
2184*4f2df630SAndroid Build Coastguard Worker                                        TPMA_OBJECT* value,
2185*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
2186*4f2df630SAndroid Build Coastguard Worker 
2187*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_SESSION(const TPMA_SESSION& value,
2188*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2189*4f2df630SAndroid Build Coastguard Worker 
2190*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_SESSION(std::string* buffer,
2191*4f2df630SAndroid Build Coastguard Worker                                         TPMA_SESSION* value,
2192*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2193*4f2df630SAndroid Build Coastguard Worker 
2194*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_LOCALITY(const TPMA_LOCALITY& value,
2195*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2196*4f2df630SAndroid Build Coastguard Worker 
2197*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_LOCALITY(std::string* buffer,
2198*4f2df630SAndroid Build Coastguard Worker                                          TPMA_LOCALITY* value,
2199*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2200*4f2df630SAndroid Build Coastguard Worker 
2201*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_PERMANENT(const TPMA_PERMANENT& value,
2202*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2203*4f2df630SAndroid Build Coastguard Worker 
2204*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_PERMANENT(std::string* buffer,
2205*4f2df630SAndroid Build Coastguard Worker                                           TPMA_PERMANENT* value,
2206*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2207*4f2df630SAndroid Build Coastguard Worker 
2208*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_STARTUP_CLEAR(
2209*4f2df630SAndroid Build Coastguard Worker     const TPMA_STARTUP_CLEAR& value, std::string* buffer);
2210*4f2df630SAndroid Build Coastguard Worker 
2211*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_STARTUP_CLEAR(std::string* buffer,
2212*4f2df630SAndroid Build Coastguard Worker                                               TPMA_STARTUP_CLEAR* value,
2213*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
2214*4f2df630SAndroid Build Coastguard Worker 
2215*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_MEMORY(const TPMA_MEMORY& value,
2216*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
2217*4f2df630SAndroid Build Coastguard Worker 
2218*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_MEMORY(std::string* buffer,
2219*4f2df630SAndroid Build Coastguard Worker                                        TPMA_MEMORY* value,
2220*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
2221*4f2df630SAndroid Build Coastguard Worker 
2222*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_CC(const TPMA_CC& value,
2223*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
2224*4f2df630SAndroid Build Coastguard Worker 
2225*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_CC(std::string* buffer,
2226*4f2df630SAndroid Build Coastguard Worker                                    TPMA_CC* value,
2227*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
2228*4f2df630SAndroid Build Coastguard Worker 
2229*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_NV_INDEX(const TPM_NV_INDEX& value,
2230*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2231*4f2df630SAndroid Build Coastguard Worker 
2232*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_NV_INDEX(std::string* buffer,
2233*4f2df630SAndroid Build Coastguard Worker                                         TPM_NV_INDEX* value,
2234*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2235*4f2df630SAndroid Build Coastguard Worker 
2236*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMA_NV(const TPMA_NV& value,
2237*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
2238*4f2df630SAndroid Build Coastguard Worker 
2239*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMA_NV(std::string* buffer,
2240*4f2df630SAndroid Build Coastguard Worker                                    TPMA_NV* value,
2241*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
2242*4f2df630SAndroid Build Coastguard Worker 
2243*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_SPEC(const TPM_SPEC& value,
2244*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
2245*4f2df630SAndroid Build Coastguard Worker 
2246*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_SPEC(std::string* buffer,
2247*4f2df630SAndroid Build Coastguard Worker                                     TPM_SPEC* value,
2248*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
2249*4f2df630SAndroid Build Coastguard Worker 
2250*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_GENERATED(const TPM_GENERATED& value,
2251*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2252*4f2df630SAndroid Build Coastguard Worker 
2253*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_GENERATED(std::string* buffer,
2254*4f2df630SAndroid Build Coastguard Worker                                          TPM_GENERATED* value,
2255*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2256*4f2df630SAndroid Build Coastguard Worker 
2257*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_ALG_ID(const TPM_ALG_ID& value,
2258*4f2df630SAndroid Build Coastguard Worker                                           std::string* buffer);
2259*4f2df630SAndroid Build Coastguard Worker 
2260*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_ALG_ID(std::string* buffer,
2261*4f2df630SAndroid Build Coastguard Worker                                       TPM_ALG_ID* value,
2262*4f2df630SAndroid Build Coastguard Worker                                       std::string* value_bytes);
2263*4f2df630SAndroid Build Coastguard Worker 
2264*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_ECC_CURVE(const TPM_ECC_CURVE& value,
2265*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2266*4f2df630SAndroid Build Coastguard Worker 
2267*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_ECC_CURVE(std::string* buffer,
2268*4f2df630SAndroid Build Coastguard Worker                                          TPM_ECC_CURVE* value,
2269*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2270*4f2df630SAndroid Build Coastguard Worker 
2271*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_CC(const TPM_CC& value, std::string* buffer);
2272*4f2df630SAndroid Build Coastguard Worker 
2273*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_CC(std::string* buffer,
2274*4f2df630SAndroid Build Coastguard Worker                                   TPM_CC* value,
2275*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2276*4f2df630SAndroid Build Coastguard Worker 
2277*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_RC(const TPM_RC& value, std::string* buffer);
2278*4f2df630SAndroid Build Coastguard Worker 
2279*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_RC(std::string* buffer,
2280*4f2df630SAndroid Build Coastguard Worker                                   TPM_RC* value,
2281*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2282*4f2df630SAndroid Build Coastguard Worker 
2283*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_CLOCK_ADJUST(const TPM_CLOCK_ADJUST& value,
2284*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2285*4f2df630SAndroid Build Coastguard Worker 
2286*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_CLOCK_ADJUST(std::string* buffer,
2287*4f2df630SAndroid Build Coastguard Worker                                             TPM_CLOCK_ADJUST* value,
2288*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2289*4f2df630SAndroid Build Coastguard Worker 
2290*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_EO(const TPM_EO& value, std::string* buffer);
2291*4f2df630SAndroid Build Coastguard Worker 
2292*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_EO(std::string* buffer,
2293*4f2df630SAndroid Build Coastguard Worker                                   TPM_EO* value,
2294*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2295*4f2df630SAndroid Build Coastguard Worker 
2296*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_ST(const TPM_ST& value, std::string* buffer);
2297*4f2df630SAndroid Build Coastguard Worker 
2298*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_ST(std::string* buffer,
2299*4f2df630SAndroid Build Coastguard Worker                                   TPM_ST* value,
2300*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2301*4f2df630SAndroid Build Coastguard Worker 
2302*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_SU(const TPM_SU& value, std::string* buffer);
2303*4f2df630SAndroid Build Coastguard Worker 
2304*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_SU(std::string* buffer,
2305*4f2df630SAndroid Build Coastguard Worker                                   TPM_SU* value,
2306*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2307*4f2df630SAndroid Build Coastguard Worker 
2308*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_SE(const TPM_SE& value, std::string* buffer);
2309*4f2df630SAndroid Build Coastguard Worker 
2310*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_SE(std::string* buffer,
2311*4f2df630SAndroid Build Coastguard Worker                                   TPM_SE* value,
2312*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2313*4f2df630SAndroid Build Coastguard Worker 
2314*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_CAP(const TPM_CAP& value,
2315*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
2316*4f2df630SAndroid Build Coastguard Worker 
2317*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_CAP(std::string* buffer,
2318*4f2df630SAndroid Build Coastguard Worker                                    TPM_CAP* value,
2319*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
2320*4f2df630SAndroid Build Coastguard Worker 
2321*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_PT(const TPM_PT& value, std::string* buffer);
2322*4f2df630SAndroid Build Coastguard Worker 
2323*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_PT(std::string* buffer,
2324*4f2df630SAndroid Build Coastguard Worker                                   TPM_PT* value,
2325*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2326*4f2df630SAndroid Build Coastguard Worker 
2327*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_PT_PCR(const TPM_PT_PCR& value,
2328*4f2df630SAndroid Build Coastguard Worker                                           std::string* buffer);
2329*4f2df630SAndroid Build Coastguard Worker 
2330*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_PT_PCR(std::string* buffer,
2331*4f2df630SAndroid Build Coastguard Worker                                       TPM_PT_PCR* value,
2332*4f2df630SAndroid Build Coastguard Worker                                       std::string* value_bytes);
2333*4f2df630SAndroid Build Coastguard Worker 
2334*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_PS(const TPM_PS& value, std::string* buffer);
2335*4f2df630SAndroid Build Coastguard Worker 
2336*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_PS(std::string* buffer,
2337*4f2df630SAndroid Build Coastguard Worker                                   TPM_PS* value,
2338*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2339*4f2df630SAndroid Build Coastguard Worker 
2340*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_HT(const TPM_HT& value, std::string* buffer);
2341*4f2df630SAndroid Build Coastguard Worker 
2342*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_HT(std::string* buffer,
2343*4f2df630SAndroid Build Coastguard Worker                                   TPM_HT* value,
2344*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2345*4f2df630SAndroid Build Coastguard Worker 
2346*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_RH(const TPM_RH& value, std::string* buffer);
2347*4f2df630SAndroid Build Coastguard Worker 
2348*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_RH(std::string* buffer,
2349*4f2df630SAndroid Build Coastguard Worker                                   TPM_RH* value,
2350*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2351*4f2df630SAndroid Build Coastguard Worker 
2352*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM_HC(const TPM_HC& value, std::string* buffer);
2353*4f2df630SAndroid Build Coastguard Worker 
2354*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM_HC(std::string* buffer,
2355*4f2df630SAndroid Build Coastguard Worker                                   TPM_HC* value,
2356*4f2df630SAndroid Build Coastguard Worker                                   std::string* value_bytes);
2357*4f2df630SAndroid Build Coastguard Worker 
2358*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALGORITHM_DESCRIPTION(
2359*4f2df630SAndroid Build Coastguard Worker     const TPMS_ALGORITHM_DESCRIPTION& value, std::string* buffer);
2360*4f2df630SAndroid Build Coastguard Worker 
2361*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2362*4f2df630SAndroid Build Coastguard Worker Parse_TPMS_ALGORITHM_DESCRIPTION(std::string* buffer,
2363*4f2df630SAndroid Build Coastguard Worker                                  TPMS_ALGORITHM_DESCRIPTION* value,
2364*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
2365*4f2df630SAndroid Build Coastguard Worker 
2366*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_HA(const TPMT_HA& value,
2367*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
2368*4f2df630SAndroid Build Coastguard Worker 
2369*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_HA(std::string* buffer,
2370*4f2df630SAndroid Build Coastguard Worker                                    TPMT_HA* value,
2371*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
2372*4f2df630SAndroid Build Coastguard Worker 
2373*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DIGEST(const TPM2B_DIGEST& value,
2374*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2375*4f2df630SAndroid Build Coastguard Worker 
2376*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_DIGEST(std::string* buffer,
2377*4f2df630SAndroid Build Coastguard Worker                                         TPM2B_DIGEST* value,
2378*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2379*4f2df630SAndroid Build Coastguard Worker 
2380*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_DIGEST Make_TPM2B_DIGEST(const std::string& bytes);
2381*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_DIGEST(const TPM2B_DIGEST& tpm2b);
2382*4f2df630SAndroid Build Coastguard Worker 
2383*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DATA(const TPM2B_DATA& value,
2384*4f2df630SAndroid Build Coastguard Worker                                           std::string* buffer);
2385*4f2df630SAndroid Build Coastguard Worker 
2386*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_DATA(std::string* buffer,
2387*4f2df630SAndroid Build Coastguard Worker                                       TPM2B_DATA* value,
2388*4f2df630SAndroid Build Coastguard Worker                                       std::string* value_bytes);
2389*4f2df630SAndroid Build Coastguard Worker 
2390*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_DATA Make_TPM2B_DATA(const std::string& bytes);
2391*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_DATA(const TPM2B_DATA& tpm2b);
2392*4f2df630SAndroid Build Coastguard Worker 
2393*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_EVENT(const TPM2B_EVENT& value,
2394*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
2395*4f2df630SAndroid Build Coastguard Worker 
2396*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_EVENT(std::string* buffer,
2397*4f2df630SAndroid Build Coastguard Worker                                        TPM2B_EVENT* value,
2398*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
2399*4f2df630SAndroid Build Coastguard Worker 
2400*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_EVENT Make_TPM2B_EVENT(const std::string& bytes);
2401*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_EVENT(const TPM2B_EVENT& tpm2b);
2402*4f2df630SAndroid Build Coastguard Worker 
2403*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_MAX_BUFFER(const TPM2B_MAX_BUFFER& value,
2404*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2405*4f2df630SAndroid Build Coastguard Worker 
2406*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_MAX_BUFFER(std::string* buffer,
2407*4f2df630SAndroid Build Coastguard Worker                                             TPM2B_MAX_BUFFER* value,
2408*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2409*4f2df630SAndroid Build Coastguard Worker 
2410*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_MAX_BUFFER Make_TPM2B_MAX_BUFFER(const std::string& bytes);
2411*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_MAX_BUFFER(
2412*4f2df630SAndroid Build Coastguard Worker     const TPM2B_MAX_BUFFER& tpm2b);
2413*4f2df630SAndroid Build Coastguard Worker 
2414*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_MAX_NV_BUFFER(
2415*4f2df630SAndroid Build Coastguard Worker     const TPM2B_MAX_NV_BUFFER& value, std::string* buffer);
2416*4f2df630SAndroid Build Coastguard Worker 
2417*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_MAX_NV_BUFFER(std::string* buffer,
2418*4f2df630SAndroid Build Coastguard Worker                                                TPM2B_MAX_NV_BUFFER* value,
2419*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2420*4f2df630SAndroid Build Coastguard Worker 
2421*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_MAX_NV_BUFFER
2422*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_MAX_NV_BUFFER(const std::string& bytes);
2423*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_MAX_NV_BUFFER(
2424*4f2df630SAndroid Build Coastguard Worker     const TPM2B_MAX_NV_BUFFER& tpm2b);
2425*4f2df630SAndroid Build Coastguard Worker 
2426*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_TIMEOUT(const TPM2B_TIMEOUT& value,
2427*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2428*4f2df630SAndroid Build Coastguard Worker 
2429*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_TIMEOUT(std::string* buffer,
2430*4f2df630SAndroid Build Coastguard Worker                                          TPM2B_TIMEOUT* value,
2431*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2432*4f2df630SAndroid Build Coastguard Worker 
2433*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_TIMEOUT Make_TPM2B_TIMEOUT(const std::string& bytes);
2434*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_TIMEOUT(const TPM2B_TIMEOUT& tpm2b);
2435*4f2df630SAndroid Build Coastguard Worker 
2436*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_IV(const TPM2B_IV& value,
2437*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
2438*4f2df630SAndroid Build Coastguard Worker 
2439*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_IV(std::string* buffer,
2440*4f2df630SAndroid Build Coastguard Worker                                     TPM2B_IV* value,
2441*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
2442*4f2df630SAndroid Build Coastguard Worker 
2443*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_IV Make_TPM2B_IV(const std::string& bytes);
2444*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_IV(const TPM2B_IV& tpm2b);
2445*4f2df630SAndroid Build Coastguard Worker 
2446*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NAME(const TPM2B_NAME& value,
2447*4f2df630SAndroid Build Coastguard Worker                                           std::string* buffer);
2448*4f2df630SAndroid Build Coastguard Worker 
2449*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_NAME(std::string* buffer,
2450*4f2df630SAndroid Build Coastguard Worker                                       TPM2B_NAME* value,
2451*4f2df630SAndroid Build Coastguard Worker                                       std::string* value_bytes);
2452*4f2df630SAndroid Build Coastguard Worker 
2453*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_NAME Make_TPM2B_NAME(const std::string& bytes);
2454*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_NAME(const TPM2B_NAME& tpm2b);
2455*4f2df630SAndroid Build Coastguard Worker 
2456*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_PCR_SELECT(const TPMS_PCR_SELECT& value,
2457*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2458*4f2df630SAndroid Build Coastguard Worker 
2459*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_PCR_SELECT(std::string* buffer,
2460*4f2df630SAndroid Build Coastguard Worker                                            TPMS_PCR_SELECT* value,
2461*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2462*4f2df630SAndroid Build Coastguard Worker 
2463*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_PCR_SELECTION(
2464*4f2df630SAndroid Build Coastguard Worker     const TPMS_PCR_SELECTION& value, std::string* buffer);
2465*4f2df630SAndroid Build Coastguard Worker 
2466*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_PCR_SELECTION(std::string* buffer,
2467*4f2df630SAndroid Build Coastguard Worker                                               TPMS_PCR_SELECTION* value,
2468*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
2469*4f2df630SAndroid Build Coastguard Worker 
2470*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_CREATION(const TPMT_TK_CREATION& value,
2471*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2472*4f2df630SAndroid Build Coastguard Worker 
2473*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_CREATION(std::string* buffer,
2474*4f2df630SAndroid Build Coastguard Worker                                             TPMT_TK_CREATION* value,
2475*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2476*4f2df630SAndroid Build Coastguard Worker 
2477*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_VERIFIED(const TPMT_TK_VERIFIED& value,
2478*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2479*4f2df630SAndroid Build Coastguard Worker 
2480*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_VERIFIED(std::string* buffer,
2481*4f2df630SAndroid Build Coastguard Worker                                             TPMT_TK_VERIFIED* value,
2482*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2483*4f2df630SAndroid Build Coastguard Worker 
2484*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_AUTH(const TPMT_TK_AUTH& value,
2485*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2486*4f2df630SAndroid Build Coastguard Worker 
2487*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_AUTH(std::string* buffer,
2488*4f2df630SAndroid Build Coastguard Worker                                         TPMT_TK_AUTH* value,
2489*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2490*4f2df630SAndroid Build Coastguard Worker 
2491*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_TK_HASHCHECK(const TPMT_TK_HASHCHECK& value,
2492*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2493*4f2df630SAndroid Build Coastguard Worker 
2494*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_TK_HASHCHECK(std::string* buffer,
2495*4f2df630SAndroid Build Coastguard Worker                                              TPMT_TK_HASHCHECK* value,
2496*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2497*4f2df630SAndroid Build Coastguard Worker 
2498*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALG_PROPERTY(const TPMS_ALG_PROPERTY& value,
2499*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2500*4f2df630SAndroid Build Coastguard Worker 
2501*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_ALG_PROPERTY(std::string* buffer,
2502*4f2df630SAndroid Build Coastguard Worker                                              TPMS_ALG_PROPERTY* value,
2503*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2504*4f2df630SAndroid Build Coastguard Worker 
2505*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_TAGGED_PROPERTY(
2506*4f2df630SAndroid Build Coastguard Worker     const TPMS_TAGGED_PROPERTY& value, std::string* buffer);
2507*4f2df630SAndroid Build Coastguard Worker 
2508*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_TAGGED_PROPERTY(std::string* buffer,
2509*4f2df630SAndroid Build Coastguard Worker                                                 TPMS_TAGGED_PROPERTY* value,
2510*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2511*4f2df630SAndroid Build Coastguard Worker 
2512*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_TAGGED_PCR_SELECT(
2513*4f2df630SAndroid Build Coastguard Worker     const TPMS_TAGGED_PCR_SELECT& value, std::string* buffer);
2514*4f2df630SAndroid Build Coastguard Worker 
2515*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_TAGGED_PCR_SELECT(std::string* buffer,
2516*4f2df630SAndroid Build Coastguard Worker                                                   TPMS_TAGGED_PCR_SELECT* value,
2517*4f2df630SAndroid Build Coastguard Worker                                                   std::string* value_bytes);
2518*4f2df630SAndroid Build Coastguard Worker 
2519*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_CC(const TPML_CC& value,
2520*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
2521*4f2df630SAndroid Build Coastguard Worker 
2522*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_CC(std::string* buffer,
2523*4f2df630SAndroid Build Coastguard Worker                                    TPML_CC* value,
2524*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
2525*4f2df630SAndroid Build Coastguard Worker 
2526*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_CCA(const TPML_CCA& value,
2527*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
2528*4f2df630SAndroid Build Coastguard Worker 
2529*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_CCA(std::string* buffer,
2530*4f2df630SAndroid Build Coastguard Worker                                     TPML_CCA* value,
2531*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
2532*4f2df630SAndroid Build Coastguard Worker 
2533*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_ALG(const TPML_ALG& value,
2534*4f2df630SAndroid Build Coastguard Worker                                         std::string* buffer);
2535*4f2df630SAndroid Build Coastguard Worker 
2536*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_ALG(std::string* buffer,
2537*4f2df630SAndroid Build Coastguard Worker                                     TPML_ALG* value,
2538*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
2539*4f2df630SAndroid Build Coastguard Worker 
2540*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_HANDLE(const TPML_HANDLE& value,
2541*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
2542*4f2df630SAndroid Build Coastguard Worker 
2543*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_HANDLE(std::string* buffer,
2544*4f2df630SAndroid Build Coastguard Worker                                        TPML_HANDLE* value,
2545*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
2546*4f2df630SAndroid Build Coastguard Worker 
2547*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_DIGEST(const TPML_DIGEST& value,
2548*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
2549*4f2df630SAndroid Build Coastguard Worker 
2550*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_DIGEST(std::string* buffer,
2551*4f2df630SAndroid Build Coastguard Worker                                        TPML_DIGEST* value,
2552*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
2553*4f2df630SAndroid Build Coastguard Worker 
2554*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_DIGEST_VALUES(
2555*4f2df630SAndroid Build Coastguard Worker     const TPML_DIGEST_VALUES& value, std::string* buffer);
2556*4f2df630SAndroid Build Coastguard Worker 
2557*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_DIGEST_VALUES(std::string* buffer,
2558*4f2df630SAndroid Build Coastguard Worker                                               TPML_DIGEST_VALUES* value,
2559*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
2560*4f2df630SAndroid Build Coastguard Worker 
2561*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_DIGEST_VALUES(
2562*4f2df630SAndroid Build Coastguard Worker     const TPM2B_DIGEST_VALUES& value, std::string* buffer);
2563*4f2df630SAndroid Build Coastguard Worker 
2564*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_DIGEST_VALUES(std::string* buffer,
2565*4f2df630SAndroid Build Coastguard Worker                                                TPM2B_DIGEST_VALUES* value,
2566*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2567*4f2df630SAndroid Build Coastguard Worker 
2568*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_DIGEST_VALUES
2569*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_DIGEST_VALUES(const std::string& bytes);
2570*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_DIGEST_VALUES(
2571*4f2df630SAndroid Build Coastguard Worker     const TPM2B_DIGEST_VALUES& tpm2b);
2572*4f2df630SAndroid Build Coastguard Worker 
2573*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_PCR_SELECTION(
2574*4f2df630SAndroid Build Coastguard Worker     const TPML_PCR_SELECTION& value, std::string* buffer);
2575*4f2df630SAndroid Build Coastguard Worker 
2576*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_PCR_SELECTION(std::string* buffer,
2577*4f2df630SAndroid Build Coastguard Worker                                               TPML_PCR_SELECTION* value,
2578*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
2579*4f2df630SAndroid Build Coastguard Worker 
2580*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_ALG_PROPERTY(const TPML_ALG_PROPERTY& value,
2581*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2582*4f2df630SAndroid Build Coastguard Worker 
2583*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_ALG_PROPERTY(std::string* buffer,
2584*4f2df630SAndroid Build Coastguard Worker                                              TPML_ALG_PROPERTY* value,
2585*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2586*4f2df630SAndroid Build Coastguard Worker 
2587*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_TAGGED_TPM_PROPERTY(
2588*4f2df630SAndroid Build Coastguard Worker     const TPML_TAGGED_TPM_PROPERTY& value, std::string* buffer);
2589*4f2df630SAndroid Build Coastguard Worker 
2590*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2591*4f2df630SAndroid Build Coastguard Worker Parse_TPML_TAGGED_TPM_PROPERTY(std::string* buffer,
2592*4f2df630SAndroid Build Coastguard Worker                                TPML_TAGGED_TPM_PROPERTY* value,
2593*4f2df630SAndroid Build Coastguard Worker                                std::string* value_bytes);
2594*4f2df630SAndroid Build Coastguard Worker 
2595*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_TAGGED_PCR_PROPERTY(
2596*4f2df630SAndroid Build Coastguard Worker     const TPML_TAGGED_PCR_PROPERTY& value, std::string* buffer);
2597*4f2df630SAndroid Build Coastguard Worker 
2598*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2599*4f2df630SAndroid Build Coastguard Worker Parse_TPML_TAGGED_PCR_PROPERTY(std::string* buffer,
2600*4f2df630SAndroid Build Coastguard Worker                                TPML_TAGGED_PCR_PROPERTY* value,
2601*4f2df630SAndroid Build Coastguard Worker                                std::string* value_bytes);
2602*4f2df630SAndroid Build Coastguard Worker 
2603*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPML_ECC_CURVE(const TPML_ECC_CURVE& value,
2604*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2605*4f2df630SAndroid Build Coastguard Worker 
2606*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPML_ECC_CURVE(std::string* buffer,
2607*4f2df630SAndroid Build Coastguard Worker                                           TPML_ECC_CURVE* value,
2608*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2609*4f2df630SAndroid Build Coastguard Worker 
2610*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CAPABILITY_DATA(
2611*4f2df630SAndroid Build Coastguard Worker     const TPMS_CAPABILITY_DATA& value, std::string* buffer);
2612*4f2df630SAndroid Build Coastguard Worker 
2613*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CAPABILITY_DATA(std::string* buffer,
2614*4f2df630SAndroid Build Coastguard Worker                                                 TPMS_CAPABILITY_DATA* value,
2615*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2616*4f2df630SAndroid Build Coastguard Worker 
2617*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CLOCK_INFO(const TPMS_CLOCK_INFO& value,
2618*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2619*4f2df630SAndroid Build Coastguard Worker 
2620*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CLOCK_INFO(std::string* buffer,
2621*4f2df630SAndroid Build Coastguard Worker                                            TPMS_CLOCK_INFO* value,
2622*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2623*4f2df630SAndroid Build Coastguard Worker 
2624*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_TIME_INFO(const TPMS_TIME_INFO& value,
2625*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2626*4f2df630SAndroid Build Coastguard Worker 
2627*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_TIME_INFO(std::string* buffer,
2628*4f2df630SAndroid Build Coastguard Worker                                           TPMS_TIME_INFO* value,
2629*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2630*4f2df630SAndroid Build Coastguard Worker 
2631*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_TIME_ATTEST_INFO(
2632*4f2df630SAndroid Build Coastguard Worker     const TPMS_TIME_ATTEST_INFO& value, std::string* buffer);
2633*4f2df630SAndroid Build Coastguard Worker 
2634*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_TIME_ATTEST_INFO(std::string* buffer,
2635*4f2df630SAndroid Build Coastguard Worker                                                  TPMS_TIME_ATTEST_INFO* value,
2636*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2637*4f2df630SAndroid Build Coastguard Worker 
2638*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CERTIFY_INFO(const TPMS_CERTIFY_INFO& value,
2639*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2640*4f2df630SAndroid Build Coastguard Worker 
2641*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CERTIFY_INFO(std::string* buffer,
2642*4f2df630SAndroid Build Coastguard Worker                                              TPMS_CERTIFY_INFO* value,
2643*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2644*4f2df630SAndroid Build Coastguard Worker 
2645*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_QUOTE_INFO(const TPMS_QUOTE_INFO& value,
2646*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2647*4f2df630SAndroid Build Coastguard Worker 
2648*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_QUOTE_INFO(std::string* buffer,
2649*4f2df630SAndroid Build Coastguard Worker                                            TPMS_QUOTE_INFO* value,
2650*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2651*4f2df630SAndroid Build Coastguard Worker 
2652*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_COMMAND_AUDIT_INFO(
2653*4f2df630SAndroid Build Coastguard Worker     const TPMS_COMMAND_AUDIT_INFO& value, std::string* buffer);
2654*4f2df630SAndroid Build Coastguard Worker 
2655*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2656*4f2df630SAndroid Build Coastguard Worker Parse_TPMS_COMMAND_AUDIT_INFO(std::string* buffer,
2657*4f2df630SAndroid Build Coastguard Worker                               TPMS_COMMAND_AUDIT_INFO* value,
2658*4f2df630SAndroid Build Coastguard Worker                               std::string* value_bytes);
2659*4f2df630SAndroid Build Coastguard Worker 
2660*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SESSION_AUDIT_INFO(
2661*4f2df630SAndroid Build Coastguard Worker     const TPMS_SESSION_AUDIT_INFO& value, std::string* buffer);
2662*4f2df630SAndroid Build Coastguard Worker 
2663*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2664*4f2df630SAndroid Build Coastguard Worker Parse_TPMS_SESSION_AUDIT_INFO(std::string* buffer,
2665*4f2df630SAndroid Build Coastguard Worker                               TPMS_SESSION_AUDIT_INFO* value,
2666*4f2df630SAndroid Build Coastguard Worker                               std::string* value_bytes);
2667*4f2df630SAndroid Build Coastguard Worker 
2668*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CREATION_INFO(
2669*4f2df630SAndroid Build Coastguard Worker     const TPMS_CREATION_INFO& value, std::string* buffer);
2670*4f2df630SAndroid Build Coastguard Worker 
2671*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CREATION_INFO(std::string* buffer,
2672*4f2df630SAndroid Build Coastguard Worker                                               TPMS_CREATION_INFO* value,
2673*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
2674*4f2df630SAndroid Build Coastguard Worker 
2675*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_NV_CERTIFY_INFO(
2676*4f2df630SAndroid Build Coastguard Worker     const TPMS_NV_CERTIFY_INFO& value, std::string* buffer);
2677*4f2df630SAndroid Build Coastguard Worker 
2678*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_NV_CERTIFY_INFO(std::string* buffer,
2679*4f2df630SAndroid Build Coastguard Worker                                                 TPMS_NV_CERTIFY_INFO* value,
2680*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2681*4f2df630SAndroid Build Coastguard Worker 
2682*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ATTEST(const TPMS_ATTEST& value,
2683*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
2684*4f2df630SAndroid Build Coastguard Worker 
2685*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_ATTEST(std::string* buffer,
2686*4f2df630SAndroid Build Coastguard Worker                                        TPMS_ATTEST* value,
2687*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
2688*4f2df630SAndroid Build Coastguard Worker 
2689*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ATTEST(const TPM2B_ATTEST& value,
2690*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2691*4f2df630SAndroid Build Coastguard Worker 
2692*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_ATTEST(std::string* buffer,
2693*4f2df630SAndroid Build Coastguard Worker                                         TPM2B_ATTEST* value,
2694*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2695*4f2df630SAndroid Build Coastguard Worker 
2696*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_ATTEST Make_TPM2B_ATTEST(const std::string& bytes);
2697*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_ATTEST(const TPM2B_ATTEST& tpm2b);
2698*4f2df630SAndroid Build Coastguard Worker 
2699*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_AUTH_COMMAND(const TPMS_AUTH_COMMAND& value,
2700*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2701*4f2df630SAndroid Build Coastguard Worker 
2702*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_AUTH_COMMAND(std::string* buffer,
2703*4f2df630SAndroid Build Coastguard Worker                                              TPMS_AUTH_COMMAND* value,
2704*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2705*4f2df630SAndroid Build Coastguard Worker 
2706*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_AUTH_RESPONSE(
2707*4f2df630SAndroid Build Coastguard Worker     const TPMS_AUTH_RESPONSE& value, std::string* buffer);
2708*4f2df630SAndroid Build Coastguard Worker 
2709*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_AUTH_RESPONSE(std::string* buffer,
2710*4f2df630SAndroid Build Coastguard Worker                                               TPMS_AUTH_RESPONSE* value,
2711*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
2712*4f2df630SAndroid Build Coastguard Worker 
2713*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_SYM_DEF(const TPMT_SYM_DEF& value,
2714*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
2715*4f2df630SAndroid Build Coastguard Worker 
2716*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_SYM_DEF(std::string* buffer,
2717*4f2df630SAndroid Build Coastguard Worker                                         TPMT_SYM_DEF* value,
2718*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
2719*4f2df630SAndroid Build Coastguard Worker 
2720*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_SYM_DEF_OBJECT(
2721*4f2df630SAndroid Build Coastguard Worker     const TPMT_SYM_DEF_OBJECT& value, std::string* buffer);
2722*4f2df630SAndroid Build Coastguard Worker 
2723*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_SYM_DEF_OBJECT(std::string* buffer,
2724*4f2df630SAndroid Build Coastguard Worker                                                TPMT_SYM_DEF_OBJECT* value,
2725*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2726*4f2df630SAndroid Build Coastguard Worker 
2727*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SYM_KEY(const TPM2B_SYM_KEY& value,
2728*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
2729*4f2df630SAndroid Build Coastguard Worker 
2730*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_SYM_KEY(std::string* buffer,
2731*4f2df630SAndroid Build Coastguard Worker                                          TPM2B_SYM_KEY* value,
2732*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
2733*4f2df630SAndroid Build Coastguard Worker 
2734*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_SYM_KEY Make_TPM2B_SYM_KEY(const std::string& bytes);
2735*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_SYM_KEY(const TPM2B_SYM_KEY& tpm2b);
2736*4f2df630SAndroid Build Coastguard Worker 
2737*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SYMCIPHER_PARMS(
2738*4f2df630SAndroid Build Coastguard Worker     const TPMS_SYMCIPHER_PARMS& value, std::string* buffer);
2739*4f2df630SAndroid Build Coastguard Worker 
2740*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SYMCIPHER_PARMS(std::string* buffer,
2741*4f2df630SAndroid Build Coastguard Worker                                                 TPMS_SYMCIPHER_PARMS* value,
2742*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2743*4f2df630SAndroid Build Coastguard Worker 
2744*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE_DATA(
2745*4f2df630SAndroid Build Coastguard Worker     const TPM2B_SENSITIVE_DATA& value, std::string* buffer);
2746*4f2df630SAndroid Build Coastguard Worker 
2747*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE_DATA(std::string* buffer,
2748*4f2df630SAndroid Build Coastguard Worker                                                 TPM2B_SENSITIVE_DATA* value,
2749*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2750*4f2df630SAndroid Build Coastguard Worker 
2751*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_SENSITIVE_DATA
2752*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_SENSITIVE_DATA(const std::string& bytes);
2753*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_SENSITIVE_DATA(
2754*4f2df630SAndroid Build Coastguard Worker     const TPM2B_SENSITIVE_DATA& tpm2b);
2755*4f2df630SAndroid Build Coastguard Worker 
2756*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SENSITIVE_CREATE(
2757*4f2df630SAndroid Build Coastguard Worker     const TPMS_SENSITIVE_CREATE& value, std::string* buffer);
2758*4f2df630SAndroid Build Coastguard Worker 
2759*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SENSITIVE_CREATE(std::string* buffer,
2760*4f2df630SAndroid Build Coastguard Worker                                                  TPMS_SENSITIVE_CREATE* value,
2761*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2762*4f2df630SAndroid Build Coastguard Worker 
2763*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE_CREATE(
2764*4f2df630SAndroid Build Coastguard Worker     const TPM2B_SENSITIVE_CREATE& value, std::string* buffer);
2765*4f2df630SAndroid Build Coastguard Worker 
2766*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE_CREATE(std::string* buffer,
2767*4f2df630SAndroid Build Coastguard Worker                                                   TPM2B_SENSITIVE_CREATE* value,
2768*4f2df630SAndroid Build Coastguard Worker                                                   std::string* value_bytes);
2769*4f2df630SAndroid Build Coastguard Worker 
2770*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_SENSITIVE_CREATE
2771*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_SENSITIVE_CREATE(const TPMS_SENSITIVE_CREATE& inner);
2772*4f2df630SAndroid Build Coastguard Worker 
2773*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_SIGHASH(
2774*4f2df630SAndroid Build Coastguard Worker     const TPMS_SCHEME_SIGHASH& value, std::string* buffer);
2775*4f2df630SAndroid Build Coastguard Worker 
2776*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_SIGHASH(std::string* buffer,
2777*4f2df630SAndroid Build Coastguard Worker                                                TPMS_SCHEME_SIGHASH* value,
2778*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2779*4f2df630SAndroid Build Coastguard Worker 
2780*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_XOR(const TPMS_SCHEME_XOR& value,
2781*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2782*4f2df630SAndroid Build Coastguard Worker 
2783*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_XOR(std::string* buffer,
2784*4f2df630SAndroid Build Coastguard Worker                                            TPMS_SCHEME_XOR* value,
2785*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2786*4f2df630SAndroid Build Coastguard Worker 
2787*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_KEYEDHASH_SCHEME(
2788*4f2df630SAndroid Build Coastguard Worker     const TPMT_KEYEDHASH_SCHEME& value, std::string* buffer);
2789*4f2df630SAndroid Build Coastguard Worker 
2790*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_KEYEDHASH_SCHEME(std::string* buffer,
2791*4f2df630SAndroid Build Coastguard Worker                                                  TPMT_KEYEDHASH_SCHEME* value,
2792*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2793*4f2df630SAndroid Build Coastguard Worker 
2794*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDAA(const TPMS_SCHEME_ECDAA& value,
2795*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
2796*4f2df630SAndroid Build Coastguard Worker 
2797*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDAA(std::string* buffer,
2798*4f2df630SAndroid Build Coastguard Worker                                              TPMS_SCHEME_ECDAA* value,
2799*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
2800*4f2df630SAndroid Build Coastguard Worker 
2801*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_SIG_SCHEME(const TPMT_SIG_SCHEME& value,
2802*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2803*4f2df630SAndroid Build Coastguard Worker 
2804*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_SIG_SCHEME(std::string* buffer,
2805*4f2df630SAndroid Build Coastguard Worker                                            TPMT_SIG_SCHEME* value,
2806*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2807*4f2df630SAndroid Build Coastguard Worker 
2808*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_OAEP(const TPMS_SCHEME_OAEP& value,
2809*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2810*4f2df630SAndroid Build Coastguard Worker 
2811*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_OAEP(std::string* buffer,
2812*4f2df630SAndroid Build Coastguard Worker                                             TPMS_SCHEME_OAEP* value,
2813*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2814*4f2df630SAndroid Build Coastguard Worker 
2815*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_ECDH(const TPMS_SCHEME_ECDH& value,
2816*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2817*4f2df630SAndroid Build Coastguard Worker 
2818*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_ECDH(std::string* buffer,
2819*4f2df630SAndroid Build Coastguard Worker                                             TPMS_SCHEME_ECDH* value,
2820*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2821*4f2df630SAndroid Build Coastguard Worker 
2822*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_MGF1(const TPMS_SCHEME_MGF1& value,
2823*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2824*4f2df630SAndroid Build Coastguard Worker 
2825*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_MGF1(std::string* buffer,
2826*4f2df630SAndroid Build Coastguard Worker                                             TPMS_SCHEME_MGF1* value,
2827*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2828*4f2df630SAndroid Build Coastguard Worker 
2829*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF1_SP800_56a(
2830*4f2df630SAndroid Build Coastguard Worker     const TPMS_SCHEME_KDF1_SP800_56a& value, std::string* buffer);
2831*4f2df630SAndroid Build Coastguard Worker 
2832*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2833*4f2df630SAndroid Build Coastguard Worker Parse_TPMS_SCHEME_KDF1_SP800_56a(std::string* buffer,
2834*4f2df630SAndroid Build Coastguard Worker                                  TPMS_SCHEME_KDF1_SP800_56a* value,
2835*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
2836*4f2df630SAndroid Build Coastguard Worker 
2837*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF2(const TPMS_SCHEME_KDF2& value,
2838*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2839*4f2df630SAndroid Build Coastguard Worker 
2840*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SCHEME_KDF2(std::string* buffer,
2841*4f2df630SAndroid Build Coastguard Worker                                             TPMS_SCHEME_KDF2* value,
2842*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2843*4f2df630SAndroid Build Coastguard Worker 
2844*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SCHEME_KDF1_SP800_108(
2845*4f2df630SAndroid Build Coastguard Worker     const TPMS_SCHEME_KDF1_SP800_108& value, std::string* buffer);
2846*4f2df630SAndroid Build Coastguard Worker 
2847*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2848*4f2df630SAndroid Build Coastguard Worker Parse_TPMS_SCHEME_KDF1_SP800_108(std::string* buffer,
2849*4f2df630SAndroid Build Coastguard Worker                                  TPMS_SCHEME_KDF1_SP800_108* value,
2850*4f2df630SAndroid Build Coastguard Worker                                  std::string* value_bytes);
2851*4f2df630SAndroid Build Coastguard Worker 
2852*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_KDF_SCHEME(const TPMT_KDF_SCHEME& value,
2853*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2854*4f2df630SAndroid Build Coastguard Worker 
2855*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_KDF_SCHEME(std::string* buffer,
2856*4f2df630SAndroid Build Coastguard Worker                                            TPMT_KDF_SCHEME* value,
2857*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2858*4f2df630SAndroid Build Coastguard Worker 
2859*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_ASYM_SCHEME(const TPMT_ASYM_SCHEME& value,
2860*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2861*4f2df630SAndroid Build Coastguard Worker 
2862*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_ASYM_SCHEME(std::string* buffer,
2863*4f2df630SAndroid Build Coastguard Worker                                             TPMT_ASYM_SCHEME* value,
2864*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2865*4f2df630SAndroid Build Coastguard Worker 
2866*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_RSA_SCHEME(const TPMT_RSA_SCHEME& value,
2867*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2868*4f2df630SAndroid Build Coastguard Worker 
2869*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_RSA_SCHEME(std::string* buffer,
2870*4f2df630SAndroid Build Coastguard Worker                                            TPMT_RSA_SCHEME* value,
2871*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2872*4f2df630SAndroid Build Coastguard Worker 
2873*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_RSA_DECRYPT(const TPMT_RSA_DECRYPT& value,
2874*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
2875*4f2df630SAndroid Build Coastguard Worker 
2876*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_RSA_DECRYPT(std::string* buffer,
2877*4f2df630SAndroid Build Coastguard Worker                                             TPMT_RSA_DECRYPT* value,
2878*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
2879*4f2df630SAndroid Build Coastguard Worker 
2880*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PUBLIC_KEY_RSA(
2881*4f2df630SAndroid Build Coastguard Worker     const TPM2B_PUBLIC_KEY_RSA& value, std::string* buffer);
2882*4f2df630SAndroid Build Coastguard Worker 
2883*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_PUBLIC_KEY_RSA(std::string* buffer,
2884*4f2df630SAndroid Build Coastguard Worker                                                 TPM2B_PUBLIC_KEY_RSA* value,
2885*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2886*4f2df630SAndroid Build Coastguard Worker 
2887*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_PUBLIC_KEY_RSA
2888*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_PUBLIC_KEY_RSA(const std::string& bytes);
2889*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_PUBLIC_KEY_RSA(
2890*4f2df630SAndroid Build Coastguard Worker     const TPM2B_PUBLIC_KEY_RSA& tpm2b);
2891*4f2df630SAndroid Build Coastguard Worker 
2892*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE_KEY_RSA(
2893*4f2df630SAndroid Build Coastguard Worker     const TPM2B_PRIVATE_KEY_RSA& value, std::string* buffer);
2894*4f2df630SAndroid Build Coastguard Worker 
2895*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE_KEY_RSA(std::string* buffer,
2896*4f2df630SAndroid Build Coastguard Worker                                                  TPM2B_PRIVATE_KEY_RSA* value,
2897*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2898*4f2df630SAndroid Build Coastguard Worker 
2899*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_PRIVATE_KEY_RSA
2900*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_PRIVATE_KEY_RSA(const std::string& bytes);
2901*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE_KEY_RSA(
2902*4f2df630SAndroid Build Coastguard Worker     const TPM2B_PRIVATE_KEY_RSA& tpm2b);
2903*4f2df630SAndroid Build Coastguard Worker 
2904*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ECC_PARAMETER(
2905*4f2df630SAndroid Build Coastguard Worker     const TPM2B_ECC_PARAMETER& value, std::string* buffer);
2906*4f2df630SAndroid Build Coastguard Worker 
2907*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_ECC_PARAMETER(std::string* buffer,
2908*4f2df630SAndroid Build Coastguard Worker                                                TPM2B_ECC_PARAMETER* value,
2909*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
2910*4f2df630SAndroid Build Coastguard Worker 
2911*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_ECC_PARAMETER
2912*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_ECC_PARAMETER(const std::string& bytes);
2913*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_ECC_PARAMETER(
2914*4f2df630SAndroid Build Coastguard Worker     const TPM2B_ECC_PARAMETER& tpm2b);
2915*4f2df630SAndroid Build Coastguard Worker 
2916*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ECC_POINT(const TPMS_ECC_POINT& value,
2917*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2918*4f2df630SAndroid Build Coastguard Worker 
2919*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_ECC_POINT(std::string* buffer,
2920*4f2df630SAndroid Build Coastguard Worker                                           TPMS_ECC_POINT* value,
2921*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2922*4f2df630SAndroid Build Coastguard Worker 
2923*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ECC_POINT(const TPM2B_ECC_POINT& value,
2924*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2925*4f2df630SAndroid Build Coastguard Worker 
2926*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_ECC_POINT(std::string* buffer,
2927*4f2df630SAndroid Build Coastguard Worker                                            TPM2B_ECC_POINT* value,
2928*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2929*4f2df630SAndroid Build Coastguard Worker 
2930*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_ECC_POINT Make_TPM2B_ECC_POINT(const TPMS_ECC_POINT& inner);
2931*4f2df630SAndroid Build Coastguard Worker 
2932*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_ECC_SCHEME(const TPMT_ECC_SCHEME& value,
2933*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2934*4f2df630SAndroid Build Coastguard Worker 
2935*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_ECC_SCHEME(std::string* buffer,
2936*4f2df630SAndroid Build Coastguard Worker                                            TPMT_ECC_SCHEME* value,
2937*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
2938*4f2df630SAndroid Build Coastguard Worker 
2939*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ALGORITHM_DETAIL_ECC(
2940*4f2df630SAndroid Build Coastguard Worker     const TPMS_ALGORITHM_DETAIL_ECC& value, std::string* buffer);
2941*4f2df630SAndroid Build Coastguard Worker 
2942*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
2943*4f2df630SAndroid Build Coastguard Worker Parse_TPMS_ALGORITHM_DETAIL_ECC(std::string* buffer,
2944*4f2df630SAndroid Build Coastguard Worker                                 TPMS_ALGORITHM_DETAIL_ECC* value,
2945*4f2df630SAndroid Build Coastguard Worker                                 std::string* value_bytes);
2946*4f2df630SAndroid Build Coastguard Worker 
2947*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SIGNATURE_RSASSA(
2948*4f2df630SAndroid Build Coastguard Worker     const TPMS_SIGNATURE_RSASSA& value, std::string* buffer);
2949*4f2df630SAndroid Build Coastguard Worker 
2950*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_RSASSA(std::string* buffer,
2951*4f2df630SAndroid Build Coastguard Worker                                                  TPMS_SIGNATURE_RSASSA* value,
2952*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2953*4f2df630SAndroid Build Coastguard Worker 
2954*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SIGNATURE_RSAPSS(
2955*4f2df630SAndroid Build Coastguard Worker     const TPMS_SIGNATURE_RSAPSS& value, std::string* buffer);
2956*4f2df630SAndroid Build Coastguard Worker 
2957*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_RSAPSS(std::string* buffer,
2958*4f2df630SAndroid Build Coastguard Worker                                                  TPMS_SIGNATURE_RSAPSS* value,
2959*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
2960*4f2df630SAndroid Build Coastguard Worker 
2961*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_SIGNATURE_ECDSA(
2962*4f2df630SAndroid Build Coastguard Worker     const TPMS_SIGNATURE_ECDSA& value, std::string* buffer);
2963*4f2df630SAndroid Build Coastguard Worker 
2964*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_SIGNATURE_ECDSA(std::string* buffer,
2965*4f2df630SAndroid Build Coastguard Worker                                                 TPMS_SIGNATURE_ECDSA* value,
2966*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2967*4f2df630SAndroid Build Coastguard Worker 
2968*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_SIGNATURE(const TPMT_SIGNATURE& value,
2969*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
2970*4f2df630SAndroid Build Coastguard Worker 
2971*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_SIGNATURE(std::string* buffer,
2972*4f2df630SAndroid Build Coastguard Worker                                           TPMT_SIGNATURE* value,
2973*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
2974*4f2df630SAndroid Build Coastguard Worker 
2975*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ENCRYPTED_SECRET(
2976*4f2df630SAndroid Build Coastguard Worker     const TPM2B_ENCRYPTED_SECRET& value, std::string* buffer);
2977*4f2df630SAndroid Build Coastguard Worker 
2978*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_ENCRYPTED_SECRET(std::string* buffer,
2979*4f2df630SAndroid Build Coastguard Worker                                                   TPM2B_ENCRYPTED_SECRET* value,
2980*4f2df630SAndroid Build Coastguard Worker                                                   std::string* value_bytes);
2981*4f2df630SAndroid Build Coastguard Worker 
2982*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_ENCRYPTED_SECRET
2983*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_ENCRYPTED_SECRET(const std::string& bytes);
2984*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_ENCRYPTED_SECRET(
2985*4f2df630SAndroid Build Coastguard Worker     const TPM2B_ENCRYPTED_SECRET& tpm2b);
2986*4f2df630SAndroid Build Coastguard Worker 
2987*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_KEYEDHASH_PARMS(
2988*4f2df630SAndroid Build Coastguard Worker     const TPMS_KEYEDHASH_PARMS& value, std::string* buffer);
2989*4f2df630SAndroid Build Coastguard Worker 
2990*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_KEYEDHASH_PARMS(std::string* buffer,
2991*4f2df630SAndroid Build Coastguard Worker                                                 TPMS_KEYEDHASH_PARMS* value,
2992*4f2df630SAndroid Build Coastguard Worker                                                 std::string* value_bytes);
2993*4f2df630SAndroid Build Coastguard Worker 
2994*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ASYM_PARMS(const TPMS_ASYM_PARMS& value,
2995*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
2996*4f2df630SAndroid Build Coastguard Worker 
2997*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_ASYM_PARMS(std::string* buffer,
2998*4f2df630SAndroid Build Coastguard Worker                                            TPMS_ASYM_PARMS* value,
2999*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
3000*4f2df630SAndroid Build Coastguard Worker 
3001*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_RSA_PARMS(const TPMS_RSA_PARMS& value,
3002*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
3003*4f2df630SAndroid Build Coastguard Worker 
3004*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_RSA_PARMS(std::string* buffer,
3005*4f2df630SAndroid Build Coastguard Worker                                           TPMS_RSA_PARMS* value,
3006*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
3007*4f2df630SAndroid Build Coastguard Worker 
3008*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_ECC_PARMS(const TPMS_ECC_PARMS& value,
3009*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
3010*4f2df630SAndroid Build Coastguard Worker 
3011*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_ECC_PARMS(std::string* buffer,
3012*4f2df630SAndroid Build Coastguard Worker                                           TPMS_ECC_PARMS* value,
3013*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
3014*4f2df630SAndroid Build Coastguard Worker 
3015*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_PUBLIC_PARMS(const TPMT_PUBLIC_PARMS& value,
3016*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
3017*4f2df630SAndroid Build Coastguard Worker 
3018*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_PUBLIC_PARMS(std::string* buffer,
3019*4f2df630SAndroid Build Coastguard Worker                                              TPMT_PUBLIC_PARMS* value,
3020*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
3021*4f2df630SAndroid Build Coastguard Worker 
3022*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_PUBLIC(const TPMT_PUBLIC& value,
3023*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
3024*4f2df630SAndroid Build Coastguard Worker 
3025*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_PUBLIC(std::string* buffer,
3026*4f2df630SAndroid Build Coastguard Worker                                        TPMT_PUBLIC* value,
3027*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
3028*4f2df630SAndroid Build Coastguard Worker 
3029*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PUBLIC(const TPM2B_PUBLIC& value,
3030*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
3031*4f2df630SAndroid Build Coastguard Worker 
3032*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_PUBLIC(std::string* buffer,
3033*4f2df630SAndroid Build Coastguard Worker                                         TPM2B_PUBLIC* value,
3034*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
3035*4f2df630SAndroid Build Coastguard Worker 
3036*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_PUBLIC Make_TPM2B_PUBLIC(const TPMT_PUBLIC& inner);
3037*4f2df630SAndroid Build Coastguard Worker 
3038*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE_VENDOR_SPECIFIC(
3039*4f2df630SAndroid Build Coastguard Worker     const TPM2B_PRIVATE_VENDOR_SPECIFIC& value, std::string* buffer);
3040*4f2df630SAndroid Build Coastguard Worker 
3041*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
3042*4f2df630SAndroid Build Coastguard Worker Parse_TPM2B_PRIVATE_VENDOR_SPECIFIC(std::string* buffer,
3043*4f2df630SAndroid Build Coastguard Worker                                     TPM2B_PRIVATE_VENDOR_SPECIFIC* value,
3044*4f2df630SAndroid Build Coastguard Worker                                     std::string* value_bytes);
3045*4f2df630SAndroid Build Coastguard Worker 
3046*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_PRIVATE_VENDOR_SPECIFIC
3047*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_PRIVATE_VENDOR_SPECIFIC(const std::string& bytes);
3048*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE_VENDOR_SPECIFIC(
3049*4f2df630SAndroid Build Coastguard Worker     const TPM2B_PRIVATE_VENDOR_SPECIFIC& tpm2b);
3050*4f2df630SAndroid Build Coastguard Worker 
3051*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMT_SENSITIVE(const TPMT_SENSITIVE& value,
3052*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
3053*4f2df630SAndroid Build Coastguard Worker 
3054*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMT_SENSITIVE(std::string* buffer,
3055*4f2df630SAndroid Build Coastguard Worker                                           TPMT_SENSITIVE* value,
3056*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
3057*4f2df630SAndroid Build Coastguard Worker 
3058*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_SENSITIVE(const TPM2B_SENSITIVE& value,
3059*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
3060*4f2df630SAndroid Build Coastguard Worker 
3061*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_SENSITIVE(std::string* buffer,
3062*4f2df630SAndroid Build Coastguard Worker                                            TPM2B_SENSITIVE* value,
3063*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
3064*4f2df630SAndroid Build Coastguard Worker 
3065*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_SENSITIVE Make_TPM2B_SENSITIVE(const TPMT_SENSITIVE& inner);
3066*4f2df630SAndroid Build Coastguard Worker 
3067*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_PRIVATE(const TPM2B_PRIVATE& value,
3068*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
3069*4f2df630SAndroid Build Coastguard Worker 
3070*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_PRIVATE(std::string* buffer,
3071*4f2df630SAndroid Build Coastguard Worker                                          TPM2B_PRIVATE* value,
3072*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
3073*4f2df630SAndroid Build Coastguard Worker 
3074*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_PRIVATE Make_TPM2B_PRIVATE(const std::string& bytes);
3075*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_PRIVATE(const TPM2B_PRIVATE& tpm2b);
3076*4f2df630SAndroid Build Coastguard Worker 
3077*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_ID_OBJECT(const TPM2B_ID_OBJECT& value,
3078*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
3079*4f2df630SAndroid Build Coastguard Worker 
3080*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_ID_OBJECT(std::string* buffer,
3081*4f2df630SAndroid Build Coastguard Worker                                            TPM2B_ID_OBJECT* value,
3082*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
3083*4f2df630SAndroid Build Coastguard Worker 
3084*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_ID_OBJECT Make_TPM2B_ID_OBJECT(const std::string& bytes);
3085*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_ID_OBJECT(
3086*4f2df630SAndroid Build Coastguard Worker     const TPM2B_ID_OBJECT& tpm2b);
3087*4f2df630SAndroid Build Coastguard Worker 
3088*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_NV_PUBLIC(const TPMS_NV_PUBLIC& value,
3089*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
3090*4f2df630SAndroid Build Coastguard Worker 
3091*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_NV_PUBLIC(std::string* buffer,
3092*4f2df630SAndroid Build Coastguard Worker                                           TPMS_NV_PUBLIC* value,
3093*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
3094*4f2df630SAndroid Build Coastguard Worker 
3095*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_NV_PUBLIC(const TPM2B_NV_PUBLIC& value,
3096*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
3097*4f2df630SAndroid Build Coastguard Worker 
3098*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_NV_PUBLIC(std::string* buffer,
3099*4f2df630SAndroid Build Coastguard Worker                                            TPM2B_NV_PUBLIC* value,
3100*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
3101*4f2df630SAndroid Build Coastguard Worker 
3102*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_NV_PUBLIC Make_TPM2B_NV_PUBLIC(const TPMS_NV_PUBLIC& inner);
3103*4f2df630SAndroid Build Coastguard Worker 
3104*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_CONTEXT_SENSITIVE(
3105*4f2df630SAndroid Build Coastguard Worker     const TPM2B_CONTEXT_SENSITIVE& value, std::string* buffer);
3106*4f2df630SAndroid Build Coastguard Worker 
3107*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
3108*4f2df630SAndroid Build Coastguard Worker Parse_TPM2B_CONTEXT_SENSITIVE(std::string* buffer,
3109*4f2df630SAndroid Build Coastguard Worker                               TPM2B_CONTEXT_SENSITIVE* value,
3110*4f2df630SAndroid Build Coastguard Worker                               std::string* value_bytes);
3111*4f2df630SAndroid Build Coastguard Worker 
3112*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_CONTEXT_SENSITIVE
3113*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_CONTEXT_SENSITIVE(const std::string& bytes);
3114*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_CONTEXT_SENSITIVE(
3115*4f2df630SAndroid Build Coastguard Worker     const TPM2B_CONTEXT_SENSITIVE& tpm2b);
3116*4f2df630SAndroid Build Coastguard Worker 
3117*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CONTEXT_DATA(const TPMS_CONTEXT_DATA& value,
3118*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
3119*4f2df630SAndroid Build Coastguard Worker 
3120*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CONTEXT_DATA(std::string* buffer,
3121*4f2df630SAndroid Build Coastguard Worker                                              TPMS_CONTEXT_DATA* value,
3122*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
3123*4f2df630SAndroid Build Coastguard Worker 
3124*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_CONTEXT_DATA(
3125*4f2df630SAndroid Build Coastguard Worker     const TPM2B_CONTEXT_DATA& value, std::string* buffer);
3126*4f2df630SAndroid Build Coastguard Worker 
3127*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_CONTEXT_DATA(std::string* buffer,
3128*4f2df630SAndroid Build Coastguard Worker                                               TPM2B_CONTEXT_DATA* value,
3129*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
3130*4f2df630SAndroid Build Coastguard Worker 
3131*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_CONTEXT_DATA
3132*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_CONTEXT_DATA(const std::string& bytes);
3133*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT std::string StringFrom_TPM2B_CONTEXT_DATA(
3134*4f2df630SAndroid Build Coastguard Worker     const TPM2B_CONTEXT_DATA& tpm2b);
3135*4f2df630SAndroid Build Coastguard Worker 
3136*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CONTEXT(const TPMS_CONTEXT& value,
3137*4f2df630SAndroid Build Coastguard Worker                                             std::string* buffer);
3138*4f2df630SAndroid Build Coastguard Worker 
3139*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CONTEXT(std::string* buffer,
3140*4f2df630SAndroid Build Coastguard Worker                                         TPMS_CONTEXT* value,
3141*4f2df630SAndroid Build Coastguard Worker                                         std::string* value_bytes);
3142*4f2df630SAndroid Build Coastguard Worker 
3143*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMS_CREATION_DATA(
3144*4f2df630SAndroid Build Coastguard Worker     const TPMS_CREATION_DATA& value, std::string* buffer);
3145*4f2df630SAndroid Build Coastguard Worker 
3146*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMS_CREATION_DATA(std::string* buffer,
3147*4f2df630SAndroid Build Coastguard Worker                                               TPMS_CREATION_DATA* value,
3148*4f2df630SAndroid Build Coastguard Worker                                               std::string* value_bytes);
3149*4f2df630SAndroid Build Coastguard Worker 
3150*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPM2B_CREATION_DATA(
3151*4f2df630SAndroid Build Coastguard Worker     const TPM2B_CREATION_DATA& value, std::string* buffer);
3152*4f2df630SAndroid Build Coastguard Worker 
3153*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPM2B_CREATION_DATA(std::string* buffer,
3154*4f2df630SAndroid Build Coastguard Worker                                                TPM2B_CREATION_DATA* value,
3155*4f2df630SAndroid Build Coastguard Worker                                                std::string* value_bytes);
3156*4f2df630SAndroid Build Coastguard Worker 
3157*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM2B_CREATION_DATA
3158*4f2df630SAndroid Build Coastguard Worker Make_TPM2B_CREATION_DATA(const TPMS_CREATION_DATA& inner);
3159*4f2df630SAndroid Build Coastguard Worker 
3160*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_HA(const TPMU_HA& value,
3161*4f2df630SAndroid Build Coastguard Worker                                        std::string* buffer);
3162*4f2df630SAndroid Build Coastguard Worker 
3163*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_HA(std::string* buffer,
3164*4f2df630SAndroid Build Coastguard Worker                                    TPMU_HA* value,
3165*4f2df630SAndroid Build Coastguard Worker                                    std::string* value_bytes);
3166*4f2df630SAndroid Build Coastguard Worker 
3167*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_NAME(const TPMU_NAME& value,
3168*4f2df630SAndroid Build Coastguard Worker                                          std::string* buffer);
3169*4f2df630SAndroid Build Coastguard Worker 
3170*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_NAME(std::string* buffer,
3171*4f2df630SAndroid Build Coastguard Worker                                      TPMU_NAME* value,
3172*4f2df630SAndroid Build Coastguard Worker                                      std::string* value_bytes);
3173*4f2df630SAndroid Build Coastguard Worker 
3174*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_CAPABILITIES(const TPMU_CAPABILITIES& value,
3175*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
3176*4f2df630SAndroid Build Coastguard Worker 
3177*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_CAPABILITIES(std::string* buffer,
3178*4f2df630SAndroid Build Coastguard Worker                                              TPMU_CAPABILITIES* value,
3179*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
3180*4f2df630SAndroid Build Coastguard Worker 
3181*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_ATTEST(const TPMU_ATTEST& value,
3182*4f2df630SAndroid Build Coastguard Worker                                            std::string* buffer);
3183*4f2df630SAndroid Build Coastguard Worker 
3184*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_ATTEST(std::string* buffer,
3185*4f2df630SAndroid Build Coastguard Worker                                        TPMU_ATTEST* value,
3186*4f2df630SAndroid Build Coastguard Worker                                        std::string* value_bytes);
3187*4f2df630SAndroid Build Coastguard Worker 
3188*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_KEY_BITS(const TPMU_SYM_KEY_BITS& value,
3189*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
3190*4f2df630SAndroid Build Coastguard Worker 
3191*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_KEY_BITS(std::string* buffer,
3192*4f2df630SAndroid Build Coastguard Worker                                              TPMU_SYM_KEY_BITS* value,
3193*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
3194*4f2df630SAndroid Build Coastguard Worker 
3195*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_MODE(const TPMU_SYM_MODE& value,
3196*4f2df630SAndroid Build Coastguard Worker                                              std::string* buffer);
3197*4f2df630SAndroid Build Coastguard Worker 
3198*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_MODE(std::string* buffer,
3199*4f2df630SAndroid Build Coastguard Worker                                          TPMU_SYM_MODE* value,
3200*4f2df630SAndroid Build Coastguard Worker                                          std::string* value_bytes);
3201*4f2df630SAndroid Build Coastguard Worker 
3202*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SCHEME_KEYEDHASH(
3203*4f2df630SAndroid Build Coastguard Worker     const TPMU_SCHEME_KEYEDHASH& value, std::string* buffer);
3204*4f2df630SAndroid Build Coastguard Worker 
3205*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_SCHEME_KEYEDHASH(std::string* buffer,
3206*4f2df630SAndroid Build Coastguard Worker                                                  TPMU_SCHEME_KEYEDHASH* value,
3207*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
3208*4f2df630SAndroid Build Coastguard Worker 
3209*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SIG_SCHEME(const TPMU_SIG_SCHEME& value,
3210*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
3211*4f2df630SAndroid Build Coastguard Worker 
3212*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_SIG_SCHEME(std::string* buffer,
3213*4f2df630SAndroid Build Coastguard Worker                                            TPMU_SIG_SCHEME* value,
3214*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
3215*4f2df630SAndroid Build Coastguard Worker 
3216*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_KDF_SCHEME(const TPMU_KDF_SCHEME& value,
3217*4f2df630SAndroid Build Coastguard Worker                                                std::string* buffer);
3218*4f2df630SAndroid Build Coastguard Worker 
3219*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_KDF_SCHEME(std::string* buffer,
3220*4f2df630SAndroid Build Coastguard Worker                                            TPMU_KDF_SCHEME* value,
3221*4f2df630SAndroid Build Coastguard Worker                                            std::string* value_bytes);
3222*4f2df630SAndroid Build Coastguard Worker 
3223*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_ASYM_SCHEME(const TPMU_ASYM_SCHEME& value,
3224*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
3225*4f2df630SAndroid Build Coastguard Worker 
3226*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_ASYM_SCHEME(std::string* buffer,
3227*4f2df630SAndroid Build Coastguard Worker                                             TPMU_ASYM_SCHEME* value,
3228*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
3229*4f2df630SAndroid Build Coastguard Worker 
3230*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SIGNATURE(const TPMU_SIGNATURE& value,
3231*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
3232*4f2df630SAndroid Build Coastguard Worker 
3233*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_SIGNATURE(std::string* buffer,
3234*4f2df630SAndroid Build Coastguard Worker                                           TPMU_SIGNATURE* value,
3235*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
3236*4f2df630SAndroid Build Coastguard Worker 
3237*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_ENCRYPTED_SECRET(
3238*4f2df630SAndroid Build Coastguard Worker     const TPMU_ENCRYPTED_SECRET& value, std::string* buffer);
3239*4f2df630SAndroid Build Coastguard Worker 
3240*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_ENCRYPTED_SECRET(std::string* buffer,
3241*4f2df630SAndroid Build Coastguard Worker                                                  TPMU_ENCRYPTED_SECRET* value,
3242*4f2df630SAndroid Build Coastguard Worker                                                  std::string* value_bytes);
3243*4f2df630SAndroid Build Coastguard Worker 
3244*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_PUBLIC_ID(const TPMU_PUBLIC_ID& value,
3245*4f2df630SAndroid Build Coastguard Worker                                               std::string* buffer);
3246*4f2df630SAndroid Build Coastguard Worker 
3247*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_PUBLIC_ID(std::string* buffer,
3248*4f2df630SAndroid Build Coastguard Worker                                           TPMU_PUBLIC_ID* value,
3249*4f2df630SAndroid Build Coastguard Worker                                           std::string* value_bytes);
3250*4f2df630SAndroid Build Coastguard Worker 
3251*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_PUBLIC_PARMS(const TPMU_PUBLIC_PARMS& value,
3252*4f2df630SAndroid Build Coastguard Worker                                                  std::string* buffer);
3253*4f2df630SAndroid Build Coastguard Worker 
3254*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_PUBLIC_PARMS(std::string* buffer,
3255*4f2df630SAndroid Build Coastguard Worker                                              TPMU_PUBLIC_PARMS* value,
3256*4f2df630SAndroid Build Coastguard Worker                                              std::string* value_bytes);
3257*4f2df630SAndroid Build Coastguard Worker 
3258*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SENSITIVE_COMPOSITE(
3259*4f2df630SAndroid Build Coastguard Worker     const TPMU_SENSITIVE_COMPOSITE& value, std::string* buffer);
3260*4f2df630SAndroid Build Coastguard Worker 
3261*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC
3262*4f2df630SAndroid Build Coastguard Worker Parse_TPMU_SENSITIVE_COMPOSITE(std::string* buffer,
3263*4f2df630SAndroid Build Coastguard Worker                                TPMU_SENSITIVE_COMPOSITE* value,
3264*4f2df630SAndroid Build Coastguard Worker                                std::string* value_bytes);
3265*4f2df630SAndroid Build Coastguard Worker 
3266*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Serialize_TPMU_SYM_DETAILS(const TPMU_SYM_DETAILS& value,
3267*4f2df630SAndroid Build Coastguard Worker                                                 std::string* buffer);
3268*4f2df630SAndroid Build Coastguard Worker 
3269*4f2df630SAndroid Build Coastguard Worker TRUNKS_EXPORT TPM_RC Parse_TPMU_SYM_DETAILS(std::string* buffer,
3270*4f2df630SAndroid Build Coastguard Worker                                             TPMU_SYM_DETAILS* value,
3271*4f2df630SAndroid Build Coastguard Worker                                             std::string* value_bytes);
3272*4f2df630SAndroid Build Coastguard Worker 
3273*4f2df630SAndroid Build Coastguard Worker class TRUNKS_EXPORT Tpm {
3274*4f2df630SAndroid Build Coastguard Worker  public:
3275*4f2df630SAndroid Build Coastguard Worker   // Does not take ownership of |transceiver|.
Tpm(CommandTransceiver * transceiver)3276*4f2df630SAndroid Build Coastguard Worker   explicit Tpm(CommandTransceiver* transceiver) : transceiver_(transceiver) {}
3277*4f2df630SAndroid Build Coastguard Worker   Tpm(const Tpm&) = delete;
3278*4f2df630SAndroid Build Coastguard Worker   Tpm& operator=(const Tpm&) = delete;
3279*4f2df630SAndroid Build Coastguard Worker 
~Tpm()3280*4f2df630SAndroid Build Coastguard Worker   virtual ~Tpm() {}
get_transceiver()3281*4f2df630SAndroid Build Coastguard Worker   CommandTransceiver* get_transceiver() { return transceiver_; }
3282*4f2df630SAndroid Build Coastguard Worker 
3283*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> StartupResponse;
3284*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Startup(
3285*4f2df630SAndroid Build Coastguard Worker       const TPM_SU& startup_type,
3286*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3287*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3288*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Startup(
3289*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3290*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3291*4f2df630SAndroid Build Coastguard Worker   virtual void Startup(const TPM_SU& startup_type,
3292*4f2df630SAndroid Build Coastguard Worker                        AuthorizationDelegate* authorization_delegate,
3293*4f2df630SAndroid Build Coastguard Worker                        StartupResponse callback);
3294*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC StartupSync(const TPM_SU& startup_type,
3295*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate);
3296*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> ShutdownResponse;
3297*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Shutdown(
3298*4f2df630SAndroid Build Coastguard Worker       const TPM_SU& shutdown_type,
3299*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3300*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3301*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Shutdown(
3302*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3303*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3304*4f2df630SAndroid Build Coastguard Worker   virtual void Shutdown(const TPM_SU& shutdown_type,
3305*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
3306*4f2df630SAndroid Build Coastguard Worker                         ShutdownResponse callback);
3307*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ShutdownSync(const TPM_SU& shutdown_type,
3308*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
3309*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> SelfTestResponse;
3310*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_SelfTest(
3311*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& full_test,
3312*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3313*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3314*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_SelfTest(
3315*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3316*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3317*4f2df630SAndroid Build Coastguard Worker   virtual void SelfTest(const TPMI_YES_NO& full_test,
3318*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
3319*4f2df630SAndroid Build Coastguard Worker                         SelfTestResponse callback);
3320*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SelfTestSync(const TPMI_YES_NO& full_test,
3321*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
3322*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3323*4f2df630SAndroid Build Coastguard Worker                                   const TPML_ALG& to_do_list)>
3324*4f2df630SAndroid Build Coastguard Worker       IncrementalSelfTestResponse;
3325*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_IncrementalSelfTest(
3326*4f2df630SAndroid Build Coastguard Worker       const TPML_ALG& to_test,
3327*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3328*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3329*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_IncrementalSelfTest(
3330*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3331*4f2df630SAndroid Build Coastguard Worker       TPML_ALG* to_do_list,
3332*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3333*4f2df630SAndroid Build Coastguard Worker   virtual void IncrementalSelfTest(
3334*4f2df630SAndroid Build Coastguard Worker       const TPML_ALG& to_test,
3335*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
3336*4f2df630SAndroid Build Coastguard Worker       IncrementalSelfTestResponse callback);
3337*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC IncrementalSelfTestSync(
3338*4f2df630SAndroid Build Coastguard Worker       const TPML_ALG& to_test,
3339*4f2df630SAndroid Build Coastguard Worker       TPML_ALG* to_do_list,
3340*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3341*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3342*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_MAX_BUFFER& out_data,
3343*4f2df630SAndroid Build Coastguard Worker                                   const TPM_RC& test_result)>
3344*4f2df630SAndroid Build Coastguard Worker       GetTestResultResponse;
3345*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_GetTestResult(
3346*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3347*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3348*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_GetTestResult(
3349*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3350*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_BUFFER* out_data,
3351*4f2df630SAndroid Build Coastguard Worker       TPM_RC* test_result,
3352*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3353*4f2df630SAndroid Build Coastguard Worker   virtual void GetTestResult(AuthorizationDelegate* authorization_delegate,
3354*4f2df630SAndroid Build Coastguard Worker                              GetTestResultResponse callback);
3355*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC GetTestResultSync(
3356*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_BUFFER* out_data,
3357*4f2df630SAndroid Build Coastguard Worker       TPM_RC* test_result,
3358*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3359*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3360*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_SH_AUTH_SESSION& session_handle,
3361*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NONCE& nonce_tpm)>
3362*4f2df630SAndroid Build Coastguard Worker       StartAuthSessionResponse;
3363*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_StartAuthSession(
3364*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& tpm_key,
3365*4f2df630SAndroid Build Coastguard Worker       const std::string& tpm_key_name,
3366*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_ENTITY& bind,
3367*4f2df630SAndroid Build Coastguard Worker       const std::string& bind_name,
3368*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& nonce_caller,
3369*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
3370*4f2df630SAndroid Build Coastguard Worker       const TPM_SE& session_type,
3371*4f2df630SAndroid Build Coastguard Worker       const TPMT_SYM_DEF& symmetric,
3372*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& auth_hash,
3373*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3374*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3375*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_StartAuthSession(
3376*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3377*4f2df630SAndroid Build Coastguard Worker       TPMI_SH_AUTH_SESSION* session_handle,
3378*4f2df630SAndroid Build Coastguard Worker       TPM2B_NONCE* nonce_tpm,
3379*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3380*4f2df630SAndroid Build Coastguard Worker   virtual void StartAuthSession(const TPMI_DH_OBJECT& tpm_key,
3381*4f2df630SAndroid Build Coastguard Worker                                 const std::string& tpm_key_name,
3382*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_DH_ENTITY& bind,
3383*4f2df630SAndroid Build Coastguard Worker                                 const std::string& bind_name,
3384*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_NONCE& nonce_caller,
3385*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
3386*4f2df630SAndroid Build Coastguard Worker                                 const TPM_SE& session_type,
3387*4f2df630SAndroid Build Coastguard Worker                                 const TPMT_SYM_DEF& symmetric,
3388*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_ALG_HASH& auth_hash,
3389*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
3390*4f2df630SAndroid Build Coastguard Worker                                 StartAuthSessionResponse callback);
3391*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC StartAuthSessionSync(
3392*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& tpm_key,
3393*4f2df630SAndroid Build Coastguard Worker       const std::string& tpm_key_name,
3394*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_ENTITY& bind,
3395*4f2df630SAndroid Build Coastguard Worker       const std::string& bind_name,
3396*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& nonce_caller,
3397*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ENCRYPTED_SECRET& encrypted_salt,
3398*4f2df630SAndroid Build Coastguard Worker       const TPM_SE& session_type,
3399*4f2df630SAndroid Build Coastguard Worker       const TPMT_SYM_DEF& symmetric,
3400*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& auth_hash,
3401*4f2df630SAndroid Build Coastguard Worker       TPMI_SH_AUTH_SESSION* session_handle,
3402*4f2df630SAndroid Build Coastguard Worker       TPM2B_NONCE* nonce_tpm,
3403*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3404*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyRestartResponse;
3405*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyRestart(
3406*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& session_handle,
3407*4f2df630SAndroid Build Coastguard Worker       const std::string& session_handle_name,
3408*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3409*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3410*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyRestart(
3411*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3412*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3413*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyRestart(const TPMI_SH_POLICY& session_handle,
3414*4f2df630SAndroid Build Coastguard Worker                              const std::string& session_handle_name,
3415*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate,
3416*4f2df630SAndroid Build Coastguard Worker                              PolicyRestartResponse callback);
3417*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyRestartSync(
3418*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& session_handle,
3419*4f2df630SAndroid Build Coastguard Worker       const std::string& session_handle_name,
3420*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3421*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3422*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PRIVATE& out_private,
3423*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PUBLIC& out_public,
3424*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_CREATION_DATA& creation_data,
3425*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& creation_hash,
3426*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_CREATION& creation_ticket)>
3427*4f2df630SAndroid Build Coastguard Worker       CreateResponse;
3428*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Create(
3429*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& parent_handle,
3430*4f2df630SAndroid Build Coastguard Worker       const std::string& parent_handle_name,
3431*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE_CREATE& in_sensitive,
3432*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& in_public,
3433*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& outside_info,
3434*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& creation_pcr,
3435*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3436*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3437*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Create(
3438*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3439*4f2df630SAndroid Build Coastguard Worker       TPM2B_PRIVATE* out_private,
3440*4f2df630SAndroid Build Coastguard Worker       TPM2B_PUBLIC* out_public,
3441*4f2df630SAndroid Build Coastguard Worker       TPM2B_CREATION_DATA* creation_data,
3442*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* creation_hash,
3443*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_CREATION* creation_ticket,
3444*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3445*4f2df630SAndroid Build Coastguard Worker   virtual void Create(const TPMI_DH_OBJECT& parent_handle,
3446*4f2df630SAndroid Build Coastguard Worker                       const std::string& parent_handle_name,
3447*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_SENSITIVE_CREATE& in_sensitive,
3448*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_PUBLIC& in_public,
3449*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_DATA& outside_info,
3450*4f2df630SAndroid Build Coastguard Worker                       const TPML_PCR_SELECTION& creation_pcr,
3451*4f2df630SAndroid Build Coastguard Worker                       AuthorizationDelegate* authorization_delegate,
3452*4f2df630SAndroid Build Coastguard Worker                       CreateResponse callback);
3453*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC CreateSync(const TPMI_DH_OBJECT& parent_handle,
3454*4f2df630SAndroid Build Coastguard Worker                             const std::string& parent_handle_name,
3455*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_SENSITIVE_CREATE& in_sensitive,
3456*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_PUBLIC& in_public,
3457*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_DATA& outside_info,
3458*4f2df630SAndroid Build Coastguard Worker                             const TPML_PCR_SELECTION& creation_pcr,
3459*4f2df630SAndroid Build Coastguard Worker                             TPM2B_PRIVATE* out_private,
3460*4f2df630SAndroid Build Coastguard Worker                             TPM2B_PUBLIC* out_public,
3461*4f2df630SAndroid Build Coastguard Worker                             TPM2B_CREATION_DATA* creation_data,
3462*4f2df630SAndroid Build Coastguard Worker                             TPM2B_DIGEST* creation_hash,
3463*4f2df630SAndroid Build Coastguard Worker                             TPMT_TK_CREATION* creation_ticket,
3464*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate);
3465*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3466*4f2df630SAndroid Build Coastguard Worker                                   const TPM_HANDLE& object_handle,
3467*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NAME& name)>
3468*4f2df630SAndroid Build Coastguard Worker       LoadResponse;
3469*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Load(
3470*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& parent_handle,
3471*4f2df630SAndroid Build Coastguard Worker       const std::string& parent_handle_name,
3472*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PRIVATE& in_private,
3473*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& in_public,
3474*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3475*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3476*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Load(
3477*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3478*4f2df630SAndroid Build Coastguard Worker       TPM_HANDLE* object_handle,
3479*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* name,
3480*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3481*4f2df630SAndroid Build Coastguard Worker   virtual void Load(const TPMI_DH_OBJECT& parent_handle,
3482*4f2df630SAndroid Build Coastguard Worker                     const std::string& parent_handle_name,
3483*4f2df630SAndroid Build Coastguard Worker                     const TPM2B_PRIVATE& in_private,
3484*4f2df630SAndroid Build Coastguard Worker                     const TPM2B_PUBLIC& in_public,
3485*4f2df630SAndroid Build Coastguard Worker                     AuthorizationDelegate* authorization_delegate,
3486*4f2df630SAndroid Build Coastguard Worker                     LoadResponse callback);
3487*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC LoadSync(const TPMI_DH_OBJECT& parent_handle,
3488*4f2df630SAndroid Build Coastguard Worker                           const std::string& parent_handle_name,
3489*4f2df630SAndroid Build Coastguard Worker                           const TPM2B_PRIVATE& in_private,
3490*4f2df630SAndroid Build Coastguard Worker                           const TPM2B_PUBLIC& in_public,
3491*4f2df630SAndroid Build Coastguard Worker                           TPM_HANDLE* object_handle,
3492*4f2df630SAndroid Build Coastguard Worker                           TPM2B_NAME* name,
3493*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate);
3494*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3495*4f2df630SAndroid Build Coastguard Worker                                   const TPM_HANDLE& object_handle,
3496*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NAME& name)>
3497*4f2df630SAndroid Build Coastguard Worker       LoadExternalResponse;
3498*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_LoadExternal(
3499*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE& in_private,
3500*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& in_public,
3501*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& hierarchy,
3502*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3503*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3504*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_LoadExternal(
3505*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3506*4f2df630SAndroid Build Coastguard Worker       TPM_HANDLE* object_handle,
3507*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* name,
3508*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3509*4f2df630SAndroid Build Coastguard Worker   virtual void LoadExternal(const TPM2B_SENSITIVE& in_private,
3510*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_PUBLIC& in_public,
3511*4f2df630SAndroid Build Coastguard Worker                             const TPMI_RH_HIERARCHY& hierarchy,
3512*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
3513*4f2df630SAndroid Build Coastguard Worker                             LoadExternalResponse callback);
3514*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC LoadExternalSync(
3515*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE& in_private,
3516*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& in_public,
3517*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& hierarchy,
3518*4f2df630SAndroid Build Coastguard Worker       TPM_HANDLE* object_handle,
3519*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* name,
3520*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3521*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3522*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PUBLIC& out_public,
3523*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NAME& name,
3524*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NAME& qualified_name)>
3525*4f2df630SAndroid Build Coastguard Worker       ReadPublicResponse;
3526*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ReadPublic(
3527*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
3528*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
3529*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3530*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3531*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ReadPublic(
3532*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3533*4f2df630SAndroid Build Coastguard Worker       TPM2B_PUBLIC* out_public,
3534*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* name,
3535*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* qualified_name,
3536*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3537*4f2df630SAndroid Build Coastguard Worker   virtual void ReadPublic(const TPMI_DH_OBJECT& object_handle,
3538*4f2df630SAndroid Build Coastguard Worker                           const std::string& object_handle_name,
3539*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate,
3540*4f2df630SAndroid Build Coastguard Worker                           ReadPublicResponse callback);
3541*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ReadPublicSync(const TPMI_DH_OBJECT& object_handle,
3542*4f2df630SAndroid Build Coastguard Worker                                 const std::string& object_handle_name,
3543*4f2df630SAndroid Build Coastguard Worker                                 TPM2B_PUBLIC* out_public,
3544*4f2df630SAndroid Build Coastguard Worker                                 TPM2B_NAME* name,
3545*4f2df630SAndroid Build Coastguard Worker                                 TPM2B_NAME* qualified_name,
3546*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate);
3547*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3548*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& cert_info)>
3549*4f2df630SAndroid Build Coastguard Worker       ActivateCredentialResponse;
3550*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ActivateCredential(
3551*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& activate_handle,
3552*4f2df630SAndroid Build Coastguard Worker       const std::string& activate_handle_name,
3553*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3554*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3555*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ID_OBJECT& credential_blob,
3556*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ENCRYPTED_SECRET& secret,
3557*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3558*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3559*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ActivateCredential(
3560*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3561*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* cert_info,
3562*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3563*4f2df630SAndroid Build Coastguard Worker   virtual void ActivateCredential(const TPMI_DH_OBJECT& activate_handle,
3564*4f2df630SAndroid Build Coastguard Worker                                   const std::string& activate_handle_name,
3565*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_DH_OBJECT& key_handle,
3566*4f2df630SAndroid Build Coastguard Worker                                   const std::string& key_handle_name,
3567*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ID_OBJECT& credential_blob,
3568*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ENCRYPTED_SECRET& secret,
3569*4f2df630SAndroid Build Coastguard Worker                                   AuthorizationDelegate* authorization_delegate,
3570*4f2df630SAndroid Build Coastguard Worker                                   ActivateCredentialResponse callback);
3571*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ActivateCredentialSync(
3572*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& activate_handle,
3573*4f2df630SAndroid Build Coastguard Worker       const std::string& activate_handle_name,
3574*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3575*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3576*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ID_OBJECT& credential_blob,
3577*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ENCRYPTED_SECRET& secret,
3578*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* cert_info,
3579*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3580*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3581*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ID_OBJECT& credential_blob,
3582*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ENCRYPTED_SECRET& secret)>
3583*4f2df630SAndroid Build Coastguard Worker       MakeCredentialResponse;
3584*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_MakeCredential(
3585*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& handle,
3586*4f2df630SAndroid Build Coastguard Worker       const std::string& handle_name,
3587*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& credential,
3588*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& object_name,
3589*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3590*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3591*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_MakeCredential(
3592*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3593*4f2df630SAndroid Build Coastguard Worker       TPM2B_ID_OBJECT* credential_blob,
3594*4f2df630SAndroid Build Coastguard Worker       TPM2B_ENCRYPTED_SECRET* secret,
3595*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3596*4f2df630SAndroid Build Coastguard Worker   virtual void MakeCredential(const TPMI_DH_OBJECT& handle,
3597*4f2df630SAndroid Build Coastguard Worker                               const std::string& handle_name,
3598*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_DIGEST& credential,
3599*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_NAME& object_name,
3600*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
3601*4f2df630SAndroid Build Coastguard Worker                               MakeCredentialResponse callback);
3602*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC MakeCredentialSync(
3603*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& handle,
3604*4f2df630SAndroid Build Coastguard Worker       const std::string& handle_name,
3605*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& credential,
3606*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& object_name,
3607*4f2df630SAndroid Build Coastguard Worker       TPM2B_ID_OBJECT* credential_blob,
3608*4f2df630SAndroid Build Coastguard Worker       TPM2B_ENCRYPTED_SECRET* secret,
3609*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3610*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3611*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_SENSITIVE_DATA& out_data)>
3612*4f2df630SAndroid Build Coastguard Worker       UnsealResponse;
3613*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Unseal(
3614*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& item_handle,
3615*4f2df630SAndroid Build Coastguard Worker       const std::string& item_handle_name,
3616*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3617*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3618*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Unseal(
3619*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3620*4f2df630SAndroid Build Coastguard Worker       TPM2B_SENSITIVE_DATA* out_data,
3621*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3622*4f2df630SAndroid Build Coastguard Worker   virtual void Unseal(const TPMI_DH_OBJECT& item_handle,
3623*4f2df630SAndroid Build Coastguard Worker                       const std::string& item_handle_name,
3624*4f2df630SAndroid Build Coastguard Worker                       AuthorizationDelegate* authorization_delegate,
3625*4f2df630SAndroid Build Coastguard Worker                       UnsealResponse callback);
3626*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC UnsealSync(const TPMI_DH_OBJECT& item_handle,
3627*4f2df630SAndroid Build Coastguard Worker                             const std::string& item_handle_name,
3628*4f2df630SAndroid Build Coastguard Worker                             TPM2B_SENSITIVE_DATA* out_data,
3629*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate);
3630*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3631*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PRIVATE& out_private)>
3632*4f2df630SAndroid Build Coastguard Worker       ObjectChangeAuthResponse;
3633*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ObjectChangeAuth(
3634*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
3635*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
3636*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& parent_handle,
3637*4f2df630SAndroid Build Coastguard Worker       const std::string& parent_handle_name,
3638*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
3639*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3640*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3641*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ObjectChangeAuth(
3642*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3643*4f2df630SAndroid Build Coastguard Worker       TPM2B_PRIVATE* out_private,
3644*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3645*4f2df630SAndroid Build Coastguard Worker   virtual void ObjectChangeAuth(const TPMI_DH_OBJECT& object_handle,
3646*4f2df630SAndroid Build Coastguard Worker                                 const std::string& object_handle_name,
3647*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_DH_OBJECT& parent_handle,
3648*4f2df630SAndroid Build Coastguard Worker                                 const std::string& parent_handle_name,
3649*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_AUTH& new_auth,
3650*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
3651*4f2df630SAndroid Build Coastguard Worker                                 ObjectChangeAuthResponse callback);
3652*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ObjectChangeAuthSync(
3653*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
3654*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
3655*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& parent_handle,
3656*4f2df630SAndroid Build Coastguard Worker       const std::string& parent_handle_name,
3657*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
3658*4f2df630SAndroid Build Coastguard Worker       TPM2B_PRIVATE* out_private,
3659*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3660*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3661*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DATA& encryption_key_out,
3662*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PRIVATE& duplicate,
3663*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ENCRYPTED_SECRET& out_sym_seed)>
3664*4f2df630SAndroid Build Coastguard Worker       DuplicateResponse;
3665*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Duplicate(
3666*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
3667*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
3668*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& new_parent_handle,
3669*4f2df630SAndroid Build Coastguard Worker       const std::string& new_parent_handle_name,
3670*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& encryption_key_in,
3671*4f2df630SAndroid Build Coastguard Worker       const TPMT_SYM_DEF_OBJECT& symmetric_alg,
3672*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3673*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3674*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Duplicate(
3675*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3676*4f2df630SAndroid Build Coastguard Worker       TPM2B_DATA* encryption_key_out,
3677*4f2df630SAndroid Build Coastguard Worker       TPM2B_PRIVATE* duplicate,
3678*4f2df630SAndroid Build Coastguard Worker       TPM2B_ENCRYPTED_SECRET* out_sym_seed,
3679*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3680*4f2df630SAndroid Build Coastguard Worker   virtual void Duplicate(const TPMI_DH_OBJECT& object_handle,
3681*4f2df630SAndroid Build Coastguard Worker                          const std::string& object_handle_name,
3682*4f2df630SAndroid Build Coastguard Worker                          const TPMI_DH_OBJECT& new_parent_handle,
3683*4f2df630SAndroid Build Coastguard Worker                          const std::string& new_parent_handle_name,
3684*4f2df630SAndroid Build Coastguard Worker                          const TPM2B_DATA& encryption_key_in,
3685*4f2df630SAndroid Build Coastguard Worker                          const TPMT_SYM_DEF_OBJECT& symmetric_alg,
3686*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
3687*4f2df630SAndroid Build Coastguard Worker                          DuplicateResponse callback);
3688*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC DuplicateSync(const TPMI_DH_OBJECT& object_handle,
3689*4f2df630SAndroid Build Coastguard Worker                                const std::string& object_handle_name,
3690*4f2df630SAndroid Build Coastguard Worker                                const TPMI_DH_OBJECT& new_parent_handle,
3691*4f2df630SAndroid Build Coastguard Worker                                const std::string& new_parent_handle_name,
3692*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_DATA& encryption_key_in,
3693*4f2df630SAndroid Build Coastguard Worker                                const TPMT_SYM_DEF_OBJECT& symmetric_alg,
3694*4f2df630SAndroid Build Coastguard Worker                                TPM2B_DATA* encryption_key_out,
3695*4f2df630SAndroid Build Coastguard Worker                                TPM2B_PRIVATE* duplicate,
3696*4f2df630SAndroid Build Coastguard Worker                                TPM2B_ENCRYPTED_SECRET* out_sym_seed,
3697*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
3698*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3699*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PRIVATE& out_duplicate,
3700*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ENCRYPTED_SECRET& out_sym_seed)>
3701*4f2df630SAndroid Build Coastguard Worker       RewrapResponse;
3702*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Rewrap(
3703*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& old_parent,
3704*4f2df630SAndroid Build Coastguard Worker       const std::string& old_parent_name,
3705*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& new_parent,
3706*4f2df630SAndroid Build Coastguard Worker       const std::string& new_parent_name,
3707*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PRIVATE& in_duplicate,
3708*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& name,
3709*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
3710*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3711*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3712*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Rewrap(
3713*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3714*4f2df630SAndroid Build Coastguard Worker       TPM2B_PRIVATE* out_duplicate,
3715*4f2df630SAndroid Build Coastguard Worker       TPM2B_ENCRYPTED_SECRET* out_sym_seed,
3716*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3717*4f2df630SAndroid Build Coastguard Worker   virtual void Rewrap(const TPMI_DH_OBJECT& old_parent,
3718*4f2df630SAndroid Build Coastguard Worker                       const std::string& old_parent_name,
3719*4f2df630SAndroid Build Coastguard Worker                       const TPMI_DH_OBJECT& new_parent,
3720*4f2df630SAndroid Build Coastguard Worker                       const std::string& new_parent_name,
3721*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_PRIVATE& in_duplicate,
3722*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_NAME& name,
3723*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
3724*4f2df630SAndroid Build Coastguard Worker                       AuthorizationDelegate* authorization_delegate,
3725*4f2df630SAndroid Build Coastguard Worker                       RewrapResponse callback);
3726*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC RewrapSync(const TPMI_DH_OBJECT& old_parent,
3727*4f2df630SAndroid Build Coastguard Worker                             const std::string& old_parent_name,
3728*4f2df630SAndroid Build Coastguard Worker                             const TPMI_DH_OBJECT& new_parent,
3729*4f2df630SAndroid Build Coastguard Worker                             const std::string& new_parent_name,
3730*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_PRIVATE& in_duplicate,
3731*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NAME& name,
3732*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
3733*4f2df630SAndroid Build Coastguard Worker                             TPM2B_PRIVATE* out_duplicate,
3734*4f2df630SAndroid Build Coastguard Worker                             TPM2B_ENCRYPTED_SECRET* out_sym_seed,
3735*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate);
3736*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3737*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PRIVATE& out_private)>
3738*4f2df630SAndroid Build Coastguard Worker       ImportResponse;
3739*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Import(
3740*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& parent_handle,
3741*4f2df630SAndroid Build Coastguard Worker       const std::string& parent_handle_name,
3742*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& encryption_key,
3743*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& object_public,
3744*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PRIVATE& duplicate,
3745*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
3746*4f2df630SAndroid Build Coastguard Worker       const TPMT_SYM_DEF_OBJECT& symmetric_alg,
3747*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3748*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3749*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Import(
3750*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3751*4f2df630SAndroid Build Coastguard Worker       TPM2B_PRIVATE* out_private,
3752*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3753*4f2df630SAndroid Build Coastguard Worker   virtual void Import(const TPMI_DH_OBJECT& parent_handle,
3754*4f2df630SAndroid Build Coastguard Worker                       const std::string& parent_handle_name,
3755*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_DATA& encryption_key,
3756*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_PUBLIC& object_public,
3757*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_PRIVATE& duplicate,
3758*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
3759*4f2df630SAndroid Build Coastguard Worker                       const TPMT_SYM_DEF_OBJECT& symmetric_alg,
3760*4f2df630SAndroid Build Coastguard Worker                       AuthorizationDelegate* authorization_delegate,
3761*4f2df630SAndroid Build Coastguard Worker                       ImportResponse callback);
3762*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ImportSync(const TPMI_DH_OBJECT& parent_handle,
3763*4f2df630SAndroid Build Coastguard Worker                             const std::string& parent_handle_name,
3764*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_DATA& encryption_key,
3765*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_PUBLIC& object_public,
3766*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_PRIVATE& duplicate,
3767*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_ENCRYPTED_SECRET& in_sym_seed,
3768*4f2df630SAndroid Build Coastguard Worker                             const TPMT_SYM_DEF_OBJECT& symmetric_alg,
3769*4f2df630SAndroid Build Coastguard Worker                             TPM2B_PRIVATE* out_private,
3770*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate);
3771*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3772*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PUBLIC_KEY_RSA& out_data)>
3773*4f2df630SAndroid Build Coastguard Worker       RSA_EncryptResponse;
3774*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_RSA_Encrypt(
3775*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3776*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3777*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC_KEY_RSA& message,
3778*4f2df630SAndroid Build Coastguard Worker       const TPMT_RSA_DECRYPT& in_scheme,
3779*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& label,
3780*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3781*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3782*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_RSA_Encrypt(
3783*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3784*4f2df630SAndroid Build Coastguard Worker       TPM2B_PUBLIC_KEY_RSA* out_data,
3785*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3786*4f2df630SAndroid Build Coastguard Worker   virtual void RSA_Encrypt(const TPMI_DH_OBJECT& key_handle,
3787*4f2df630SAndroid Build Coastguard Worker                            const std::string& key_handle_name,
3788*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_PUBLIC_KEY_RSA& message,
3789*4f2df630SAndroid Build Coastguard Worker                            const TPMT_RSA_DECRYPT& in_scheme,
3790*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_DATA& label,
3791*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
3792*4f2df630SAndroid Build Coastguard Worker                            RSA_EncryptResponse callback);
3793*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC RSA_EncryptSync(const TPMI_DH_OBJECT& key_handle,
3794*4f2df630SAndroid Build Coastguard Worker                                  const std::string& key_handle_name,
3795*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_PUBLIC_KEY_RSA& message,
3796*4f2df630SAndroid Build Coastguard Worker                                  const TPMT_RSA_DECRYPT& in_scheme,
3797*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_DATA& label,
3798*4f2df630SAndroid Build Coastguard Worker                                  TPM2B_PUBLIC_KEY_RSA* out_data,
3799*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
3800*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3801*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PUBLIC_KEY_RSA& message)>
3802*4f2df630SAndroid Build Coastguard Worker       RSA_DecryptResponse;
3803*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_RSA_Decrypt(
3804*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3805*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3806*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC_KEY_RSA& cipher_text,
3807*4f2df630SAndroid Build Coastguard Worker       const TPMT_RSA_DECRYPT& in_scheme,
3808*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& label,
3809*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3810*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3811*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_RSA_Decrypt(
3812*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3813*4f2df630SAndroid Build Coastguard Worker       TPM2B_PUBLIC_KEY_RSA* message,
3814*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3815*4f2df630SAndroid Build Coastguard Worker   virtual void RSA_Decrypt(const TPMI_DH_OBJECT& key_handle,
3816*4f2df630SAndroid Build Coastguard Worker                            const std::string& key_handle_name,
3817*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_PUBLIC_KEY_RSA& cipher_text,
3818*4f2df630SAndroid Build Coastguard Worker                            const TPMT_RSA_DECRYPT& in_scheme,
3819*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_DATA& label,
3820*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
3821*4f2df630SAndroid Build Coastguard Worker                            RSA_DecryptResponse callback);
3822*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC RSA_DecryptSync(const TPMI_DH_OBJECT& key_handle,
3823*4f2df630SAndroid Build Coastguard Worker                                  const std::string& key_handle_name,
3824*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_PUBLIC_KEY_RSA& cipher_text,
3825*4f2df630SAndroid Build Coastguard Worker                                  const TPMT_RSA_DECRYPT& in_scheme,
3826*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_DATA& label,
3827*4f2df630SAndroid Build Coastguard Worker                                  TPM2B_PUBLIC_KEY_RSA* message,
3828*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
3829*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3830*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& z_point,
3831*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& pub_point)>
3832*4f2df630SAndroid Build Coastguard Worker       ECDH_KeyGenResponse;
3833*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ECDH_KeyGen(
3834*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3835*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3836*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3837*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3838*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ECDH_KeyGen(
3839*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3840*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* z_point,
3841*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* pub_point,
3842*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3843*4f2df630SAndroid Build Coastguard Worker   virtual void ECDH_KeyGen(const TPMI_DH_OBJECT& key_handle,
3844*4f2df630SAndroid Build Coastguard Worker                            const std::string& key_handle_name,
3845*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
3846*4f2df630SAndroid Build Coastguard Worker                            ECDH_KeyGenResponse callback);
3847*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ECDH_KeyGenSync(const TPMI_DH_OBJECT& key_handle,
3848*4f2df630SAndroid Build Coastguard Worker                                  const std::string& key_handle_name,
3849*4f2df630SAndroid Build Coastguard Worker                                  TPM2B_ECC_POINT* z_point,
3850*4f2df630SAndroid Build Coastguard Worker                                  TPM2B_ECC_POINT* pub_point,
3851*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
3852*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3853*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& out_point)>
3854*4f2df630SAndroid Build Coastguard Worker       ECDH_ZGenResponse;
3855*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ECDH_ZGen(
3856*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3857*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3858*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ECC_POINT& in_point,
3859*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3860*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3861*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ECDH_ZGen(
3862*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3863*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* out_point,
3864*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3865*4f2df630SAndroid Build Coastguard Worker   virtual void ECDH_ZGen(const TPMI_DH_OBJECT& key_handle,
3866*4f2df630SAndroid Build Coastguard Worker                          const std::string& key_handle_name,
3867*4f2df630SAndroid Build Coastguard Worker                          const TPM2B_ECC_POINT& in_point,
3868*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
3869*4f2df630SAndroid Build Coastguard Worker                          ECDH_ZGenResponse callback);
3870*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ECDH_ZGenSync(const TPMI_DH_OBJECT& key_handle,
3871*4f2df630SAndroid Build Coastguard Worker                                const std::string& key_handle_name,
3872*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_ECC_POINT& in_point,
3873*4f2df630SAndroid Build Coastguard Worker                                TPM2B_ECC_POINT* out_point,
3874*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
3875*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3876*4f2df630SAndroid Build Coastguard Worker                                   const TPMS_ALGORITHM_DETAIL_ECC& parameters)>
3877*4f2df630SAndroid Build Coastguard Worker       ECC_ParametersResponse;
3878*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ECC_Parameters(
3879*4f2df630SAndroid Build Coastguard Worker       const TPMI_ECC_CURVE& curve_id,
3880*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3881*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3882*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ECC_Parameters(
3883*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3884*4f2df630SAndroid Build Coastguard Worker       TPMS_ALGORITHM_DETAIL_ECC* parameters,
3885*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3886*4f2df630SAndroid Build Coastguard Worker   virtual void ECC_Parameters(const TPMI_ECC_CURVE& curve_id,
3887*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
3888*4f2df630SAndroid Build Coastguard Worker                               ECC_ParametersResponse callback);
3889*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ECC_ParametersSync(
3890*4f2df630SAndroid Build Coastguard Worker       const TPMI_ECC_CURVE& curve_id,
3891*4f2df630SAndroid Build Coastguard Worker       TPMS_ALGORITHM_DETAIL_ECC* parameters,
3892*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3893*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3894*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& out_z1,
3895*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& out_z2)>
3896*4f2df630SAndroid Build Coastguard Worker       ZGen_2PhaseResponse;
3897*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ZGen_2Phase(
3898*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_a,
3899*4f2df630SAndroid Build Coastguard Worker       const std::string& key_a_name,
3900*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ECC_POINT& in_qs_b,
3901*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ECC_POINT& in_qe_b,
3902*4f2df630SAndroid Build Coastguard Worker       const TPMI_ECC_KEY_EXCHANGE& in_scheme,
3903*4f2df630SAndroid Build Coastguard Worker       const UINT16& counter,
3904*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3905*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3906*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ZGen_2Phase(
3907*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3908*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* out_z1,
3909*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* out_z2,
3910*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3911*4f2df630SAndroid Build Coastguard Worker   virtual void ZGen_2Phase(const TPMI_DH_OBJECT& key_a,
3912*4f2df630SAndroid Build Coastguard Worker                            const std::string& key_a_name,
3913*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_ECC_POINT& in_qs_b,
3914*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_ECC_POINT& in_qe_b,
3915*4f2df630SAndroid Build Coastguard Worker                            const TPMI_ECC_KEY_EXCHANGE& in_scheme,
3916*4f2df630SAndroid Build Coastguard Worker                            const UINT16& counter,
3917*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
3918*4f2df630SAndroid Build Coastguard Worker                            ZGen_2PhaseResponse callback);
3919*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ZGen_2PhaseSync(const TPMI_DH_OBJECT& key_a,
3920*4f2df630SAndroid Build Coastguard Worker                                  const std::string& key_a_name,
3921*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_ECC_POINT& in_qs_b,
3922*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_ECC_POINT& in_qe_b,
3923*4f2df630SAndroid Build Coastguard Worker                                  const TPMI_ECC_KEY_EXCHANGE& in_scheme,
3924*4f2df630SAndroid Build Coastguard Worker                                  const UINT16& counter,
3925*4f2df630SAndroid Build Coastguard Worker                                  TPM2B_ECC_POINT* out_z1,
3926*4f2df630SAndroid Build Coastguard Worker                                  TPM2B_ECC_POINT* out_z2,
3927*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
3928*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3929*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_MAX_BUFFER& out_data,
3930*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_IV& iv_out)>
3931*4f2df630SAndroid Build Coastguard Worker       EncryptDecryptResponse;
3932*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_EncryptDecrypt(
3933*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3934*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3935*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& decrypt,
3936*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_SYM_MODE& mode,
3937*4f2df630SAndroid Build Coastguard Worker       const TPM2B_IV& iv_in,
3938*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& in_data,
3939*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3940*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3941*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_EncryptDecrypt(
3942*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3943*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_BUFFER* out_data,
3944*4f2df630SAndroid Build Coastguard Worker       TPM2B_IV* iv_out,
3945*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3946*4f2df630SAndroid Build Coastguard Worker   virtual void EncryptDecrypt(const TPMI_DH_OBJECT& key_handle,
3947*4f2df630SAndroid Build Coastguard Worker                               const std::string& key_handle_name,
3948*4f2df630SAndroid Build Coastguard Worker                               const TPMI_YES_NO& decrypt,
3949*4f2df630SAndroid Build Coastguard Worker                               const TPMI_ALG_SYM_MODE& mode,
3950*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_IV& iv_in,
3951*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_MAX_BUFFER& in_data,
3952*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
3953*4f2df630SAndroid Build Coastguard Worker                               EncryptDecryptResponse callback);
3954*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC EncryptDecryptSync(
3955*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
3956*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
3957*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& decrypt,
3958*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_SYM_MODE& mode,
3959*4f2df630SAndroid Build Coastguard Worker       const TPM2B_IV& iv_in,
3960*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& in_data,
3961*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_BUFFER* out_data,
3962*4f2df630SAndroid Build Coastguard Worker       TPM2B_IV* iv_out,
3963*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3964*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3965*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& out_hash,
3966*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_HASHCHECK& validation)>
3967*4f2df630SAndroid Build Coastguard Worker       HashResponse;
3968*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Hash(
3969*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& data,
3970*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
3971*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& hierarchy,
3972*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3973*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3974*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Hash(
3975*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
3976*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* out_hash,
3977*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_HASHCHECK* validation,
3978*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
3979*4f2df630SAndroid Build Coastguard Worker   virtual void Hash(const TPM2B_MAX_BUFFER& data,
3980*4f2df630SAndroid Build Coastguard Worker                     const TPMI_ALG_HASH& hash_alg,
3981*4f2df630SAndroid Build Coastguard Worker                     const TPMI_RH_HIERARCHY& hierarchy,
3982*4f2df630SAndroid Build Coastguard Worker                     AuthorizationDelegate* authorization_delegate,
3983*4f2df630SAndroid Build Coastguard Worker                     HashResponse callback);
3984*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC HashSync(const TPM2B_MAX_BUFFER& data,
3985*4f2df630SAndroid Build Coastguard Worker                           const TPMI_ALG_HASH& hash_alg,
3986*4f2df630SAndroid Build Coastguard Worker                           const TPMI_RH_HIERARCHY& hierarchy,
3987*4f2df630SAndroid Build Coastguard Worker                           TPM2B_DIGEST* out_hash,
3988*4f2df630SAndroid Build Coastguard Worker                           TPMT_TK_HASHCHECK* validation,
3989*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate);
3990*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
3991*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& out_hmac)>
3992*4f2df630SAndroid Build Coastguard Worker       HMACResponse;
3993*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_HMAC(
3994*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& handle,
3995*4f2df630SAndroid Build Coastguard Worker       const std::string& handle_name,
3996*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
3997*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
3998*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
3999*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4000*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_HMAC(
4001*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4002*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* out_hmac,
4003*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4004*4f2df630SAndroid Build Coastguard Worker   virtual void HMAC(const TPMI_DH_OBJECT& handle,
4005*4f2df630SAndroid Build Coastguard Worker                     const std::string& handle_name,
4006*4f2df630SAndroid Build Coastguard Worker                     const TPM2B_MAX_BUFFER& buffer,
4007*4f2df630SAndroid Build Coastguard Worker                     const TPMI_ALG_HASH& hash_alg,
4008*4f2df630SAndroid Build Coastguard Worker                     AuthorizationDelegate* authorization_delegate,
4009*4f2df630SAndroid Build Coastguard Worker                     HMACResponse callback);
4010*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC HMACSync(const TPMI_DH_OBJECT& handle,
4011*4f2df630SAndroid Build Coastguard Worker                           const std::string& handle_name,
4012*4f2df630SAndroid Build Coastguard Worker                           const TPM2B_MAX_BUFFER& buffer,
4013*4f2df630SAndroid Build Coastguard Worker                           const TPMI_ALG_HASH& hash_alg,
4014*4f2df630SAndroid Build Coastguard Worker                           TPM2B_DIGEST* out_hmac,
4015*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate);
4016*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4017*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& random_bytes)>
4018*4f2df630SAndroid Build Coastguard Worker       GetRandomResponse;
4019*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_GetRandom(
4020*4f2df630SAndroid Build Coastguard Worker       const UINT16& bytes_requested,
4021*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4022*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4023*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_GetRandom(
4024*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4025*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* random_bytes,
4026*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4027*4f2df630SAndroid Build Coastguard Worker   virtual void GetRandom(const UINT16& bytes_requested,
4028*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
4029*4f2df630SAndroid Build Coastguard Worker                          GetRandomResponse callback);
4030*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC GetRandomSync(const UINT16& bytes_requested,
4031*4f2df630SAndroid Build Coastguard Worker                                TPM2B_DIGEST* random_bytes,
4032*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
4033*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> StirRandomResponse;
4034*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_StirRandom(
4035*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE_DATA& in_data,
4036*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4037*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4038*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_StirRandom(
4039*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4040*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4041*4f2df630SAndroid Build Coastguard Worker   virtual void StirRandom(const TPM2B_SENSITIVE_DATA& in_data,
4042*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate,
4043*4f2df630SAndroid Build Coastguard Worker                           StirRandomResponse callback);
4044*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC StirRandomSync(const TPM2B_SENSITIVE_DATA& in_data,
4045*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate);
4046*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4047*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_DH_OBJECT& sequence_handle)>
4048*4f2df630SAndroid Build Coastguard Worker       HMAC_StartResponse;
4049*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_HMAC_Start(
4050*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& handle,
4051*4f2df630SAndroid Build Coastguard Worker       const std::string& handle_name,
4052*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& auth,
4053*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
4054*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4055*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4056*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_HMAC_Start(
4057*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4058*4f2df630SAndroid Build Coastguard Worker       TPMI_DH_OBJECT* sequence_handle,
4059*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4060*4f2df630SAndroid Build Coastguard Worker   virtual void HMAC_Start(const TPMI_DH_OBJECT& handle,
4061*4f2df630SAndroid Build Coastguard Worker                           const std::string& handle_name,
4062*4f2df630SAndroid Build Coastguard Worker                           const TPM2B_AUTH& auth,
4063*4f2df630SAndroid Build Coastguard Worker                           const TPMI_ALG_HASH& hash_alg,
4064*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate,
4065*4f2df630SAndroid Build Coastguard Worker                           HMAC_StartResponse callback);
4066*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC HMAC_StartSync(const TPMI_DH_OBJECT& handle,
4067*4f2df630SAndroid Build Coastguard Worker                                 const std::string& handle_name,
4068*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_AUTH& auth,
4069*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_ALG_HASH& hash_alg,
4070*4f2df630SAndroid Build Coastguard Worker                                 TPMI_DH_OBJECT* sequence_handle,
4071*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate);
4072*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4073*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_DH_OBJECT& sequence_handle)>
4074*4f2df630SAndroid Build Coastguard Worker       HashSequenceStartResponse;
4075*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_HashSequenceStart(
4076*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& auth,
4077*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
4078*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4079*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4080*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_HashSequenceStart(
4081*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4082*4f2df630SAndroid Build Coastguard Worker       TPMI_DH_OBJECT* sequence_handle,
4083*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4084*4f2df630SAndroid Build Coastguard Worker   virtual void HashSequenceStart(const TPM2B_AUTH& auth,
4085*4f2df630SAndroid Build Coastguard Worker                                  const TPMI_ALG_HASH& hash_alg,
4086*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate,
4087*4f2df630SAndroid Build Coastguard Worker                                  HashSequenceStartResponse callback);
4088*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC HashSequenceStartSync(
4089*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& auth,
4090*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
4091*4f2df630SAndroid Build Coastguard Worker       TPMI_DH_OBJECT* sequence_handle,
4092*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4093*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> SequenceUpdateResponse;
4094*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_SequenceUpdate(
4095*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4096*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4097*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4098*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4099*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4100*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_SequenceUpdate(
4101*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4102*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4103*4f2df630SAndroid Build Coastguard Worker   virtual void SequenceUpdate(const TPMI_DH_OBJECT& sequence_handle,
4104*4f2df630SAndroid Build Coastguard Worker                               const std::string& sequence_handle_name,
4105*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_MAX_BUFFER& buffer,
4106*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
4107*4f2df630SAndroid Build Coastguard Worker                               SequenceUpdateResponse callback);
4108*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SequenceUpdateSync(
4109*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4110*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4111*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4112*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4113*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4114*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& result,
4115*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_HASHCHECK& validation)>
4116*4f2df630SAndroid Build Coastguard Worker       SequenceCompleteResponse;
4117*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_SequenceComplete(
4118*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4119*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4120*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4121*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& hierarchy,
4122*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4123*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4124*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_SequenceComplete(
4125*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4126*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* result,
4127*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_HASHCHECK* validation,
4128*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4129*4f2df630SAndroid Build Coastguard Worker   virtual void SequenceComplete(const TPMI_DH_OBJECT& sequence_handle,
4130*4f2df630SAndroid Build Coastguard Worker                                 const std::string& sequence_handle_name,
4131*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_MAX_BUFFER& buffer,
4132*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_RH_HIERARCHY& hierarchy,
4133*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
4134*4f2df630SAndroid Build Coastguard Worker                                 SequenceCompleteResponse callback);
4135*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SequenceCompleteSync(
4136*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4137*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4138*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4139*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& hierarchy,
4140*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* result,
4141*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_HASHCHECK* validation,
4142*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4143*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4144*4f2df630SAndroid Build Coastguard Worker                                   const TPML_DIGEST_VALUES& results)>
4145*4f2df630SAndroid Build Coastguard Worker       EventSequenceCompleteResponse;
4146*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_EventSequenceComplete(
4147*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4148*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4149*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4150*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4151*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4152*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4153*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4154*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_EventSequenceComplete(
4155*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4156*4f2df630SAndroid Build Coastguard Worker       TPML_DIGEST_VALUES* results,
4157*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4158*4f2df630SAndroid Build Coastguard Worker   virtual void EventSequenceComplete(
4159*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4160*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4161*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4162*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4163*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4164*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
4165*4f2df630SAndroid Build Coastguard Worker       EventSequenceCompleteResponse callback);
4166*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC EventSequenceCompleteSync(
4167*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4168*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4169*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sequence_handle,
4170*4f2df630SAndroid Build Coastguard Worker       const std::string& sequence_handle_name,
4171*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& buffer,
4172*4f2df630SAndroid Build Coastguard Worker       TPML_DIGEST_VALUES* results,
4173*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4174*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4175*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& certify_info,
4176*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4177*4f2df630SAndroid Build Coastguard Worker       CertifyResponse;
4178*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Certify(
4179*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
4180*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
4181*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4182*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4183*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4184*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4185*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4186*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4187*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Certify(
4188*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4189*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* certify_info,
4190*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4191*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4192*4f2df630SAndroid Build Coastguard Worker   virtual void Certify(const TPMI_DH_OBJECT& object_handle,
4193*4f2df630SAndroid Build Coastguard Worker                        const std::string& object_handle_name,
4194*4f2df630SAndroid Build Coastguard Worker                        const TPMI_DH_OBJECT& sign_handle,
4195*4f2df630SAndroid Build Coastguard Worker                        const std::string& sign_handle_name,
4196*4f2df630SAndroid Build Coastguard Worker                        const TPM2B_DATA& qualifying_data,
4197*4f2df630SAndroid Build Coastguard Worker                        const TPMT_SIG_SCHEME& in_scheme,
4198*4f2df630SAndroid Build Coastguard Worker                        AuthorizationDelegate* authorization_delegate,
4199*4f2df630SAndroid Build Coastguard Worker                        CertifyResponse callback);
4200*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC CertifySync(const TPMI_DH_OBJECT& object_handle,
4201*4f2df630SAndroid Build Coastguard Worker                              const std::string& object_handle_name,
4202*4f2df630SAndroid Build Coastguard Worker                              const TPMI_DH_OBJECT& sign_handle,
4203*4f2df630SAndroid Build Coastguard Worker                              const std::string& sign_handle_name,
4204*4f2df630SAndroid Build Coastguard Worker                              const TPM2B_DATA& qualifying_data,
4205*4f2df630SAndroid Build Coastguard Worker                              const TPMT_SIG_SCHEME& in_scheme,
4206*4f2df630SAndroid Build Coastguard Worker                              TPM2B_ATTEST* certify_info,
4207*4f2df630SAndroid Build Coastguard Worker                              TPMT_SIGNATURE* signature,
4208*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate);
4209*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4210*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& certify_info,
4211*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4212*4f2df630SAndroid Build Coastguard Worker       CertifyCreationResponse;
4213*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_CertifyCreation(
4214*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4215*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4216*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
4217*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
4218*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4219*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& creation_hash,
4220*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4221*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_CREATION& creation_ticket,
4222*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4223*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4224*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_CertifyCreation(
4225*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4226*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* certify_info,
4227*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4228*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4229*4f2df630SAndroid Build Coastguard Worker   virtual void CertifyCreation(const TPMI_DH_OBJECT& sign_handle,
4230*4f2df630SAndroid Build Coastguard Worker                                const std::string& sign_handle_name,
4231*4f2df630SAndroid Build Coastguard Worker                                const TPMI_DH_OBJECT& object_handle,
4232*4f2df630SAndroid Build Coastguard Worker                                const std::string& object_handle_name,
4233*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_DATA& qualifying_data,
4234*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_DIGEST& creation_hash,
4235*4f2df630SAndroid Build Coastguard Worker                                const TPMT_SIG_SCHEME& in_scheme,
4236*4f2df630SAndroid Build Coastguard Worker                                const TPMT_TK_CREATION& creation_ticket,
4237*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
4238*4f2df630SAndroid Build Coastguard Worker                                CertifyCreationResponse callback);
4239*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC CertifyCreationSync(
4240*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4241*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4242*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
4243*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
4244*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4245*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& creation_hash,
4246*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4247*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_CREATION& creation_ticket,
4248*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* certify_info,
4249*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4250*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4251*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4252*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& quoted,
4253*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4254*4f2df630SAndroid Build Coastguard Worker       QuoteResponse;
4255*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Quote(
4256*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4257*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4258*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4259*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4260*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& pcrselect,
4261*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4262*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4263*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Quote(
4264*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4265*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* quoted,
4266*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4267*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4268*4f2df630SAndroid Build Coastguard Worker   virtual void Quote(const TPMI_DH_OBJECT& sign_handle,
4269*4f2df630SAndroid Build Coastguard Worker                      const std::string& sign_handle_name,
4270*4f2df630SAndroid Build Coastguard Worker                      const TPM2B_DATA& qualifying_data,
4271*4f2df630SAndroid Build Coastguard Worker                      const TPMT_SIG_SCHEME& in_scheme,
4272*4f2df630SAndroid Build Coastguard Worker                      const TPML_PCR_SELECTION& pcrselect,
4273*4f2df630SAndroid Build Coastguard Worker                      AuthorizationDelegate* authorization_delegate,
4274*4f2df630SAndroid Build Coastguard Worker                      QuoteResponse callback);
4275*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC QuoteSync(const TPMI_DH_OBJECT& sign_handle,
4276*4f2df630SAndroid Build Coastguard Worker                            const std::string& sign_handle_name,
4277*4f2df630SAndroid Build Coastguard Worker                            const TPM2B_DATA& qualifying_data,
4278*4f2df630SAndroid Build Coastguard Worker                            const TPMT_SIG_SCHEME& in_scheme,
4279*4f2df630SAndroid Build Coastguard Worker                            const TPML_PCR_SELECTION& pcrselect,
4280*4f2df630SAndroid Build Coastguard Worker                            TPM2B_ATTEST* quoted,
4281*4f2df630SAndroid Build Coastguard Worker                            TPMT_SIGNATURE* signature,
4282*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate);
4283*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4284*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& audit_info,
4285*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4286*4f2df630SAndroid Build Coastguard Worker       GetSessionAuditDigestResponse;
4287*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_GetSessionAuditDigest(
4288*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
4289*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_admin_handle_name,
4290*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4291*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4292*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_HMAC& session_handle,
4293*4f2df630SAndroid Build Coastguard Worker       const std::string& session_handle_name,
4294*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4295*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4296*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4297*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4298*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_GetSessionAuditDigest(
4299*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4300*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* audit_info,
4301*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4302*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4303*4f2df630SAndroid Build Coastguard Worker   virtual void GetSessionAuditDigest(
4304*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
4305*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_admin_handle_name,
4306*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4307*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4308*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_HMAC& session_handle,
4309*4f2df630SAndroid Build Coastguard Worker       const std::string& session_handle_name,
4310*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4311*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4312*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
4313*4f2df630SAndroid Build Coastguard Worker       GetSessionAuditDigestResponse callback);
4314*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC GetSessionAuditDigestSync(
4315*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
4316*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_admin_handle_name,
4317*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4318*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4319*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_HMAC& session_handle,
4320*4f2df630SAndroid Build Coastguard Worker       const std::string& session_handle_name,
4321*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4322*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4323*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* audit_info,
4324*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4325*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4326*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4327*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& audit_info,
4328*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4329*4f2df630SAndroid Build Coastguard Worker       GetCommandAuditDigestResponse;
4330*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_GetCommandAuditDigest(
4331*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_handle,
4332*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_handle_name,
4333*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4334*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4335*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4336*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4337*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4338*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4339*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_GetCommandAuditDigest(
4340*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4341*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* audit_info,
4342*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4343*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4344*4f2df630SAndroid Build Coastguard Worker   virtual void GetCommandAuditDigest(
4345*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_handle,
4346*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_handle_name,
4347*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4348*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4349*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4350*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4351*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
4352*4f2df630SAndroid Build Coastguard Worker       GetCommandAuditDigestResponse callback);
4353*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC GetCommandAuditDigestSync(
4354*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_handle,
4355*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_handle_name,
4356*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4357*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4358*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4359*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4360*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* audit_info,
4361*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4362*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4363*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4364*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& time_info,
4365*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4366*4f2df630SAndroid Build Coastguard Worker       GetTimeResponse;
4367*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_GetTime(
4368*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
4369*4f2df630SAndroid Build Coastguard Worker       const std::string& privacy_admin_handle_name,
4370*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4371*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4372*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
4373*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4374*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4375*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4376*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_GetTime(
4377*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4378*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* time_info,
4379*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4380*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4381*4f2df630SAndroid Build Coastguard Worker   virtual void GetTime(const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
4382*4f2df630SAndroid Build Coastguard Worker                        const std::string& privacy_admin_handle_name,
4383*4f2df630SAndroid Build Coastguard Worker                        const TPMI_DH_OBJECT& sign_handle,
4384*4f2df630SAndroid Build Coastguard Worker                        const std::string& sign_handle_name,
4385*4f2df630SAndroid Build Coastguard Worker                        const TPM2B_DATA& qualifying_data,
4386*4f2df630SAndroid Build Coastguard Worker                        const TPMT_SIG_SCHEME& in_scheme,
4387*4f2df630SAndroid Build Coastguard Worker                        AuthorizationDelegate* authorization_delegate,
4388*4f2df630SAndroid Build Coastguard Worker                        GetTimeResponse callback);
4389*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC GetTimeSync(const TPMI_RH_ENDORSEMENT& privacy_admin_handle,
4390*4f2df630SAndroid Build Coastguard Worker                              const std::string& privacy_admin_handle_name,
4391*4f2df630SAndroid Build Coastguard Worker                              const TPMI_DH_OBJECT& sign_handle,
4392*4f2df630SAndroid Build Coastguard Worker                              const std::string& sign_handle_name,
4393*4f2df630SAndroid Build Coastguard Worker                              const TPM2B_DATA& qualifying_data,
4394*4f2df630SAndroid Build Coastguard Worker                              const TPMT_SIG_SCHEME& in_scheme,
4395*4f2df630SAndroid Build Coastguard Worker                              TPM2B_ATTEST* time_info,
4396*4f2df630SAndroid Build Coastguard Worker                              TPMT_SIGNATURE* signature,
4397*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate);
4398*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4399*4f2df630SAndroid Build Coastguard Worker                                   const UINT32& param_size_out,
4400*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& k,
4401*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& l,
4402*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& e,
4403*4f2df630SAndroid Build Coastguard Worker                                   const UINT16& counter)>
4404*4f2df630SAndroid Build Coastguard Worker       CommitResponse;
4405*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Commit(
4406*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
4407*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
4408*4f2df630SAndroid Build Coastguard Worker       const UINT32& param_size,
4409*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ECC_POINT& p1,
4410*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE_DATA& s2,
4411*4f2df630SAndroid Build Coastguard Worker       const TPM2B_ECC_PARAMETER& y2,
4412*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4413*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4414*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Commit(
4415*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4416*4f2df630SAndroid Build Coastguard Worker       UINT32* param_size_out,
4417*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* k,
4418*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* l,
4419*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* e,
4420*4f2df630SAndroid Build Coastguard Worker       UINT16* counter,
4421*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4422*4f2df630SAndroid Build Coastguard Worker   virtual void Commit(const TPMI_DH_OBJECT& sign_handle,
4423*4f2df630SAndroid Build Coastguard Worker                       const std::string& sign_handle_name,
4424*4f2df630SAndroid Build Coastguard Worker                       const UINT32& param_size,
4425*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_ECC_POINT& p1,
4426*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_SENSITIVE_DATA& s2,
4427*4f2df630SAndroid Build Coastguard Worker                       const TPM2B_ECC_PARAMETER& y2,
4428*4f2df630SAndroid Build Coastguard Worker                       AuthorizationDelegate* authorization_delegate,
4429*4f2df630SAndroid Build Coastguard Worker                       CommitResponse callback);
4430*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC CommitSync(const TPMI_DH_OBJECT& sign_handle,
4431*4f2df630SAndroid Build Coastguard Worker                             const std::string& sign_handle_name,
4432*4f2df630SAndroid Build Coastguard Worker                             const UINT32& param_size,
4433*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_ECC_POINT& p1,
4434*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_SENSITIVE_DATA& s2,
4435*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_ECC_PARAMETER& y2,
4436*4f2df630SAndroid Build Coastguard Worker                             UINT32* param_size_out,
4437*4f2df630SAndroid Build Coastguard Worker                             TPM2B_ECC_POINT* k,
4438*4f2df630SAndroid Build Coastguard Worker                             TPM2B_ECC_POINT* l,
4439*4f2df630SAndroid Build Coastguard Worker                             TPM2B_ECC_POINT* e,
4440*4f2df630SAndroid Build Coastguard Worker                             UINT16* counter,
4441*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate);
4442*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4443*4f2df630SAndroid Build Coastguard Worker                                   const UINT32& param_size_out,
4444*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ECC_POINT& q,
4445*4f2df630SAndroid Build Coastguard Worker                                   const UINT16& counter)>
4446*4f2df630SAndroid Build Coastguard Worker       EC_EphemeralResponse;
4447*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_EC_Ephemeral(
4448*4f2df630SAndroid Build Coastguard Worker       const UINT32& param_size,
4449*4f2df630SAndroid Build Coastguard Worker       const TPMI_ECC_CURVE& curve_id,
4450*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4451*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4452*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_EC_Ephemeral(
4453*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4454*4f2df630SAndroid Build Coastguard Worker       UINT32* param_size_out,
4455*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* q,
4456*4f2df630SAndroid Build Coastguard Worker       UINT16* counter,
4457*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4458*4f2df630SAndroid Build Coastguard Worker   virtual void EC_Ephemeral(const UINT32& param_size,
4459*4f2df630SAndroid Build Coastguard Worker                             const TPMI_ECC_CURVE& curve_id,
4460*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
4461*4f2df630SAndroid Build Coastguard Worker                             EC_EphemeralResponse callback);
4462*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC EC_EphemeralSync(
4463*4f2df630SAndroid Build Coastguard Worker       const UINT32& param_size,
4464*4f2df630SAndroid Build Coastguard Worker       const TPMI_ECC_CURVE& curve_id,
4465*4f2df630SAndroid Build Coastguard Worker       UINT32* param_size_out,
4466*4f2df630SAndroid Build Coastguard Worker       TPM2B_ECC_POINT* q,
4467*4f2df630SAndroid Build Coastguard Worker       UINT16* counter,
4468*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4469*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4470*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_VERIFIED& validation)>
4471*4f2df630SAndroid Build Coastguard Worker       VerifySignatureResponse;
4472*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_VerifySignature(
4473*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
4474*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
4475*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& digest,
4476*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& signature,
4477*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4478*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4479*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_VerifySignature(
4480*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4481*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_VERIFIED* validation,
4482*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4483*4f2df630SAndroid Build Coastguard Worker   virtual void VerifySignature(const TPMI_DH_OBJECT& key_handle,
4484*4f2df630SAndroid Build Coastguard Worker                                const std::string& key_handle_name,
4485*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_DIGEST& digest,
4486*4f2df630SAndroid Build Coastguard Worker                                const TPMT_SIGNATURE& signature,
4487*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
4488*4f2df630SAndroid Build Coastguard Worker                                VerifySignatureResponse callback);
4489*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC VerifySignatureSync(
4490*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
4491*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
4492*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& digest,
4493*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& signature,
4494*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_VERIFIED* validation,
4495*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4496*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4497*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
4498*4f2df630SAndroid Build Coastguard Worker       SignResponse;
4499*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Sign(
4500*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
4501*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
4502*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& digest,
4503*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
4504*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_HASHCHECK& validation,
4505*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4506*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4507*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Sign(
4508*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4509*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
4510*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4511*4f2df630SAndroid Build Coastguard Worker   virtual void Sign(const TPMI_DH_OBJECT& key_handle,
4512*4f2df630SAndroid Build Coastguard Worker                     const std::string& key_handle_name,
4513*4f2df630SAndroid Build Coastguard Worker                     const TPM2B_DIGEST& digest,
4514*4f2df630SAndroid Build Coastguard Worker                     const TPMT_SIG_SCHEME& in_scheme,
4515*4f2df630SAndroid Build Coastguard Worker                     const TPMT_TK_HASHCHECK& validation,
4516*4f2df630SAndroid Build Coastguard Worker                     AuthorizationDelegate* authorization_delegate,
4517*4f2df630SAndroid Build Coastguard Worker                     SignResponse callback);
4518*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SignSync(const TPMI_DH_OBJECT& key_handle,
4519*4f2df630SAndroid Build Coastguard Worker                           const std::string& key_handle_name,
4520*4f2df630SAndroid Build Coastguard Worker                           const TPM2B_DIGEST& digest,
4521*4f2df630SAndroid Build Coastguard Worker                           const TPMT_SIG_SCHEME& in_scheme,
4522*4f2df630SAndroid Build Coastguard Worker                           const TPMT_TK_HASHCHECK& validation,
4523*4f2df630SAndroid Build Coastguard Worker                           TPMT_SIGNATURE* signature,
4524*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate);
4525*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
4526*4f2df630SAndroid Build Coastguard Worker       SetCommandCodeAuditStatusResponse;
4527*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_SetCommandCodeAuditStatus(
4528*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
4529*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
4530*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& audit_alg,
4531*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& set_list,
4532*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& clear_list,
4533*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4534*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4535*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_SetCommandCodeAuditStatus(
4536*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4537*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4538*4f2df630SAndroid Build Coastguard Worker   virtual void SetCommandCodeAuditStatus(
4539*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
4540*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
4541*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& audit_alg,
4542*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& set_list,
4543*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& clear_list,
4544*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
4545*4f2df630SAndroid Build Coastguard Worker       SetCommandCodeAuditStatusResponse callback);
4546*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SetCommandCodeAuditStatusSync(
4547*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
4548*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
4549*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& audit_alg,
4550*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& set_list,
4551*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& clear_list,
4552*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4553*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PCR_ExtendResponse;
4554*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_Extend(
4555*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4556*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4557*4f2df630SAndroid Build Coastguard Worker       const TPML_DIGEST_VALUES& digests,
4558*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4559*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4560*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_Extend(
4561*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4562*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4563*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_Extend(const TPMI_DH_PCR& pcr_handle,
4564*4f2df630SAndroid Build Coastguard Worker                           const std::string& pcr_handle_name,
4565*4f2df630SAndroid Build Coastguard Worker                           const TPML_DIGEST_VALUES& digests,
4566*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate,
4567*4f2df630SAndroid Build Coastguard Worker                           PCR_ExtendResponse callback);
4568*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_ExtendSync(const TPMI_DH_PCR& pcr_handle,
4569*4f2df630SAndroid Build Coastguard Worker                                 const std::string& pcr_handle_name,
4570*4f2df630SAndroid Build Coastguard Worker                                 const TPML_DIGEST_VALUES& digests,
4571*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate);
4572*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4573*4f2df630SAndroid Build Coastguard Worker                                   const TPML_DIGEST_VALUES& digests)>
4574*4f2df630SAndroid Build Coastguard Worker       PCR_EventResponse;
4575*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_Event(
4576*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4577*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4578*4f2df630SAndroid Build Coastguard Worker       const TPM2B_EVENT& event_data,
4579*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4580*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4581*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_Event(
4582*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4583*4f2df630SAndroid Build Coastguard Worker       TPML_DIGEST_VALUES* digests,
4584*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4585*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_Event(const TPMI_DH_PCR& pcr_handle,
4586*4f2df630SAndroid Build Coastguard Worker                          const std::string& pcr_handle_name,
4587*4f2df630SAndroid Build Coastguard Worker                          const TPM2B_EVENT& event_data,
4588*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
4589*4f2df630SAndroid Build Coastguard Worker                          PCR_EventResponse callback);
4590*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_EventSync(const TPMI_DH_PCR& pcr_handle,
4591*4f2df630SAndroid Build Coastguard Worker                                const std::string& pcr_handle_name,
4592*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_EVENT& event_data,
4593*4f2df630SAndroid Build Coastguard Worker                                TPML_DIGEST_VALUES* digests,
4594*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
4595*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4596*4f2df630SAndroid Build Coastguard Worker                                   const UINT32& pcr_update_counter,
4597*4f2df630SAndroid Build Coastguard Worker                                   const TPML_PCR_SELECTION& pcr_selection_out,
4598*4f2df630SAndroid Build Coastguard Worker                                   const TPML_DIGEST& pcr_values)>
4599*4f2df630SAndroid Build Coastguard Worker       PCR_ReadResponse;
4600*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_Read(
4601*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& pcr_selection_in,
4602*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4603*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4604*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_Read(
4605*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4606*4f2df630SAndroid Build Coastguard Worker       UINT32* pcr_update_counter,
4607*4f2df630SAndroid Build Coastguard Worker       TPML_PCR_SELECTION* pcr_selection_out,
4608*4f2df630SAndroid Build Coastguard Worker       TPML_DIGEST* pcr_values,
4609*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4610*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_Read(const TPML_PCR_SELECTION& pcr_selection_in,
4611*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
4612*4f2df630SAndroid Build Coastguard Worker                         PCR_ReadResponse callback);
4613*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_ReadSync(const TPML_PCR_SELECTION& pcr_selection_in,
4614*4f2df630SAndroid Build Coastguard Worker                               UINT32* pcr_update_counter,
4615*4f2df630SAndroid Build Coastguard Worker                               TPML_PCR_SELECTION* pcr_selection_out,
4616*4f2df630SAndroid Build Coastguard Worker                               TPML_DIGEST* pcr_values,
4617*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
4618*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4619*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_YES_NO& allocation_success,
4620*4f2df630SAndroid Build Coastguard Worker                                   const UINT32& max_pcr,
4621*4f2df630SAndroid Build Coastguard Worker                                   const UINT32& size_needed,
4622*4f2df630SAndroid Build Coastguard Worker                                   const UINT32& size_available)>
4623*4f2df630SAndroid Build Coastguard Worker       PCR_AllocateResponse;
4624*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_Allocate(
4625*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
4626*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4627*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& pcr_allocation,
4628*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4629*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4630*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_Allocate(
4631*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4632*4f2df630SAndroid Build Coastguard Worker       TPMI_YES_NO* allocation_success,
4633*4f2df630SAndroid Build Coastguard Worker       UINT32* max_pcr,
4634*4f2df630SAndroid Build Coastguard Worker       UINT32* size_needed,
4635*4f2df630SAndroid Build Coastguard Worker       UINT32* size_available,
4636*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4637*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_Allocate(const TPMI_RH_PLATFORM& auth_handle,
4638*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_handle_name,
4639*4f2df630SAndroid Build Coastguard Worker                             const TPML_PCR_SELECTION& pcr_allocation,
4640*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
4641*4f2df630SAndroid Build Coastguard Worker                             PCR_AllocateResponse callback);
4642*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_AllocateSync(
4643*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
4644*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4645*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& pcr_allocation,
4646*4f2df630SAndroid Build Coastguard Worker       TPMI_YES_NO* allocation_success,
4647*4f2df630SAndroid Build Coastguard Worker       UINT32* max_pcr,
4648*4f2df630SAndroid Build Coastguard Worker       UINT32* size_needed,
4649*4f2df630SAndroid Build Coastguard Worker       UINT32* size_available,
4650*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4651*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
4652*4f2df630SAndroid Build Coastguard Worker       PCR_SetAuthPolicyResponse;
4653*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_SetAuthPolicy(
4654*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
4655*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4656*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_num,
4657*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_num_name,
4658*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& auth_policy,
4659*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& policy_digest,
4660*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4661*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4662*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_SetAuthPolicy(
4663*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4664*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4665*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_SetAuthPolicy(const TPMI_RH_PLATFORM& auth_handle,
4666*4f2df630SAndroid Build Coastguard Worker                                  const std::string& auth_handle_name,
4667*4f2df630SAndroid Build Coastguard Worker                                  const TPMI_DH_PCR& pcr_num,
4668*4f2df630SAndroid Build Coastguard Worker                                  const std::string& pcr_num_name,
4669*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_DIGEST& auth_policy,
4670*4f2df630SAndroid Build Coastguard Worker                                  const TPMI_ALG_HASH& policy_digest,
4671*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate,
4672*4f2df630SAndroid Build Coastguard Worker                                  PCR_SetAuthPolicyResponse callback);
4673*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_SetAuthPolicySync(
4674*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
4675*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4676*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_num,
4677*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_num_name,
4678*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& auth_policy,
4679*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& policy_digest,
4680*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4681*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
4682*4f2df630SAndroid Build Coastguard Worker       PCR_SetAuthValueResponse;
4683*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_SetAuthValue(
4684*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4685*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4686*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& auth,
4687*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4688*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4689*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_SetAuthValue(
4690*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4691*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4692*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_SetAuthValue(const TPMI_DH_PCR& pcr_handle,
4693*4f2df630SAndroid Build Coastguard Worker                                 const std::string& pcr_handle_name,
4694*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_DIGEST& auth,
4695*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
4696*4f2df630SAndroid Build Coastguard Worker                                 PCR_SetAuthValueResponse callback);
4697*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_SetAuthValueSync(
4698*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4699*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4700*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& auth,
4701*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4702*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PCR_ResetResponse;
4703*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PCR_Reset(
4704*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PCR& pcr_handle,
4705*4f2df630SAndroid Build Coastguard Worker       const std::string& pcr_handle_name,
4706*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4707*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4708*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PCR_Reset(
4709*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4710*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4711*4f2df630SAndroid Build Coastguard Worker   virtual void PCR_Reset(const TPMI_DH_PCR& pcr_handle,
4712*4f2df630SAndroid Build Coastguard Worker                          const std::string& pcr_handle_name,
4713*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
4714*4f2df630SAndroid Build Coastguard Worker                          PCR_ResetResponse callback);
4715*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PCR_ResetSync(const TPMI_DH_PCR& pcr_handle,
4716*4f2df630SAndroid Build Coastguard Worker                                const std::string& pcr_handle_name,
4717*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
4718*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4719*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_TIMEOUT& timeout,
4720*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_AUTH& policy_ticket)>
4721*4f2df630SAndroid Build Coastguard Worker       PolicySignedResponse;
4722*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicySigned(
4723*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& auth_object,
4724*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_object_name,
4725*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4726*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4727*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& nonce_tpm,
4728*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
4729*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
4730*4f2df630SAndroid Build Coastguard Worker       const INT32& expiration,
4731*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& auth,
4732*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4733*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4734*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicySigned(
4735*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4736*4f2df630SAndroid Build Coastguard Worker       TPM2B_TIMEOUT* timeout,
4737*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_AUTH* policy_ticket,
4738*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4739*4f2df630SAndroid Build Coastguard Worker   virtual void PolicySigned(const TPMI_DH_OBJECT& auth_object,
4740*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_object_name,
4741*4f2df630SAndroid Build Coastguard Worker                             const TPMI_SH_POLICY& policy_session,
4742*4f2df630SAndroid Build Coastguard Worker                             const std::string& policy_session_name,
4743*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NONCE& nonce_tpm,
4744*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_DIGEST& cp_hash_a,
4745*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NONCE& policy_ref,
4746*4f2df630SAndroid Build Coastguard Worker                             const INT32& expiration,
4747*4f2df630SAndroid Build Coastguard Worker                             const TPMT_SIGNATURE& auth,
4748*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
4749*4f2df630SAndroid Build Coastguard Worker                             PolicySignedResponse callback);
4750*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicySignedSync(
4751*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& auth_object,
4752*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_object_name,
4753*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4754*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4755*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& nonce_tpm,
4756*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
4757*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
4758*4f2df630SAndroid Build Coastguard Worker       const INT32& expiration,
4759*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& auth,
4760*4f2df630SAndroid Build Coastguard Worker       TPM2B_TIMEOUT* timeout,
4761*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_AUTH* policy_ticket,
4762*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4763*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
4764*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_TIMEOUT& timeout,
4765*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_AUTH& policy_ticket)>
4766*4f2df630SAndroid Build Coastguard Worker       PolicySecretResponse;
4767*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicySecret(
4768*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_ENTITY& auth_handle,
4769*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4770*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4771*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4772*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& nonce_tpm,
4773*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
4774*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
4775*4f2df630SAndroid Build Coastguard Worker       const INT32& expiration,
4776*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4777*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4778*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicySecret(
4779*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4780*4f2df630SAndroid Build Coastguard Worker       TPM2B_TIMEOUT* timeout,
4781*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_AUTH* policy_ticket,
4782*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4783*4f2df630SAndroid Build Coastguard Worker   virtual void PolicySecret(const TPMI_DH_ENTITY& auth_handle,
4784*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_handle_name,
4785*4f2df630SAndroid Build Coastguard Worker                             const TPMI_SH_POLICY& policy_session,
4786*4f2df630SAndroid Build Coastguard Worker                             const std::string& policy_session_name,
4787*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NONCE& nonce_tpm,
4788*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_DIGEST& cp_hash_a,
4789*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NONCE& policy_ref,
4790*4f2df630SAndroid Build Coastguard Worker                             const INT32& expiration,
4791*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
4792*4f2df630SAndroid Build Coastguard Worker                             PolicySecretResponse callback);
4793*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicySecretSync(
4794*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_ENTITY& auth_handle,
4795*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4796*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4797*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4798*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& nonce_tpm,
4799*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
4800*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
4801*4f2df630SAndroid Build Coastguard Worker       const INT32& expiration,
4802*4f2df630SAndroid Build Coastguard Worker       TPM2B_TIMEOUT* timeout,
4803*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_AUTH* policy_ticket,
4804*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4805*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyTicketResponse;
4806*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyTicket(
4807*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4808*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4809*4f2df630SAndroid Build Coastguard Worker       const TPM2B_TIMEOUT& timeout,
4810*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
4811*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
4812*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& auth_name,
4813*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_AUTH& ticket,
4814*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4815*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4816*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyTicket(
4817*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4818*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4819*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyTicket(const TPMI_SH_POLICY& policy_session,
4820*4f2df630SAndroid Build Coastguard Worker                             const std::string& policy_session_name,
4821*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_TIMEOUT& timeout,
4822*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_DIGEST& cp_hash_a,
4823*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NONCE& policy_ref,
4824*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_NAME& auth_name,
4825*4f2df630SAndroid Build Coastguard Worker                             const TPMT_TK_AUTH& ticket,
4826*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
4827*4f2df630SAndroid Build Coastguard Worker                             PolicyTicketResponse callback);
4828*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyTicketSync(
4829*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4830*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4831*4f2df630SAndroid Build Coastguard Worker       const TPM2B_TIMEOUT& timeout,
4832*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
4833*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
4834*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& auth_name,
4835*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_AUTH& ticket,
4836*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4837*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyORResponse;
4838*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyOR(
4839*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4840*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4841*4f2df630SAndroid Build Coastguard Worker       const TPML_DIGEST& p_hash_list,
4842*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4843*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4844*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyOR(
4845*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4846*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4847*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyOR(const TPMI_SH_POLICY& policy_session,
4848*4f2df630SAndroid Build Coastguard Worker                         const std::string& policy_session_name,
4849*4f2df630SAndroid Build Coastguard Worker                         const TPML_DIGEST& p_hash_list,
4850*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
4851*4f2df630SAndroid Build Coastguard Worker                         PolicyORResponse callback);
4852*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyORSync(const TPMI_SH_POLICY& policy_session,
4853*4f2df630SAndroid Build Coastguard Worker                               const std::string& policy_session_name,
4854*4f2df630SAndroid Build Coastguard Worker                               const TPML_DIGEST& p_hash_list,
4855*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
4856*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyPCRResponse;
4857*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyPCR(
4858*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4859*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4860*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& pcr_digest,
4861*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& pcrs,
4862*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4863*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4864*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyPCR(
4865*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4866*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4867*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyPCR(const TPMI_SH_POLICY& policy_session,
4868*4f2df630SAndroid Build Coastguard Worker                          const std::string& policy_session_name,
4869*4f2df630SAndroid Build Coastguard Worker                          const TPM2B_DIGEST& pcr_digest,
4870*4f2df630SAndroid Build Coastguard Worker                          const TPML_PCR_SELECTION& pcrs,
4871*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
4872*4f2df630SAndroid Build Coastguard Worker                          PolicyPCRResponse callback);
4873*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyPCRSync(const TPMI_SH_POLICY& policy_session,
4874*4f2df630SAndroid Build Coastguard Worker                                const std::string& policy_session_name,
4875*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_DIGEST& pcr_digest,
4876*4f2df630SAndroid Build Coastguard Worker                                const TPML_PCR_SELECTION& pcrs,
4877*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
4878*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyLocalityResponse;
4879*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyLocality(
4880*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4881*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4882*4f2df630SAndroid Build Coastguard Worker       const TPMA_LOCALITY& locality,
4883*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4884*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4885*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyLocality(
4886*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4887*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4888*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyLocality(const TPMI_SH_POLICY& policy_session,
4889*4f2df630SAndroid Build Coastguard Worker                               const std::string& policy_session_name,
4890*4f2df630SAndroid Build Coastguard Worker                               const TPMA_LOCALITY& locality,
4891*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
4892*4f2df630SAndroid Build Coastguard Worker                               PolicyLocalityResponse callback);
4893*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyLocalitySync(
4894*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4895*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4896*4f2df630SAndroid Build Coastguard Worker       const TPMA_LOCALITY& locality,
4897*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4898*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyNVResponse;
4899*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyNV(
4900*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
4901*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
4902*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
4903*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
4904*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4905*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4906*4f2df630SAndroid Build Coastguard Worker       const TPM2B_OPERAND& operand_b,
4907*4f2df630SAndroid Build Coastguard Worker       const UINT16& offset,
4908*4f2df630SAndroid Build Coastguard Worker       const TPM_EO& operation,
4909*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4910*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4911*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyNV(
4912*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4913*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4914*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyNV(const TPMI_RH_NV_AUTH& auth_handle,
4915*4f2df630SAndroid Build Coastguard Worker                         const std::string& auth_handle_name,
4916*4f2df630SAndroid Build Coastguard Worker                         const TPMI_RH_NV_INDEX& nv_index,
4917*4f2df630SAndroid Build Coastguard Worker                         const std::string& nv_index_name,
4918*4f2df630SAndroid Build Coastguard Worker                         const TPMI_SH_POLICY& policy_session,
4919*4f2df630SAndroid Build Coastguard Worker                         const std::string& policy_session_name,
4920*4f2df630SAndroid Build Coastguard Worker                         const TPM2B_OPERAND& operand_b,
4921*4f2df630SAndroid Build Coastguard Worker                         const UINT16& offset,
4922*4f2df630SAndroid Build Coastguard Worker                         const TPM_EO& operation,
4923*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
4924*4f2df630SAndroid Build Coastguard Worker                         PolicyNVResponse callback);
4925*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyNVSync(const TPMI_RH_NV_AUTH& auth_handle,
4926*4f2df630SAndroid Build Coastguard Worker                               const std::string& auth_handle_name,
4927*4f2df630SAndroid Build Coastguard Worker                               const TPMI_RH_NV_INDEX& nv_index,
4928*4f2df630SAndroid Build Coastguard Worker                               const std::string& nv_index_name,
4929*4f2df630SAndroid Build Coastguard Worker                               const TPMI_SH_POLICY& policy_session,
4930*4f2df630SAndroid Build Coastguard Worker                               const std::string& policy_session_name,
4931*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_OPERAND& operand_b,
4932*4f2df630SAndroid Build Coastguard Worker                               const UINT16& offset,
4933*4f2df630SAndroid Build Coastguard Worker                               const TPM_EO& operation,
4934*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
4935*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
4936*4f2df630SAndroid Build Coastguard Worker       PolicyCounterTimerResponse;
4937*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyCounterTimer(
4938*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4939*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4940*4f2df630SAndroid Build Coastguard Worker       const TPM2B_OPERAND& operand_b,
4941*4f2df630SAndroid Build Coastguard Worker       const UINT16& offset,
4942*4f2df630SAndroid Build Coastguard Worker       const TPM_EO& operation,
4943*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4944*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4945*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyCounterTimer(
4946*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4947*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4948*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyCounterTimer(const TPMI_SH_POLICY& policy_session,
4949*4f2df630SAndroid Build Coastguard Worker                                   const std::string& policy_session_name,
4950*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_OPERAND& operand_b,
4951*4f2df630SAndroid Build Coastguard Worker                                   const UINT16& offset,
4952*4f2df630SAndroid Build Coastguard Worker                                   const TPM_EO& operation,
4953*4f2df630SAndroid Build Coastguard Worker                                   AuthorizationDelegate* authorization_delegate,
4954*4f2df630SAndroid Build Coastguard Worker                                   PolicyCounterTimerResponse callback);
4955*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyCounterTimerSync(
4956*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4957*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4958*4f2df630SAndroid Build Coastguard Worker       const TPM2B_OPERAND& operand_b,
4959*4f2df630SAndroid Build Coastguard Worker       const UINT16& offset,
4960*4f2df630SAndroid Build Coastguard Worker       const TPM_EO& operation,
4961*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4962*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
4963*4f2df630SAndroid Build Coastguard Worker       PolicyCommandCodeResponse;
4964*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyCommandCode(
4965*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4966*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4967*4f2df630SAndroid Build Coastguard Worker       const TPM_CC& code,
4968*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4969*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4970*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyCommandCode(
4971*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4972*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4973*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyCommandCode(const TPMI_SH_POLICY& policy_session,
4974*4f2df630SAndroid Build Coastguard Worker                                  const std::string& policy_session_name,
4975*4f2df630SAndroid Build Coastguard Worker                                  const TPM_CC& code,
4976*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate,
4977*4f2df630SAndroid Build Coastguard Worker                                  PolicyCommandCodeResponse callback);
4978*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyCommandCodeSync(
4979*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4980*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4981*4f2df630SAndroid Build Coastguard Worker       const TPM_CC& code,
4982*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4983*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
4984*4f2df630SAndroid Build Coastguard Worker       PolicyPhysicalPresenceResponse;
4985*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyPhysicalPresence(
4986*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4987*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4988*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
4989*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4990*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyPhysicalPresence(
4991*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
4992*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
4993*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyPhysicalPresence(
4994*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
4995*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
4996*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
4997*4f2df630SAndroid Build Coastguard Worker       PolicyPhysicalPresenceResponse callback);
4998*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyPhysicalPresenceSync(
4999*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5000*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5001*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5002*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyCpHashResponse;
5003*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyCpHash(
5004*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5005*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5006*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
5007*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5008*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5009*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyCpHash(
5010*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5011*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5012*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyCpHash(const TPMI_SH_POLICY& policy_session,
5013*4f2df630SAndroid Build Coastguard Worker                             const std::string& policy_session_name,
5014*4f2df630SAndroid Build Coastguard Worker                             const TPM2B_DIGEST& cp_hash_a,
5015*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5016*4f2df630SAndroid Build Coastguard Worker                             PolicyCpHashResponse callback);
5017*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyCpHashSync(
5018*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5019*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5020*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& cp_hash_a,
5021*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5022*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyNameHashResponse;
5023*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyNameHash(
5024*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5025*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5026*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& name_hash,
5027*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5028*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5029*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyNameHash(
5030*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5031*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5032*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyNameHash(const TPMI_SH_POLICY& policy_session,
5033*4f2df630SAndroid Build Coastguard Worker                               const std::string& policy_session_name,
5034*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_DIGEST& name_hash,
5035*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
5036*4f2df630SAndroid Build Coastguard Worker                               PolicyNameHashResponse callback);
5037*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyNameHashSync(
5038*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5039*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5040*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& name_hash,
5041*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5042*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5043*4f2df630SAndroid Build Coastguard Worker       PolicyDuplicationSelectResponse;
5044*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyDuplicationSelect(
5045*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5046*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5047*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& object_name,
5048*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& new_parent_name,
5049*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& include_object,
5050*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5051*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5052*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyDuplicationSelect(
5053*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5054*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5055*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyDuplicationSelect(
5056*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5057*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5058*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& object_name,
5059*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& new_parent_name,
5060*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& include_object,
5061*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
5062*4f2df630SAndroid Build Coastguard Worker       PolicyDuplicationSelectResponse callback);
5063*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyDuplicationSelectSync(
5064*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5065*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5066*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& object_name,
5067*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& new_parent_name,
5068*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& include_object,
5069*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5070*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5071*4f2df630SAndroid Build Coastguard Worker       PolicyAuthorizeResponse;
5072*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyAuthorize(
5073*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5074*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5075*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& approved_policy,
5076*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
5077*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& key_sign,
5078*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_VERIFIED& check_ticket,
5079*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5080*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5081*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyAuthorize(
5082*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5083*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5084*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyAuthorize(const TPMI_SH_POLICY& policy_session,
5085*4f2df630SAndroid Build Coastguard Worker                                const std::string& policy_session_name,
5086*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_DIGEST& approved_policy,
5087*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_NONCE& policy_ref,
5088*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_NAME& key_sign,
5089*4f2df630SAndroid Build Coastguard Worker                                const TPMT_TK_VERIFIED& check_ticket,
5090*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
5091*4f2df630SAndroid Build Coastguard Worker                                PolicyAuthorizeResponse callback);
5092*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyAuthorizeSync(
5093*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5094*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5095*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& approved_policy,
5096*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NONCE& policy_ref,
5097*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NAME& key_sign,
5098*4f2df630SAndroid Build Coastguard Worker       const TPMT_TK_VERIFIED& check_ticket,
5099*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5100*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5101*4f2df630SAndroid Build Coastguard Worker       PolicyAuthValueResponse;
5102*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyAuthValue(
5103*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5104*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5105*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5106*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5107*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyAuthValue(
5108*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5109*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5110*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyAuthValue(const TPMI_SH_POLICY& policy_session,
5111*4f2df630SAndroid Build Coastguard Worker                                const std::string& policy_session_name,
5112*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
5113*4f2df630SAndroid Build Coastguard Worker                                PolicyAuthValueResponse callback);
5114*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyAuthValueSync(
5115*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5116*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5117*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5118*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PolicyPasswordResponse;
5119*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyPassword(
5120*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5121*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5122*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5123*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5124*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyPassword(
5125*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5126*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5127*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyPassword(const TPMI_SH_POLICY& policy_session,
5128*4f2df630SAndroid Build Coastguard Worker                               const std::string& policy_session_name,
5129*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
5130*4f2df630SAndroid Build Coastguard Worker                               PolicyPasswordResponse callback);
5131*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyPasswordSync(
5132*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5133*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5134*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5135*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5136*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& policy_digest)>
5137*4f2df630SAndroid Build Coastguard Worker       PolicyGetDigestResponse;
5138*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyGetDigest(
5139*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5140*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5141*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5142*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5143*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyGetDigest(
5144*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5145*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* policy_digest,
5146*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5147*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyGetDigest(const TPMI_SH_POLICY& policy_session,
5148*4f2df630SAndroid Build Coastguard Worker                                const std::string& policy_session_name,
5149*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
5150*4f2df630SAndroid Build Coastguard Worker                                PolicyGetDigestResponse callback);
5151*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyGetDigestSync(
5152*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5153*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5154*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* policy_digest,
5155*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5156*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5157*4f2df630SAndroid Build Coastguard Worker       PolicyNvWrittenResponse;
5158*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyNvWritten(
5159*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5160*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5161*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& written_set,
5162*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5163*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5164*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyNvWritten(
5165*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5166*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5167*4f2df630SAndroid Build Coastguard Worker   virtual void PolicyNvWritten(const TPMI_SH_POLICY& policy_session,
5168*4f2df630SAndroid Build Coastguard Worker                                const std::string& policy_session_name,
5169*4f2df630SAndroid Build Coastguard Worker                                const TPMI_YES_NO& written_set,
5170*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
5171*4f2df630SAndroid Build Coastguard Worker                                PolicyNvWrittenResponse callback);
5172*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PolicyNvWrittenSync(
5173*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
5174*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
5175*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& written_set,
5176*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5177*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5178*4f2df630SAndroid Build Coastguard Worker                                   const TPM_HANDLE& object_handle,
5179*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_PUBLIC& out_public,
5180*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_CREATION_DATA& creation_data,
5181*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_DIGEST& creation_hash,
5182*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_TK_CREATION& creation_ticket,
5183*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NAME& name)>
5184*4f2df630SAndroid Build Coastguard Worker       CreatePrimaryResponse;
5185*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_CreatePrimary(
5186*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& primary_handle,
5187*4f2df630SAndroid Build Coastguard Worker       const std::string& primary_handle_name,
5188*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE_CREATE& in_sensitive,
5189*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& in_public,
5190*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& outside_info,
5191*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& creation_pcr,
5192*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5193*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5194*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_CreatePrimary(
5195*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5196*4f2df630SAndroid Build Coastguard Worker       TPM_HANDLE* object_handle,
5197*4f2df630SAndroid Build Coastguard Worker       TPM2B_PUBLIC* out_public,
5198*4f2df630SAndroid Build Coastguard Worker       TPM2B_CREATION_DATA* creation_data,
5199*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* creation_hash,
5200*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_CREATION* creation_ticket,
5201*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* name,
5202*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5203*4f2df630SAndroid Build Coastguard Worker   virtual void CreatePrimary(const TPMI_RH_HIERARCHY& primary_handle,
5204*4f2df630SAndroid Build Coastguard Worker                              const std::string& primary_handle_name,
5205*4f2df630SAndroid Build Coastguard Worker                              const TPM2B_SENSITIVE_CREATE& in_sensitive,
5206*4f2df630SAndroid Build Coastguard Worker                              const TPM2B_PUBLIC& in_public,
5207*4f2df630SAndroid Build Coastguard Worker                              const TPM2B_DATA& outside_info,
5208*4f2df630SAndroid Build Coastguard Worker                              const TPML_PCR_SELECTION& creation_pcr,
5209*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate,
5210*4f2df630SAndroid Build Coastguard Worker                              CreatePrimaryResponse callback);
5211*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC CreatePrimarySync(
5212*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& primary_handle,
5213*4f2df630SAndroid Build Coastguard Worker       const std::string& primary_handle_name,
5214*4f2df630SAndroid Build Coastguard Worker       const TPM2B_SENSITIVE_CREATE& in_sensitive,
5215*4f2df630SAndroid Build Coastguard Worker       const TPM2B_PUBLIC& in_public,
5216*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& outside_info,
5217*4f2df630SAndroid Build Coastguard Worker       const TPML_PCR_SELECTION& creation_pcr,
5218*4f2df630SAndroid Build Coastguard Worker       TPM_HANDLE* object_handle,
5219*4f2df630SAndroid Build Coastguard Worker       TPM2B_PUBLIC* out_public,
5220*4f2df630SAndroid Build Coastguard Worker       TPM2B_CREATION_DATA* creation_data,
5221*4f2df630SAndroid Build Coastguard Worker       TPM2B_DIGEST* creation_hash,
5222*4f2df630SAndroid Build Coastguard Worker       TPMT_TK_CREATION* creation_ticket,
5223*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* name,
5224*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5225*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5226*4f2df630SAndroid Build Coastguard Worker       HierarchyControlResponse;
5227*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_HierarchyControl(
5228*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& auth_handle,
5229*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5230*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENABLES& enable,
5231*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& state,
5232*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5233*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5234*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_HierarchyControl(
5235*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5236*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5237*4f2df630SAndroid Build Coastguard Worker   virtual void HierarchyControl(const TPMI_RH_HIERARCHY& auth_handle,
5238*4f2df630SAndroid Build Coastguard Worker                                 const std::string& auth_handle_name,
5239*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_RH_ENABLES& enable,
5240*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_YES_NO& state,
5241*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
5242*4f2df630SAndroid Build Coastguard Worker                                 HierarchyControlResponse callback);
5243*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC HierarchyControlSync(
5244*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& auth_handle,
5245*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5246*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_ENABLES& enable,
5247*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& state,
5248*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5249*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5250*4f2df630SAndroid Build Coastguard Worker       SetPrimaryPolicyResponse;
5251*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_SetPrimaryPolicy(
5252*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& auth_handle,
5253*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5254*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& auth_policy,
5255*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
5256*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5257*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5258*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_SetPrimaryPolicy(
5259*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5260*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5261*4f2df630SAndroid Build Coastguard Worker   virtual void SetPrimaryPolicy(const TPMI_RH_HIERARCHY& auth_handle,
5262*4f2df630SAndroid Build Coastguard Worker                                 const std::string& auth_handle_name,
5263*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_DIGEST& auth_policy,
5264*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_ALG_HASH& hash_alg,
5265*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
5266*4f2df630SAndroid Build Coastguard Worker                                 SetPrimaryPolicyResponse callback);
5267*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SetPrimaryPolicySync(
5268*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY& auth_handle,
5269*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5270*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& auth_policy,
5271*4f2df630SAndroid Build Coastguard Worker       const TPMI_ALG_HASH& hash_alg,
5272*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5273*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> ChangePPSResponse;
5274*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ChangePPS(
5275*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
5276*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5277*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5278*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5279*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ChangePPS(
5280*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5281*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5282*4f2df630SAndroid Build Coastguard Worker   virtual void ChangePPS(const TPMI_RH_PLATFORM& auth_handle,
5283*4f2df630SAndroid Build Coastguard Worker                          const std::string& auth_handle_name,
5284*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
5285*4f2df630SAndroid Build Coastguard Worker                          ChangePPSResponse callback);
5286*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ChangePPSSync(const TPMI_RH_PLATFORM& auth_handle,
5287*4f2df630SAndroid Build Coastguard Worker                                const std::string& auth_handle_name,
5288*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
5289*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> ChangeEPSResponse;
5290*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ChangeEPS(
5291*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
5292*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5293*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5294*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5295*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ChangeEPS(
5296*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5297*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5298*4f2df630SAndroid Build Coastguard Worker   virtual void ChangeEPS(const TPMI_RH_PLATFORM& auth_handle,
5299*4f2df630SAndroid Build Coastguard Worker                          const std::string& auth_handle_name,
5300*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
5301*4f2df630SAndroid Build Coastguard Worker                          ChangeEPSResponse callback);
5302*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ChangeEPSSync(const TPMI_RH_PLATFORM& auth_handle,
5303*4f2df630SAndroid Build Coastguard Worker                                const std::string& auth_handle_name,
5304*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
5305*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> ClearResponse;
5306*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_Clear(
5307*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_CLEAR& auth_handle,
5308*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5309*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5310*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5311*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_Clear(
5312*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5313*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5314*4f2df630SAndroid Build Coastguard Worker   virtual void Clear(const TPMI_RH_CLEAR& auth_handle,
5315*4f2df630SAndroid Build Coastguard Worker                      const std::string& auth_handle_name,
5316*4f2df630SAndroid Build Coastguard Worker                      AuthorizationDelegate* authorization_delegate,
5317*4f2df630SAndroid Build Coastguard Worker                      ClearResponse callback);
5318*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ClearSync(const TPMI_RH_CLEAR& auth_handle,
5319*4f2df630SAndroid Build Coastguard Worker                            const std::string& auth_handle_name,
5320*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate);
5321*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> ClearControlResponse;
5322*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ClearControl(
5323*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_CLEAR& auth,
5324*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5325*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& disable,
5326*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5327*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5328*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ClearControl(
5329*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5330*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5331*4f2df630SAndroid Build Coastguard Worker   virtual void ClearControl(const TPMI_RH_CLEAR& auth,
5332*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_name,
5333*4f2df630SAndroid Build Coastguard Worker                             const TPMI_YES_NO& disable,
5334*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5335*4f2df630SAndroid Build Coastguard Worker                             ClearControlResponse callback);
5336*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ClearControlSync(
5337*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_CLEAR& auth,
5338*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5339*4f2df630SAndroid Build Coastguard Worker       const TPMI_YES_NO& disable,
5340*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5341*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5342*4f2df630SAndroid Build Coastguard Worker       HierarchyChangeAuthResponse;
5343*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_HierarchyChangeAuth(
5344*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY_AUTH& auth_handle,
5345*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5346*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
5347*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5348*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5349*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_HierarchyChangeAuth(
5350*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5351*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5352*4f2df630SAndroid Build Coastguard Worker   virtual void HierarchyChangeAuth(
5353*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY_AUTH& auth_handle,
5354*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5355*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
5356*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
5357*4f2df630SAndroid Build Coastguard Worker       HierarchyChangeAuthResponse callback);
5358*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC HierarchyChangeAuthSync(
5359*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_HIERARCHY_AUTH& auth_handle,
5360*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5361*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
5362*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5363*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5364*4f2df630SAndroid Build Coastguard Worker       DictionaryAttackLockResetResponse;
5365*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_DictionaryAttackLockReset(
5366*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_LOCKOUT& lock_handle,
5367*4f2df630SAndroid Build Coastguard Worker       const std::string& lock_handle_name,
5368*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5369*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5370*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_DictionaryAttackLockReset(
5371*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5372*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5373*4f2df630SAndroid Build Coastguard Worker   virtual void DictionaryAttackLockReset(
5374*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_LOCKOUT& lock_handle,
5375*4f2df630SAndroid Build Coastguard Worker       const std::string& lock_handle_name,
5376*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
5377*4f2df630SAndroid Build Coastguard Worker       DictionaryAttackLockResetResponse callback);
5378*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC DictionaryAttackLockResetSync(
5379*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_LOCKOUT& lock_handle,
5380*4f2df630SAndroid Build Coastguard Worker       const std::string& lock_handle_name,
5381*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5382*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5383*4f2df630SAndroid Build Coastguard Worker       DictionaryAttackParametersResponse;
5384*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_DictionaryAttackParameters(
5385*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_LOCKOUT& lock_handle,
5386*4f2df630SAndroid Build Coastguard Worker       const std::string& lock_handle_name,
5387*4f2df630SAndroid Build Coastguard Worker       const UINT32& new_max_tries,
5388*4f2df630SAndroid Build Coastguard Worker       const UINT32& new_recovery_time,
5389*4f2df630SAndroid Build Coastguard Worker       const UINT32& lockout_recovery,
5390*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5391*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5392*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_DictionaryAttackParameters(
5393*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5394*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5395*4f2df630SAndroid Build Coastguard Worker   virtual void DictionaryAttackParameters(
5396*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_LOCKOUT& lock_handle,
5397*4f2df630SAndroid Build Coastguard Worker       const std::string& lock_handle_name,
5398*4f2df630SAndroid Build Coastguard Worker       const UINT32& new_max_tries,
5399*4f2df630SAndroid Build Coastguard Worker       const UINT32& new_recovery_time,
5400*4f2df630SAndroid Build Coastguard Worker       const UINT32& lockout_recovery,
5401*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
5402*4f2df630SAndroid Build Coastguard Worker       DictionaryAttackParametersResponse callback);
5403*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC DictionaryAttackParametersSync(
5404*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_LOCKOUT& lock_handle,
5405*4f2df630SAndroid Build Coastguard Worker       const std::string& lock_handle_name,
5406*4f2df630SAndroid Build Coastguard Worker       const UINT32& new_max_tries,
5407*4f2df630SAndroid Build Coastguard Worker       const UINT32& new_recovery_time,
5408*4f2df630SAndroid Build Coastguard Worker       const UINT32& lockout_recovery,
5409*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5410*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> PP_CommandsResponse;
5411*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PP_Commands(
5412*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth,
5413*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5414*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& set_list,
5415*4f2df630SAndroid Build Coastguard Worker       const TPML_CC& clear_list,
5416*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5417*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5418*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PP_Commands(
5419*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5420*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5421*4f2df630SAndroid Build Coastguard Worker   virtual void PP_Commands(const TPMI_RH_PLATFORM& auth,
5422*4f2df630SAndroid Build Coastguard Worker                            const std::string& auth_name,
5423*4f2df630SAndroid Build Coastguard Worker                            const TPML_CC& set_list,
5424*4f2df630SAndroid Build Coastguard Worker                            const TPML_CC& clear_list,
5425*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
5426*4f2df630SAndroid Build Coastguard Worker                            PP_CommandsResponse callback);
5427*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC PP_CommandsSync(const TPMI_RH_PLATFORM& auth,
5428*4f2df630SAndroid Build Coastguard Worker                                  const std::string& auth_name,
5429*4f2df630SAndroid Build Coastguard Worker                                  const TPML_CC& set_list,
5430*4f2df630SAndroid Build Coastguard Worker                                  const TPML_CC& clear_list,
5431*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
5432*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5433*4f2df630SAndroid Build Coastguard Worker       SetAlgorithmSetResponse;
5434*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_SetAlgorithmSet(
5435*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
5436*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5437*4f2df630SAndroid Build Coastguard Worker       const UINT32& algorithm_set,
5438*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5439*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5440*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_SetAlgorithmSet(
5441*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5442*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5443*4f2df630SAndroid Build Coastguard Worker   virtual void SetAlgorithmSet(const TPMI_RH_PLATFORM& auth_handle,
5444*4f2df630SAndroid Build Coastguard Worker                                const std::string& auth_handle_name,
5445*4f2df630SAndroid Build Coastguard Worker                                const UINT32& algorithm_set,
5446*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
5447*4f2df630SAndroid Build Coastguard Worker                                SetAlgorithmSetResponse callback);
5448*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC SetAlgorithmSetSync(
5449*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& auth_handle,
5450*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5451*4f2df630SAndroid Build Coastguard Worker       const UINT32& algorithm_set,
5452*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5453*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5454*4f2df630SAndroid Build Coastguard Worker       FieldUpgradeStartResponse;
5455*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_FieldUpgradeStart(
5456*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& authorization,
5457*4f2df630SAndroid Build Coastguard Worker       const std::string& authorization_name,
5458*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
5459*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
5460*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& fu_digest,
5461*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& manifest_signature,
5462*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5463*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5464*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_FieldUpgradeStart(
5465*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5466*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5467*4f2df630SAndroid Build Coastguard Worker   virtual void FieldUpgradeStart(const TPMI_RH_PLATFORM& authorization,
5468*4f2df630SAndroid Build Coastguard Worker                                  const std::string& authorization_name,
5469*4f2df630SAndroid Build Coastguard Worker                                  const TPMI_DH_OBJECT& key_handle,
5470*4f2df630SAndroid Build Coastguard Worker                                  const std::string& key_handle_name,
5471*4f2df630SAndroid Build Coastguard Worker                                  const TPM2B_DIGEST& fu_digest,
5472*4f2df630SAndroid Build Coastguard Worker                                  const TPMT_SIGNATURE& manifest_signature,
5473*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate,
5474*4f2df630SAndroid Build Coastguard Worker                                  FieldUpgradeStartResponse callback);
5475*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC FieldUpgradeStartSync(
5476*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& authorization,
5477*4f2df630SAndroid Build Coastguard Worker       const std::string& authorization_name,
5478*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& key_handle,
5479*4f2df630SAndroid Build Coastguard Worker       const std::string& key_handle_name,
5480*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DIGEST& fu_digest,
5481*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& manifest_signature,
5482*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5483*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5484*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_HA& next_digest,
5485*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_HA& first_digest)>
5486*4f2df630SAndroid Build Coastguard Worker       FieldUpgradeDataResponse;
5487*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_FieldUpgradeData(
5488*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& fu_data,
5489*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5490*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5491*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_FieldUpgradeData(
5492*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5493*4f2df630SAndroid Build Coastguard Worker       TPMT_HA* next_digest,
5494*4f2df630SAndroid Build Coastguard Worker       TPMT_HA* first_digest,
5495*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5496*4f2df630SAndroid Build Coastguard Worker   virtual void FieldUpgradeData(const TPM2B_MAX_BUFFER& fu_data,
5497*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
5498*4f2df630SAndroid Build Coastguard Worker                                 FieldUpgradeDataResponse callback);
5499*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC FieldUpgradeDataSync(
5500*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_BUFFER& fu_data,
5501*4f2df630SAndroid Build Coastguard Worker       TPMT_HA* next_digest,
5502*4f2df630SAndroid Build Coastguard Worker       TPMT_HA* first_digest,
5503*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5504*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5505*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_MAX_BUFFER& fu_data)>
5506*4f2df630SAndroid Build Coastguard Worker       FirmwareReadResponse;
5507*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_FirmwareRead(
5508*4f2df630SAndroid Build Coastguard Worker       const UINT32& sequence_number,
5509*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5510*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5511*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_FirmwareRead(
5512*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5513*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_BUFFER* fu_data,
5514*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5515*4f2df630SAndroid Build Coastguard Worker   virtual void FirmwareRead(const UINT32& sequence_number,
5516*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5517*4f2df630SAndroid Build Coastguard Worker                             FirmwareReadResponse callback);
5518*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC FirmwareReadSync(
5519*4f2df630SAndroid Build Coastguard Worker       const UINT32& sequence_number,
5520*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_BUFFER* fu_data,
5521*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5522*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5523*4f2df630SAndroid Build Coastguard Worker                                   const TPMS_CONTEXT& context)>
5524*4f2df630SAndroid Build Coastguard Worker       ContextSaveResponse;
5525*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ContextSave(
5526*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_CONTEXT& save_handle,
5527*4f2df630SAndroid Build Coastguard Worker       const std::string& save_handle_name,
5528*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5529*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5530*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ContextSave(
5531*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5532*4f2df630SAndroid Build Coastguard Worker       TPMS_CONTEXT* context,
5533*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5534*4f2df630SAndroid Build Coastguard Worker   virtual void ContextSave(const TPMI_DH_CONTEXT& save_handle,
5535*4f2df630SAndroid Build Coastguard Worker                            const std::string& save_handle_name,
5536*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
5537*4f2df630SAndroid Build Coastguard Worker                            ContextSaveResponse callback);
5538*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ContextSaveSync(const TPMI_DH_CONTEXT& save_handle,
5539*4f2df630SAndroid Build Coastguard Worker                                  const std::string& save_handle_name,
5540*4f2df630SAndroid Build Coastguard Worker                                  TPMS_CONTEXT* context,
5541*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
5542*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5543*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_DH_CONTEXT& loaded_handle)>
5544*4f2df630SAndroid Build Coastguard Worker       ContextLoadResponse;
5545*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ContextLoad(
5546*4f2df630SAndroid Build Coastguard Worker       const TPMS_CONTEXT& context,
5547*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5548*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5549*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ContextLoad(
5550*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5551*4f2df630SAndroid Build Coastguard Worker       TPMI_DH_CONTEXT* loaded_handle,
5552*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5553*4f2df630SAndroid Build Coastguard Worker   virtual void ContextLoad(const TPMS_CONTEXT& context,
5554*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
5555*4f2df630SAndroid Build Coastguard Worker                            ContextLoadResponse callback);
5556*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ContextLoadSync(const TPMS_CONTEXT& context,
5557*4f2df630SAndroid Build Coastguard Worker                                  TPMI_DH_CONTEXT* loaded_handle,
5558*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
5559*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> FlushContextResponse;
5560*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_FlushContext(
5561*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_CONTEXT& flush_handle,
5562*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5563*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5564*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_FlushContext(
5565*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5566*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5567*4f2df630SAndroid Build Coastguard Worker   virtual void FlushContext(const TPMI_DH_CONTEXT& flush_handle,
5568*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5569*4f2df630SAndroid Build Coastguard Worker                             FlushContextResponse callback);
5570*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC FlushContextSync(
5571*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_CONTEXT& flush_handle,
5572*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5573*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> EvictControlResponse;
5574*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_EvictControl(
5575*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
5576*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5577*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
5578*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
5579*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PERSISTENT& persistent_handle,
5580*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5581*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5582*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_EvictControl(
5583*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5584*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5585*4f2df630SAndroid Build Coastguard Worker   virtual void EvictControl(const TPMI_RH_PROVISION& auth,
5586*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_name,
5587*4f2df630SAndroid Build Coastguard Worker                             const TPMI_DH_OBJECT& object_handle,
5588*4f2df630SAndroid Build Coastguard Worker                             const std::string& object_handle_name,
5589*4f2df630SAndroid Build Coastguard Worker                             const TPMI_DH_PERSISTENT& persistent_handle,
5590*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5591*4f2df630SAndroid Build Coastguard Worker                             EvictControlResponse callback);
5592*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC EvictControlSync(
5593*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
5594*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5595*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& object_handle,
5596*4f2df630SAndroid Build Coastguard Worker       const std::string& object_handle_name,
5597*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_PERSISTENT& persistent_handle,
5598*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5599*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5600*4f2df630SAndroid Build Coastguard Worker                                   const TPMS_TIME_INFO& current_time)>
5601*4f2df630SAndroid Build Coastguard Worker       ReadClockResponse;
5602*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ReadClock(
5603*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5604*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5605*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ReadClock(
5606*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5607*4f2df630SAndroid Build Coastguard Worker       TPMS_TIME_INFO* current_time,
5608*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5609*4f2df630SAndroid Build Coastguard Worker   virtual void ReadClock(AuthorizationDelegate* authorization_delegate,
5610*4f2df630SAndroid Build Coastguard Worker                          ReadClockResponse callback);
5611*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ReadClockSync(TPMS_TIME_INFO* current_time,
5612*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
5613*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> ClockSetResponse;
5614*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ClockSet(
5615*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
5616*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5617*4f2df630SAndroid Build Coastguard Worker       const UINT64& new_time,
5618*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5619*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5620*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ClockSet(
5621*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5622*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5623*4f2df630SAndroid Build Coastguard Worker   virtual void ClockSet(const TPMI_RH_PROVISION& auth,
5624*4f2df630SAndroid Build Coastguard Worker                         const std::string& auth_name,
5625*4f2df630SAndroid Build Coastguard Worker                         const UINT64& new_time,
5626*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
5627*4f2df630SAndroid Build Coastguard Worker                         ClockSetResponse callback);
5628*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ClockSetSync(const TPMI_RH_PROVISION& auth,
5629*4f2df630SAndroid Build Coastguard Worker                               const std::string& auth_name,
5630*4f2df630SAndroid Build Coastguard Worker                               const UINT64& new_time,
5631*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
5632*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5633*4f2df630SAndroid Build Coastguard Worker       ClockRateAdjustResponse;
5634*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_ClockRateAdjust(
5635*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
5636*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5637*4f2df630SAndroid Build Coastguard Worker       const TPM_CLOCK_ADJUST& rate_adjust,
5638*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5639*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5640*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_ClockRateAdjust(
5641*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5642*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5643*4f2df630SAndroid Build Coastguard Worker   virtual void ClockRateAdjust(const TPMI_RH_PROVISION& auth,
5644*4f2df630SAndroid Build Coastguard Worker                                const std::string& auth_name,
5645*4f2df630SAndroid Build Coastguard Worker                                const TPM_CLOCK_ADJUST& rate_adjust,
5646*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate,
5647*4f2df630SAndroid Build Coastguard Worker                                ClockRateAdjustResponse callback);
5648*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC ClockRateAdjustSync(
5649*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth,
5650*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_name,
5651*4f2df630SAndroid Build Coastguard Worker       const TPM_CLOCK_ADJUST& rate_adjust,
5652*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5653*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5654*4f2df630SAndroid Build Coastguard Worker                                   const TPMI_YES_NO& more_data,
5655*4f2df630SAndroid Build Coastguard Worker                                   const TPMS_CAPABILITY_DATA& capability_data)>
5656*4f2df630SAndroid Build Coastguard Worker       GetCapabilityResponse;
5657*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_GetCapability(
5658*4f2df630SAndroid Build Coastguard Worker       const TPM_CAP& capability,
5659*4f2df630SAndroid Build Coastguard Worker       const UINT32& property,
5660*4f2df630SAndroid Build Coastguard Worker       const UINT32& property_count,
5661*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5662*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5663*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_GetCapability(
5664*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5665*4f2df630SAndroid Build Coastguard Worker       TPMI_YES_NO* more_data,
5666*4f2df630SAndroid Build Coastguard Worker       TPMS_CAPABILITY_DATA* capability_data,
5667*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5668*4f2df630SAndroid Build Coastguard Worker   virtual void GetCapability(const TPM_CAP& capability,
5669*4f2df630SAndroid Build Coastguard Worker                              const UINT32& property,
5670*4f2df630SAndroid Build Coastguard Worker                              const UINT32& property_count,
5671*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate,
5672*4f2df630SAndroid Build Coastguard Worker                              GetCapabilityResponse callback);
5673*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC GetCapabilitySync(
5674*4f2df630SAndroid Build Coastguard Worker       const TPM_CAP& capability,
5675*4f2df630SAndroid Build Coastguard Worker       const UINT32& property,
5676*4f2df630SAndroid Build Coastguard Worker       const UINT32& property_count,
5677*4f2df630SAndroid Build Coastguard Worker       TPMI_YES_NO* more_data,
5678*4f2df630SAndroid Build Coastguard Worker       TPMS_CAPABILITY_DATA* capability_data,
5679*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5680*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> TestParmsResponse;
5681*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_TestParms(
5682*4f2df630SAndroid Build Coastguard Worker       const TPMT_PUBLIC_PARMS& parameters,
5683*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5684*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5685*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_TestParms(
5686*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5687*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5688*4f2df630SAndroid Build Coastguard Worker   virtual void TestParms(const TPMT_PUBLIC_PARMS& parameters,
5689*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
5690*4f2df630SAndroid Build Coastguard Worker                          TestParmsResponse callback);
5691*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC TestParmsSync(const TPMT_PUBLIC_PARMS& parameters,
5692*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
5693*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_DefineSpaceResponse;
5694*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_DefineSpace(
5695*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth_handle,
5696*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5697*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& auth,
5698*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NV_PUBLIC& public_info,
5699*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5700*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5701*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_DefineSpace(
5702*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5703*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5704*4f2df630SAndroid Build Coastguard Worker   virtual void NV_DefineSpace(const TPMI_RH_PROVISION& auth_handle,
5705*4f2df630SAndroid Build Coastguard Worker                               const std::string& auth_handle_name,
5706*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_AUTH& auth,
5707*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_NV_PUBLIC& public_info,
5708*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate,
5709*4f2df630SAndroid Build Coastguard Worker                               NV_DefineSpaceResponse callback);
5710*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_DefineSpaceSync(
5711*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth_handle,
5712*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5713*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& auth,
5714*4f2df630SAndroid Build Coastguard Worker       const TPM2B_NV_PUBLIC& public_info,
5715*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5716*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5717*4f2df630SAndroid Build Coastguard Worker       NV_UndefineSpaceResponse;
5718*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_UndefineSpace(
5719*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth_handle,
5720*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5721*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5722*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5723*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5724*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5725*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_UndefineSpace(
5726*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5727*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5728*4f2df630SAndroid Build Coastguard Worker   virtual void NV_UndefineSpace(const TPMI_RH_PROVISION& auth_handle,
5729*4f2df630SAndroid Build Coastguard Worker                                 const std::string& auth_handle_name,
5730*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_RH_NV_INDEX& nv_index,
5731*4f2df630SAndroid Build Coastguard Worker                                 const std::string& nv_index_name,
5732*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate,
5733*4f2df630SAndroid Build Coastguard Worker                                 NV_UndefineSpaceResponse callback);
5734*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_UndefineSpaceSync(
5735*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth_handle,
5736*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5737*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5738*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5739*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5740*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5741*4f2df630SAndroid Build Coastguard Worker       NV_UndefineSpaceSpecialResponse;
5742*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_UndefineSpaceSpecial(
5743*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5744*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5745*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& platform,
5746*4f2df630SAndroid Build Coastguard Worker       const std::string& platform_name,
5747*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5748*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5749*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_UndefineSpaceSpecial(
5750*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5751*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5752*4f2df630SAndroid Build Coastguard Worker   virtual void NV_UndefineSpaceSpecial(
5753*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5754*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5755*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& platform,
5756*4f2df630SAndroid Build Coastguard Worker       const std::string& platform_name,
5757*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate,
5758*4f2df630SAndroid Build Coastguard Worker       NV_UndefineSpaceSpecialResponse callback);
5759*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_UndefineSpaceSpecialSync(
5760*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5761*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5762*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PLATFORM& platform,
5763*4f2df630SAndroid Build Coastguard Worker       const std::string& platform_name,
5764*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5765*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5766*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NV_PUBLIC& nv_public,
5767*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_NAME& nv_name)>
5768*4f2df630SAndroid Build Coastguard Worker       NV_ReadPublicResponse;
5769*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_ReadPublic(
5770*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5771*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5772*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5773*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5774*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_ReadPublic(
5775*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5776*4f2df630SAndroid Build Coastguard Worker       TPM2B_NV_PUBLIC* nv_public,
5777*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* nv_name,
5778*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5779*4f2df630SAndroid Build Coastguard Worker   virtual void NV_ReadPublic(const TPMI_RH_NV_INDEX& nv_index,
5780*4f2df630SAndroid Build Coastguard Worker                              const std::string& nv_index_name,
5781*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate,
5782*4f2df630SAndroid Build Coastguard Worker                              NV_ReadPublicResponse callback);
5783*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_ReadPublicSync(
5784*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5785*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5786*4f2df630SAndroid Build Coastguard Worker       TPM2B_NV_PUBLIC* nv_public,
5787*4f2df630SAndroid Build Coastguard Worker       TPM2B_NAME* nv_name,
5788*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5789*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_WriteResponse;
5790*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_Write(
5791*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5792*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5793*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5794*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5795*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_NV_BUFFER& data,
5796*4f2df630SAndroid Build Coastguard Worker       const UINT16& offset,
5797*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5798*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5799*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_Write(
5800*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5801*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5802*4f2df630SAndroid Build Coastguard Worker   virtual void NV_Write(const TPMI_RH_NV_AUTH& auth_handle,
5803*4f2df630SAndroid Build Coastguard Worker                         const std::string& auth_handle_name,
5804*4f2df630SAndroid Build Coastguard Worker                         const TPMI_RH_NV_INDEX& nv_index,
5805*4f2df630SAndroid Build Coastguard Worker                         const std::string& nv_index_name,
5806*4f2df630SAndroid Build Coastguard Worker                         const TPM2B_MAX_NV_BUFFER& data,
5807*4f2df630SAndroid Build Coastguard Worker                         const UINT16& offset,
5808*4f2df630SAndroid Build Coastguard Worker                         AuthorizationDelegate* authorization_delegate,
5809*4f2df630SAndroid Build Coastguard Worker                         NV_WriteResponse callback);
5810*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_WriteSync(const TPMI_RH_NV_AUTH& auth_handle,
5811*4f2df630SAndroid Build Coastguard Worker                               const std::string& auth_handle_name,
5812*4f2df630SAndroid Build Coastguard Worker                               const TPMI_RH_NV_INDEX& nv_index,
5813*4f2df630SAndroid Build Coastguard Worker                               const std::string& nv_index_name,
5814*4f2df630SAndroid Build Coastguard Worker                               const TPM2B_MAX_NV_BUFFER& data,
5815*4f2df630SAndroid Build Coastguard Worker                               const UINT16& offset,
5816*4f2df630SAndroid Build Coastguard Worker                               AuthorizationDelegate* authorization_delegate);
5817*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_IncrementResponse;
5818*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_Increment(
5819*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5820*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5821*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5822*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5823*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5824*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5825*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_Increment(
5826*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5827*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5828*4f2df630SAndroid Build Coastguard Worker   virtual void NV_Increment(const TPMI_RH_NV_AUTH& auth_handle,
5829*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_handle_name,
5830*4f2df630SAndroid Build Coastguard Worker                             const TPMI_RH_NV_INDEX& nv_index,
5831*4f2df630SAndroid Build Coastguard Worker                             const std::string& nv_index_name,
5832*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5833*4f2df630SAndroid Build Coastguard Worker                             NV_IncrementResponse callback);
5834*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_IncrementSync(
5835*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5836*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5837*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5838*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5839*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5840*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_ExtendResponse;
5841*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_Extend(
5842*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5843*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5844*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5845*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5846*4f2df630SAndroid Build Coastguard Worker       const TPM2B_MAX_NV_BUFFER& data,
5847*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5848*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5849*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_Extend(
5850*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5851*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5852*4f2df630SAndroid Build Coastguard Worker   virtual void NV_Extend(const TPMI_RH_NV_AUTH& auth_handle,
5853*4f2df630SAndroid Build Coastguard Worker                          const std::string& auth_handle_name,
5854*4f2df630SAndroid Build Coastguard Worker                          const TPMI_RH_NV_INDEX& nv_index,
5855*4f2df630SAndroid Build Coastguard Worker                          const std::string& nv_index_name,
5856*4f2df630SAndroid Build Coastguard Worker                          const TPM2B_MAX_NV_BUFFER& data,
5857*4f2df630SAndroid Build Coastguard Worker                          AuthorizationDelegate* authorization_delegate,
5858*4f2df630SAndroid Build Coastguard Worker                          NV_ExtendResponse callback);
5859*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_ExtendSync(const TPMI_RH_NV_AUTH& auth_handle,
5860*4f2df630SAndroid Build Coastguard Worker                                const std::string& auth_handle_name,
5861*4f2df630SAndroid Build Coastguard Worker                                const TPMI_RH_NV_INDEX& nv_index,
5862*4f2df630SAndroid Build Coastguard Worker                                const std::string& nv_index_name,
5863*4f2df630SAndroid Build Coastguard Worker                                const TPM2B_MAX_NV_BUFFER& data,
5864*4f2df630SAndroid Build Coastguard Worker                                AuthorizationDelegate* authorization_delegate);
5865*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_SetBitsResponse;
5866*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_SetBits(
5867*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5868*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5869*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5870*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5871*4f2df630SAndroid Build Coastguard Worker       const UINT64& bits,
5872*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5873*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5874*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_SetBits(
5875*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5876*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5877*4f2df630SAndroid Build Coastguard Worker   virtual void NV_SetBits(const TPMI_RH_NV_AUTH& auth_handle,
5878*4f2df630SAndroid Build Coastguard Worker                           const std::string& auth_handle_name,
5879*4f2df630SAndroid Build Coastguard Worker                           const TPMI_RH_NV_INDEX& nv_index,
5880*4f2df630SAndroid Build Coastguard Worker                           const std::string& nv_index_name,
5881*4f2df630SAndroid Build Coastguard Worker                           const UINT64& bits,
5882*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate,
5883*4f2df630SAndroid Build Coastguard Worker                           NV_SetBitsResponse callback);
5884*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_SetBitsSync(const TPMI_RH_NV_AUTH& auth_handle,
5885*4f2df630SAndroid Build Coastguard Worker                                 const std::string& auth_handle_name,
5886*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_RH_NV_INDEX& nv_index,
5887*4f2df630SAndroid Build Coastguard Worker                                 const std::string& nv_index_name,
5888*4f2df630SAndroid Build Coastguard Worker                                 const UINT64& bits,
5889*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate);
5890*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_WriteLockResponse;
5891*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_WriteLock(
5892*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5893*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5894*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5895*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5896*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5897*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5898*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_WriteLock(
5899*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5900*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5901*4f2df630SAndroid Build Coastguard Worker   virtual void NV_WriteLock(const TPMI_RH_NV_AUTH& auth_handle,
5902*4f2df630SAndroid Build Coastguard Worker                             const std::string& auth_handle_name,
5903*4f2df630SAndroid Build Coastguard Worker                             const TPMI_RH_NV_INDEX& nv_index,
5904*4f2df630SAndroid Build Coastguard Worker                             const std::string& nv_index_name,
5905*4f2df630SAndroid Build Coastguard Worker                             AuthorizationDelegate* authorization_delegate,
5906*4f2df630SAndroid Build Coastguard Worker                             NV_WriteLockResponse callback);
5907*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_WriteLockSync(
5908*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5909*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5910*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5911*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5912*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5913*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
5914*4f2df630SAndroid Build Coastguard Worker       NV_GlobalWriteLockResponse;
5915*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_GlobalWriteLock(
5916*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth_handle,
5917*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5918*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5919*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5920*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_GlobalWriteLock(
5921*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5922*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5923*4f2df630SAndroid Build Coastguard Worker   virtual void NV_GlobalWriteLock(const TPMI_RH_PROVISION& auth_handle,
5924*4f2df630SAndroid Build Coastguard Worker                                   const std::string& auth_handle_name,
5925*4f2df630SAndroid Build Coastguard Worker                                   AuthorizationDelegate* authorization_delegate,
5926*4f2df630SAndroid Build Coastguard Worker                                   NV_GlobalWriteLockResponse callback);
5927*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_GlobalWriteLockSync(
5928*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_PROVISION& auth_handle,
5929*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5930*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5931*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
5932*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_MAX_NV_BUFFER& data)>
5933*4f2df630SAndroid Build Coastguard Worker       NV_ReadResponse;
5934*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_Read(
5935*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5936*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5937*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5938*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5939*4f2df630SAndroid Build Coastguard Worker       const UINT16& size,
5940*4f2df630SAndroid Build Coastguard Worker       const UINT16& offset,
5941*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5942*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5943*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_Read(
5944*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5945*4f2df630SAndroid Build Coastguard Worker       TPM2B_MAX_NV_BUFFER* data,
5946*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5947*4f2df630SAndroid Build Coastguard Worker   virtual void NV_Read(const TPMI_RH_NV_AUTH& auth_handle,
5948*4f2df630SAndroid Build Coastguard Worker                        const std::string& auth_handle_name,
5949*4f2df630SAndroid Build Coastguard Worker                        const TPMI_RH_NV_INDEX& nv_index,
5950*4f2df630SAndroid Build Coastguard Worker                        const std::string& nv_index_name,
5951*4f2df630SAndroid Build Coastguard Worker                        const UINT16& size,
5952*4f2df630SAndroid Build Coastguard Worker                        const UINT16& offset,
5953*4f2df630SAndroid Build Coastguard Worker                        AuthorizationDelegate* authorization_delegate,
5954*4f2df630SAndroid Build Coastguard Worker                        NV_ReadResponse callback);
5955*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_ReadSync(const TPMI_RH_NV_AUTH& auth_handle,
5956*4f2df630SAndroid Build Coastguard Worker                              const std::string& auth_handle_name,
5957*4f2df630SAndroid Build Coastguard Worker                              const TPMI_RH_NV_INDEX& nv_index,
5958*4f2df630SAndroid Build Coastguard Worker                              const std::string& nv_index_name,
5959*4f2df630SAndroid Build Coastguard Worker                              const UINT16& size,
5960*4f2df630SAndroid Build Coastguard Worker                              const UINT16& offset,
5961*4f2df630SAndroid Build Coastguard Worker                              TPM2B_MAX_NV_BUFFER* data,
5962*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate);
5963*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_ReadLockResponse;
5964*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_ReadLock(
5965*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
5966*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
5967*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5968*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5969*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5970*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5971*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_ReadLock(
5972*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5973*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5974*4f2df630SAndroid Build Coastguard Worker   virtual void NV_ReadLock(const TPMI_RH_NV_AUTH& auth_handle,
5975*4f2df630SAndroid Build Coastguard Worker                            const std::string& auth_handle_name,
5976*4f2df630SAndroid Build Coastguard Worker                            const TPMI_RH_NV_INDEX& nv_index,
5977*4f2df630SAndroid Build Coastguard Worker                            const std::string& nv_index_name,
5978*4f2df630SAndroid Build Coastguard Worker                            AuthorizationDelegate* authorization_delegate,
5979*4f2df630SAndroid Build Coastguard Worker                            NV_ReadLockResponse callback);
5980*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_ReadLockSync(const TPMI_RH_NV_AUTH& auth_handle,
5981*4f2df630SAndroid Build Coastguard Worker                                  const std::string& auth_handle_name,
5982*4f2df630SAndroid Build Coastguard Worker                                  const TPMI_RH_NV_INDEX& nv_index,
5983*4f2df630SAndroid Build Coastguard Worker                                  const std::string& nv_index_name,
5984*4f2df630SAndroid Build Coastguard Worker                                  AuthorizationDelegate* authorization_delegate);
5985*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)> NV_ChangeAuthResponse;
5986*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_ChangeAuth(
5987*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
5988*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
5989*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
5990*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
5991*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5992*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_ChangeAuth(
5993*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
5994*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
5995*4f2df630SAndroid Build Coastguard Worker   virtual void NV_ChangeAuth(const TPMI_RH_NV_INDEX& nv_index,
5996*4f2df630SAndroid Build Coastguard Worker                              const std::string& nv_index_name,
5997*4f2df630SAndroid Build Coastguard Worker                              const TPM2B_AUTH& new_auth,
5998*4f2df630SAndroid Build Coastguard Worker                              AuthorizationDelegate* authorization_delegate,
5999*4f2df630SAndroid Build Coastguard Worker                              NV_ChangeAuthResponse callback);
6000*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_ChangeAuthSync(
6001*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
6002*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
6003*4f2df630SAndroid Build Coastguard Worker       const TPM2B_AUTH& new_auth,
6004*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
6005*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code,
6006*4f2df630SAndroid Build Coastguard Worker                                   const TPM2B_ATTEST& certify_info,
6007*4f2df630SAndroid Build Coastguard Worker                                   const TPMT_SIGNATURE& signature)>
6008*4f2df630SAndroid Build Coastguard Worker       NV_CertifyResponse;
6009*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_NV_Certify(
6010*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& sign_handle,
6011*4f2df630SAndroid Build Coastguard Worker       const std::string& sign_handle_name,
6012*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_AUTH& auth_handle,
6013*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_handle_name,
6014*4f2df630SAndroid Build Coastguard Worker       const TPMI_RH_NV_INDEX& nv_index,
6015*4f2df630SAndroid Build Coastguard Worker       const std::string& nv_index_name,
6016*4f2df630SAndroid Build Coastguard Worker       const TPM2B_DATA& qualifying_data,
6017*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIG_SCHEME& in_scheme,
6018*4f2df630SAndroid Build Coastguard Worker       const UINT16& size,
6019*4f2df630SAndroid Build Coastguard Worker       const UINT16& offset,
6020*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
6021*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
6022*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_NV_Certify(
6023*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
6024*4f2df630SAndroid Build Coastguard Worker       TPM2B_ATTEST* certify_info,
6025*4f2df630SAndroid Build Coastguard Worker       TPMT_SIGNATURE* signature,
6026*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
6027*4f2df630SAndroid Build Coastguard Worker   virtual void NV_Certify(const TPMI_DH_OBJECT& sign_handle,
6028*4f2df630SAndroid Build Coastguard Worker                           const std::string& sign_handle_name,
6029*4f2df630SAndroid Build Coastguard Worker                           const TPMI_RH_NV_AUTH& auth_handle,
6030*4f2df630SAndroid Build Coastguard Worker                           const std::string& auth_handle_name,
6031*4f2df630SAndroid Build Coastguard Worker                           const TPMI_RH_NV_INDEX& nv_index,
6032*4f2df630SAndroid Build Coastguard Worker                           const std::string& nv_index_name,
6033*4f2df630SAndroid Build Coastguard Worker                           const TPM2B_DATA& qualifying_data,
6034*4f2df630SAndroid Build Coastguard Worker                           const TPMT_SIG_SCHEME& in_scheme,
6035*4f2df630SAndroid Build Coastguard Worker                           const UINT16& size,
6036*4f2df630SAndroid Build Coastguard Worker                           const UINT16& offset,
6037*4f2df630SAndroid Build Coastguard Worker                           AuthorizationDelegate* authorization_delegate,
6038*4f2df630SAndroid Build Coastguard Worker                           NV_CertifyResponse callback);
6039*4f2df630SAndroid Build Coastguard Worker   virtual TPM_RC NV_CertifySync(const TPMI_DH_OBJECT& sign_handle,
6040*4f2df630SAndroid Build Coastguard Worker                                 const std::string& sign_handle_name,
6041*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_RH_NV_AUTH& auth_handle,
6042*4f2df630SAndroid Build Coastguard Worker                                 const std::string& auth_handle_name,
6043*4f2df630SAndroid Build Coastguard Worker                                 const TPMI_RH_NV_INDEX& nv_index,
6044*4f2df630SAndroid Build Coastguard Worker                                 const std::string& nv_index_name,
6045*4f2df630SAndroid Build Coastguard Worker                                 const TPM2B_DATA& qualifying_data,
6046*4f2df630SAndroid Build Coastguard Worker                                 const TPMT_SIG_SCHEME& in_scheme,
6047*4f2df630SAndroid Build Coastguard Worker                                 const UINT16& size,
6048*4f2df630SAndroid Build Coastguard Worker                                 const UINT16& offset,
6049*4f2df630SAndroid Build Coastguard Worker                                 TPM2B_ATTEST* certify_info,
6050*4f2df630SAndroid Build Coastguard Worker                                 TPMT_SIGNATURE* signature,
6051*4f2df630SAndroid Build Coastguard Worker                                 AuthorizationDelegate* authorization_delegate);
6052*4f2df630SAndroid Build Coastguard Worker 
6053*4f2df630SAndroid Build Coastguard Worker   typedef base::OnceCallback<void(TPM_RC response_code)>
6054*4f2df630SAndroid Build Coastguard Worker       PolicyFidoSignedResponse;
6055*4f2df630SAndroid Build Coastguard Worker   static TPM_RC SerializeCommand_PolicyFidoSigned(
6056*4f2df630SAndroid Build Coastguard Worker       const TPMI_DH_OBJECT& auth_object,
6057*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_object_name,
6058*4f2df630SAndroid Build Coastguard Worker       const TPMI_SH_POLICY& policy_session,
6059*4f2df630SAndroid Build Coastguard Worker       const std::string& policy_session_name,
6060*4f2df630SAndroid Build Coastguard Worker       const std::string& auth_data,
6061*4f2df630SAndroid Build Coastguard Worker       const std::vector<FIDO_DATA_RANGE>& auth_data_descr,
6062*4f2df630SAndroid Build Coastguard Worker       const TPMT_SIGNATURE& auth,
6063*4f2df630SAndroid Build Coastguard Worker       std::string* serialized_command,
6064*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
6065*4f2df630SAndroid Build Coastguard Worker   static TPM_RC ParseResponse_PolicyFidoSigned(
6066*4f2df630SAndroid Build Coastguard Worker       const std::string& response,
6067*4f2df630SAndroid Build Coastguard Worker       AuthorizationDelegate* authorization_delegate);
6068*4f2df630SAndroid Build Coastguard Worker 
6069*4f2df630SAndroid Build Coastguard Worker  private:
6070*4f2df630SAndroid Build Coastguard Worker   CommandTransceiver* transceiver_;
6071*4f2df630SAndroid Build Coastguard Worker };
6072*4f2df630SAndroid Build Coastguard Worker 
6073*4f2df630SAndroid Build Coastguard Worker }  // namespace trunks
6074*4f2df630SAndroid Build Coastguard Worker 
6075*4f2df630SAndroid Build Coastguard Worker #endif  // TRUNKS_TPM_GENERATED_H_
6076