13daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 23daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// Copyright (C) 2015 The Android Open Source Project 33daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 43daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// Licensed under the Apache License, Version 2.0 (the "License"); 53daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// you may not use this file except in compliance with the License. 63daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// You may obtain a copy of the License at 73daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 83daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// http://www.apache.org/licenses/LICENSE-2.0 93daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 103daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// Unless required by applicable law or agreed to in writing, software 113daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// distributed under the License is distributed on an "AS IS" BASIS, 123daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// See the License for the specific language governing permissions and 143daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// limitations under the License. 153daa5a0d71ba8facd8be9370df54c20c23be6d8dUtkarsh Sanghi// 1659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 1759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn// THIS CODE IS GENERATED. 1859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 1959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn#include "attestation/common/print_common_proto.h" 2059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 2159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn#include <string> 2259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 2359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn#include <base/strings/string_number_conversions.h> 2459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn#include <base/strings/stringprintf.h> 2559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 2659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnnamespace attestation { 2759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 2859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(KeyType value) { 2959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 3059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 3159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 3259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent(KeyType value, int indent_size) { 3359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == KEY_TYPE_RSA) { 3459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "KEY_TYPE_RSA"; 3559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 3659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == KEY_TYPE_ECC) { 3759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "KEY_TYPE_ECC"; 3859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 3959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "<unknown>"; 4059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 4159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 4259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(KeyUsage value) { 4359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 4459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 4559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 4659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent(KeyUsage value, int indent_size) { 4759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == KEY_USAGE_SIGN) { 4859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "KEY_USAGE_SIGN"; 4959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 5059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == KEY_USAGE_DECRYPT) { 5159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "KEY_USAGE_DECRYPT"; 5259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 5359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "<unknown>"; 5459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 5559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 5659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(CertificateProfile value) { 5759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 5859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 5959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 6059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent(CertificateProfile value, 6159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn int indent_size) { 6259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == ENTERPRISE_MACHINE_CERTIFICATE) { 6359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "ENTERPRISE_MACHINE_CERTIFICATE"; 6459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 6559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == ENTERPRISE_USER_CERTIFICATE) { 6659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "ENTERPRISE_USER_CERTIFICATE"; 6759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 6859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == CONTENT_PROTECTION_CERTIFICATE) { 6959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "CONTENT_PROTECTION_CERTIFICATE"; 7059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 7159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == CONTENT_PROTECTION_CERTIFICATE_WITH_STABLE_ID) { 7259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "CONTENT_PROTECTION_CERTIFICATE_WITH_STABLE_ID"; 7359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 7459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == CAST_CERTIFICATE) { 7559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "CAST_CERTIFICATE"; 7659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 7759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value == GFSC_CERTIFICATE) { 7859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "GFSC_CERTIFICATE"; 7959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 8059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return "<unknown>"; 8159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 8259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 8359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(const Quote& value) { 8459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 8559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 8659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 8759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent(const Quote& value, int indent_size) { 8859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string indent(indent_size, ' '); 8959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string output = 9059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringPrintf("[%s] {\n", value.GetTypeName().c_str()); 9159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 9259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_quote()) { 9359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " quote: "; 9459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 9559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 9659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.quote().data(), value.quote().size()).c_str()); 9759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 9859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 9959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_quoted_data()) { 10059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " quoted_data: "; 10159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF(&output, "%s", 10259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.quoted_data().data(), 10359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.quoted_data().size()).c_str()); 10459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 10559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 10659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_quoted_pcr_value()) { 10759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " quoted_pcr_value: "; 10859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 10959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 11059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.quoted_pcr_value().data(), 11159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.quoted_pcr_value().size()).c_str()); 11259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 11359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 11459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_pcr_source_hint()) { 11559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " pcr_source_hint: "; 11659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 11759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", base::HexEncode(value.pcr_source_hint().data(), 11859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.pcr_source_hint().size()).c_str()); 11959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 12059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 12159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + "}\n"; 12259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return output; 12359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 12459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 12559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(const EncryptedData& value) { 12659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 12759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 12859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 12959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent(const EncryptedData& value, 13059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn int indent_size) { 13159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string indent(indent_size, ' '); 13259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string output = 13359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringPrintf("[%s] {\n", value.GetTypeName().c_str()); 13459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 13559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_wrapped_key()) { 13659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " wrapped_key: "; 13759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF(&output, "%s", 13859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.wrapped_key().data(), 13959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.wrapped_key().size()).c_str()); 14059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 14159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 14259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_iv()) { 14359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " iv: "; 14459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 14559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 14659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.iv().data(), value.iv().size()).c_str()); 14759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 14859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 14959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_mac()) { 15059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " mac: "; 15159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 15259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 15359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.mac().data(), value.mac().size()).c_str()); 15459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 15559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 15659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_encrypted_data()) { 15759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " encrypted_data: "; 15859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF(&output, "%s", 15959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.encrypted_data().data(), 16059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.encrypted_data().size()).c_str()); 16159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 16259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 16359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_wrapping_key_id()) { 16459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " wrapping_key_id: "; 16559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 16659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", base::HexEncode(value.wrapping_key_id().data(), 16759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.wrapping_key_id().size()).c_str()); 16859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 16959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 17059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + "}\n"; 17159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return output; 17259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 17359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 17459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(const SignedData& value) { 17559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 17659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 17759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 17859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent(const SignedData& value, 17959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn int indent_size) { 18059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string indent(indent_size, ' '); 18159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string output = 18259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringPrintf("[%s] {\n", value.GetTypeName().c_str()); 18359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 18459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_data()) { 18559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " data: "; 18659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 18759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 18859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.data().data(), value.data().size()).c_str()); 18959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 19059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 19159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_signature()) { 19259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " signature: "; 19359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF(&output, "%s", 19459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.signature().data(), 19559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.signature().size()).c_str()); 19659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 19759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 19859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + "}\n"; 19959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return output; 20059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 20159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 20259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugString(const EncryptedIdentityCredential& value) { 20359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return GetProtoDebugStringWithIndent(value, 0); 20459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 20559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 20659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahnstd::string GetProtoDebugStringWithIndent( 20759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn const EncryptedIdentityCredential& value, 20859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn int indent_size) { 20959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string indent(indent_size, ' '); 21059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn std::string output = 21159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringPrintf("[%s] {\n", value.GetTypeName().c_str()); 21259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 21359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_asym_ca_contents()) { 21459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " asym_ca_contents: "; 21559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 21659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 21759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.asym_ca_contents().data(), 21859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.asym_ca_contents().size()).c_str()); 21959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 22059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 22159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn if (value.has_sym_ca_attestation()) { 22259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + " sym_ca_attestation: "; 22359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::StringAppendF( 22459ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn &output, "%s", 22559ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn base::HexEncode(value.sym_ca_attestation().data(), 22659ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn value.sym_ca_attestation().size()).c_str()); 22759ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += "\n"; 22859ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn } 22959ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn output += indent + "}\n"; 23059ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn return output; 23159ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} 23259ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn 23359ea81cf9e7b293ec3241e5d442092b0278a3643Darren Krahn} // namespace attestation 234