aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgenerator/generator.py35
-rw-r--r--tpm_generated.cc77
-rw-r--r--tpm_generated.h29
3 files changed, 68 insertions, 73 deletions
diff --git a/generator/generator.py b/generator/generator.py
index bd47d45..09b6cd2 100755
--- a/generator/generator.py
+++ b/generator/generator.py
@@ -81,11 +81,21 @@ _BASIC_TYPES = ['uint8_t', 'int8_t', 'int', 'uint16_t', 'int16_t',
_OUTPUT_FILE_H = 'tpm_generated.h'
_OUTPUT_FILE_CC = 'tpm_generated.cc'
_COPYRIGHT_HEADER = (
- '// Copyright 2014 The Chromium OS Authors. All rights reserved.\n'
- '// Use of this source code is governed by a BSD-style license that can '
- 'be\n'
- '// found in the LICENSE file.\n'
- '\n'
+ '// \n'
+ '// Copyright (C) 2015 The Android Open Source Project \n'
+ '// \n'
+ '// Licensed under the Apache License, Version 2.0 (the "License"); \n'
+ '// you may not use this file except in compliance with the License. \n'
+ '// \n'
+ '// http://www.apache.org/licenses/LICENSE-2.0 \n'
+ '// \n'
+ '// Unless required by applicable law or agreed to in writing, software \n'
+ '// distributed under the License is distributed on an "AS IS" BASIS, \n'
+ '// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or '
+ 'implied. \n'
+ '// See the License for the specific language governing permissions and \n'
+ '// limitations under the License. \n'
+ '// \n'
'// THIS CODE IS GENERATED - DO NOT MODIFY!\n')
_HEADER_FILE_GUARD_HEADER = """
#ifndef %(name)s
@@ -1737,11 +1747,20 @@ TPM_RC Tpm::%(method_name)sSync(%(method_args)s) {
"""Splits a list of args into handles and parameters."""
handles = []
parameters = []
+ # These commands have handles that are serialized into the parameter
+ # section.
+ command_handle_parameters = {
+ 'TPM_CC_FlushContext': 'TPMI_DH_CONTEXT',
+ 'TPM_CC_Hash': 'TPMI_RH_HIERARCHY',
+ 'TPM_CC_LoadExternal': 'TPMI_RH_HIERARCHY',
+ 'TPM_CC_SequenceComplete': 'TPMI_RH_HIERARCHY',
+ }
+ # Handle type that appears in the handle section.
always_handle = set(['TPM_HANDLE'])
- # Handle types that appear as command parameters.
+ # Handle types that always appear as command parameters.
always_parameter = set(['TPMI_RH_ENABLES', 'TPMI_DH_PERSISTENT'])
- if self.command_code == 'TPM_CC_FlushContext':
- always_parameter.add('TPMI_DH_CONTEXT')
+ if self.command_code in command_handle_parameters:
+ always_parameter.add(command_handle_parameters[self.command_code])
for arg in args:
if (arg['type'] in always_handle or
(self._HANDLE_RE.search(arg['type']) and
diff --git a/tpm_generated.cc b/tpm_generated.cc
index d7d4246..657c880 100644
--- a/tpm_generated.cc
+++ b/tpm_generated.cc
@@ -1,5 +1,5 @@
//
-// Copyright (C) 2014 The Android Open Source Project
+// Copyright (C) 2015 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -47,7 +47,7 @@ size_t GetNumberOfRequestHandles(TPM_CC command_code) {
case TPM_CC_PolicyRestart: return 1;
case TPM_CC_Create: return 1;
case TPM_CC_Load: return 1;
- case TPM_CC_LoadExternal: return 1;
+ case TPM_CC_LoadExternal: return 0;
case TPM_CC_ReadPublic: return 1;
case TPM_CC_ActivateCredential: return 2;
case TPM_CC_MakeCredential: return 1;
@@ -63,14 +63,14 @@ size_t GetNumberOfRequestHandles(TPM_CC command_code) {
case TPM_CC_ECC_Parameters: return 0;
case TPM_CC_ZGen_2Phase: return 1;
case TPM_CC_EncryptDecrypt: return 1;
- case TPM_CC_Hash: return 1;
+ case TPM_CC_Hash: return 0;
case TPM_CC_HMAC: return 1;
case TPM_CC_GetRandom: return 0;
case TPM_CC_StirRandom: return 0;
case TPM_CC_HMAC_Start: return 1;
case TPM_CC_HashSequenceStart: return 0;
case TPM_CC_SequenceUpdate: return 1;
- case TPM_CC_SequenceComplete: return 2;
+ case TPM_CC_SequenceComplete: return 1;
case TPM_CC_EventSequenceComplete: return 2;
case TPM_CC_Certify: return 2;
case TPM_CC_CertifyCreation: return 2;
@@ -12004,10 +12004,9 @@ TPM_RC Tpm::LoadSync(
}
TPM_RC Tpm::SerializeCommand_LoadExternal(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_SENSITIVE& in_private,
const TPM2B_PUBLIC& in_public,
+ const TPMI_RH_HIERARCHY& hierarchy,
std::string* serialized_command,
AuthorizationDelegate* authorization_delegate) {
VLOG(3) << __func__;
@@ -12059,10 +12058,6 @@ TPM_RC Tpm::SerializeCommand_LoadExternal(
crypto::SecureHash::SHA256));
hash->Update(command_code_bytes.data(),
command_code_bytes.size());
- hash->Update(hierarchy_name.data(),
- hierarchy_name.size());
- handle_section_bytes += hierarchy_bytes;
- command_size += hierarchy_bytes.size();
hash->Update(in_private_bytes.data(),
in_private_bytes.size());
parameter_section_bytes += in_private_bytes;
@@ -12071,6 +12066,10 @@ TPM_RC Tpm::SerializeCommand_LoadExternal(
in_public_bytes.size());
parameter_section_bytes += in_public_bytes;
command_size += in_public_bytes.size();
+ hash->Update(hierarchy_bytes.data(),
+ hierarchy_bytes.size());
+ parameter_section_bytes += hierarchy_bytes;
+ command_size += hierarchy_bytes.size();
std::string command_hash(32, 0);
hash->Finish(string_as_array(&command_hash), command_hash.size());
std::string authorization_section_bytes;
@@ -12273,10 +12272,9 @@ void LoadExternalResponseParser(
}
void Tpm::LoadExternal(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_SENSITIVE& in_private,
const TPM2B_PUBLIC& in_public,
+ const TPMI_RH_HIERARCHY& hierarchy,
AuthorizationDelegate* authorization_delegate,
const LoadExternalResponse& callback) {
VLOG(1) << __func__;
@@ -12288,10 +12286,9 @@ void Tpm::LoadExternal(
authorization_delegate);
std::string command;
TPM_RC rc = SerializeCommand_LoadExternal(
- hierarchy,
- hierarchy_name,
in_private,
in_public,
+ hierarchy,
&command,
authorization_delegate);
if (rc != TPM_RC_SUCCESS) {
@@ -12302,20 +12299,18 @@ void Tpm::LoadExternal(
}
TPM_RC Tpm::LoadExternalSync(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_SENSITIVE& in_private,
const TPM2B_PUBLIC& in_public,
+ const TPMI_RH_HIERARCHY& hierarchy,
TPM_HANDLE* object_handle,
TPM2B_NAME* name,
AuthorizationDelegate* authorization_delegate) {
VLOG(1) << __func__;
std::string command;
TPM_RC rc = SerializeCommand_LoadExternal(
- hierarchy,
- hierarchy_name,
in_private,
in_public,
+ hierarchy,
&command,
authorization_delegate);
if (rc != TPM_RC_SUCCESS) {
@@ -17169,10 +17164,9 @@ TPM_RC Tpm::EncryptDecryptSync(
}
TPM_RC Tpm::SerializeCommand_Hash(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& data,
const TPMI_ALG_HASH& hash_alg,
+ const TPMI_RH_HIERARCHY& hierarchy,
std::string* serialized_command,
AuthorizationDelegate* authorization_delegate) {
VLOG(3) << __func__;
@@ -17224,10 +17218,6 @@ TPM_RC Tpm::SerializeCommand_Hash(
crypto::SecureHash::SHA256));
hash->Update(command_code_bytes.data(),
command_code_bytes.size());
- hash->Update(hierarchy_name.data(),
- hierarchy_name.size());
- handle_section_bytes += hierarchy_bytes;
- command_size += hierarchy_bytes.size();
hash->Update(data_bytes.data(),
data_bytes.size());
parameter_section_bytes += data_bytes;
@@ -17236,6 +17226,10 @@ TPM_RC Tpm::SerializeCommand_Hash(
hash_alg_bytes.size());
parameter_section_bytes += hash_alg_bytes;
command_size += hash_alg_bytes.size();
+ hash->Update(hierarchy_bytes.data(),
+ hierarchy_bytes.size());
+ parameter_section_bytes += hierarchy_bytes;
+ command_size += hierarchy_bytes.size();
std::string command_hash(32, 0);
hash->Finish(string_as_array(&command_hash), command_hash.size());
std::string authorization_section_bytes;
@@ -17438,10 +17432,9 @@ void HashResponseParser(
}
void Tpm::Hash(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& data,
const TPMI_ALG_HASH& hash_alg,
+ const TPMI_RH_HIERARCHY& hierarchy,
AuthorizationDelegate* authorization_delegate,
const HashResponse& callback) {
VLOG(1) << __func__;
@@ -17453,10 +17446,9 @@ void Tpm::Hash(
authorization_delegate);
std::string command;
TPM_RC rc = SerializeCommand_Hash(
- hierarchy,
- hierarchy_name,
data,
hash_alg,
+ hierarchy,
&command,
authorization_delegate);
if (rc != TPM_RC_SUCCESS) {
@@ -17467,20 +17459,18 @@ void Tpm::Hash(
}
TPM_RC Tpm::HashSync(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& data,
const TPMI_ALG_HASH& hash_alg,
+ const TPMI_RH_HIERARCHY& hierarchy,
TPM2B_DIGEST* out_hash,
TPMT_TK_HASHCHECK* validation,
AuthorizationDelegate* authorization_delegate) {
VLOG(1) << __func__;
std::string command;
TPM_RC rc = SerializeCommand_Hash(
- hierarchy,
- hierarchy_name,
data,
hash_alg,
+ hierarchy,
&command,
authorization_delegate);
if (rc != TPM_RC_SUCCESS) {
@@ -19157,9 +19147,8 @@ TPM_RC Tpm::SequenceUpdateSync(
TPM_RC Tpm::SerializeCommand_SequenceComplete(
const TPMI_DH_OBJECT& sequence_handle,
const std::string& sequence_handle_name,
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& buffer,
+ const TPMI_RH_HIERARCHY& hierarchy,
std::string* serialized_command,
AuthorizationDelegate* authorization_delegate) {
VLOG(3) << __func__;
@@ -19215,14 +19204,14 @@ TPM_RC Tpm::SerializeCommand_SequenceComplete(
sequence_handle_name.size());
handle_section_bytes += sequence_handle_bytes;
command_size += sequence_handle_bytes.size();
- hash->Update(hierarchy_name.data(),
- hierarchy_name.size());
- handle_section_bytes += hierarchy_bytes;
- command_size += hierarchy_bytes.size();
hash->Update(buffer_bytes.data(),
buffer_bytes.size());
parameter_section_bytes += buffer_bytes;
command_size += buffer_bytes.size();
+ hash->Update(hierarchy_bytes.data(),
+ hierarchy_bytes.size());
+ parameter_section_bytes += hierarchy_bytes;
+ command_size += hierarchy_bytes.size();
std::string command_hash(32, 0);
hash->Finish(string_as_array(&command_hash), command_hash.size());
std::string authorization_section_bytes;
@@ -19427,9 +19416,8 @@ void SequenceCompleteResponseParser(
void Tpm::SequenceComplete(
const TPMI_DH_OBJECT& sequence_handle,
const std::string& sequence_handle_name,
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& buffer,
+ const TPMI_RH_HIERARCHY& hierarchy,
AuthorizationDelegate* authorization_delegate,
const SequenceCompleteResponse& callback) {
VLOG(1) << __func__;
@@ -19443,9 +19431,8 @@ void Tpm::SequenceComplete(
TPM_RC rc = SerializeCommand_SequenceComplete(
sequence_handle,
sequence_handle_name,
- hierarchy,
- hierarchy_name,
buffer,
+ hierarchy,
&command,
authorization_delegate);
if (rc != TPM_RC_SUCCESS) {
@@ -19458,9 +19445,8 @@ void Tpm::SequenceComplete(
TPM_RC Tpm::SequenceCompleteSync(
const TPMI_DH_OBJECT& sequence_handle,
const std::string& sequence_handle_name,
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& buffer,
+ const TPMI_RH_HIERARCHY& hierarchy,
TPM2B_DIGEST* result,
TPMT_TK_HASHCHECK* validation,
AuthorizationDelegate* authorization_delegate) {
@@ -19469,9 +19455,8 @@ TPM_RC Tpm::SequenceCompleteSync(
TPM_RC rc = SerializeCommand_SequenceComplete(
sequence_handle,
sequence_handle_name,
- hierarchy,
- hierarchy_name,
buffer,
+ hierarchy,
&command,
authorization_delegate);
if (rc != TPM_RC_SUCCESS) {
diff --git a/tpm_generated.h b/tpm_generated.h
index e60e83c..5a7c7e0 100644
--- a/tpm_generated.h
+++ b/tpm_generated.h
@@ -1,5 +1,5 @@
//
-// Copyright (C) 2014 The Android Open Source Project
+// Copyright (C) 2015 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -3966,10 +3966,9 @@ class TRUNKS_EXPORT Tpm {
const TPM_HANDLE& object_handle,
const TPM2B_NAME& name)> LoadExternalResponse;
static TPM_RC SerializeCommand_LoadExternal(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_SENSITIVE& in_private,
const TPM2B_PUBLIC& in_public,
+ const TPMI_RH_HIERARCHY& hierarchy,
std::string* serialized_command,
AuthorizationDelegate* authorization_delegate);
static TPM_RC ParseResponse_LoadExternal(
@@ -3978,17 +3977,15 @@ class TRUNKS_EXPORT Tpm {
TPM2B_NAME* name,
AuthorizationDelegate* authorization_delegate);
virtual void LoadExternal(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_SENSITIVE& in_private,
const TPM2B_PUBLIC& in_public,
+ const TPMI_RH_HIERARCHY& hierarchy,
AuthorizationDelegate* authorization_delegate,
const LoadExternalResponse& callback);
virtual TPM_RC LoadExternalSync(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_SENSITIVE& in_private,
const TPM2B_PUBLIC& in_public,
+ const TPMI_RH_HIERARCHY& hierarchy,
TPM_HANDLE* object_handle,
TPM2B_NAME* name,
AuthorizationDelegate* authorization_delegate);
@@ -4465,10 +4462,9 @@ class TRUNKS_EXPORT Tpm {
const TPM2B_DIGEST& out_hash,
const TPMT_TK_HASHCHECK& validation)> HashResponse;
static TPM_RC SerializeCommand_Hash(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& data,
const TPMI_ALG_HASH& hash_alg,
+ const TPMI_RH_HIERARCHY& hierarchy,
std::string* serialized_command,
AuthorizationDelegate* authorization_delegate);
static TPM_RC ParseResponse_Hash(
@@ -4477,17 +4473,15 @@ class TRUNKS_EXPORT Tpm {
TPMT_TK_HASHCHECK* validation,
AuthorizationDelegate* authorization_delegate);
virtual void Hash(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& data,
const TPMI_ALG_HASH& hash_alg,
+ const TPMI_RH_HIERARCHY& hierarchy,
AuthorizationDelegate* authorization_delegate,
const HashResponse& callback);
virtual TPM_RC HashSync(
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& data,
const TPMI_ALG_HASH& hash_alg,
+ const TPMI_RH_HIERARCHY& hierarchy,
TPM2B_DIGEST* out_hash,
TPMT_TK_HASHCHECK* validation,
AuthorizationDelegate* authorization_delegate);
@@ -4633,9 +4627,8 @@ class TRUNKS_EXPORT Tpm {
static TPM_RC SerializeCommand_SequenceComplete(
const TPMI_DH_OBJECT& sequence_handle,
const std::string& sequence_handle_name,
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& buffer,
+ const TPMI_RH_HIERARCHY& hierarchy,
std::string* serialized_command,
AuthorizationDelegate* authorization_delegate);
static TPM_RC ParseResponse_SequenceComplete(
@@ -4646,17 +4639,15 @@ class TRUNKS_EXPORT Tpm {
virtual void SequenceComplete(
const TPMI_DH_OBJECT& sequence_handle,
const std::string& sequence_handle_name,
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& buffer,
+ const TPMI_RH_HIERARCHY& hierarchy,
AuthorizationDelegate* authorization_delegate,
const SequenceCompleteResponse& callback);
virtual TPM_RC SequenceCompleteSync(
const TPMI_DH_OBJECT& sequence_handle,
const std::string& sequence_handle_name,
- const TPMI_RH_HIERARCHY& hierarchy,
- const std::string& hierarchy_name,
const TPM2B_MAX_BUFFER& buffer,
+ const TPMI_RH_HIERARCHY& hierarchy,
TPM2B_DIGEST* result,
TPMT_TK_HASHCHECK* validation,
AuthorizationDelegate* authorization_delegate);