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