blob: 9cff796ecf4a1514c8114cce646099398a9cd6be [file] [log] [blame]
// Copyright 2020 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef HWSEC_TEST_UTILS_FAKE_PCA_AGENT_TPM2_STRUCT_UTILS_H_
#define HWSEC_TEST_UTILS_FAKE_PCA_AGENT_TPM2_STRUCT_UTILS_H_
#if !USE_TPM2
#error "This file is used for TPM2.0 only"
#endif
#include <string>
#include <base/optional.h>
#include <crypto/scoped_openssl_types.h>
namespace hwsec_test_utils {
namespace fake_pca_agent {
// Parse |serialized| into trunks::TPMT_PUBLIC and convert it to EVP_PKEY.
// Note that currently this function only supports ECC key type. If |name| !=
// nullptr, calculates the public key's name and assigns the result to |name|.
// Currently only SHA256 for name algorithm is supported.
crypto::ScopedEVP_PKEY TpmtPublicToEVP(std::string serialized,
std::string* name);
} // namespace fake_pca_agent
} // namespace hwsec_test_utils
#endif // HWSEC_TEST_UTILS_FAKE_PCA_AGENT_TPM2_STRUCT_UTILS_H_