Android-cuttlefish cvd tool
in_process_tpm.h
Go to the documentation of this file.
1//
2// Copyright (C) 2020 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16#pragma once
17
18#include <list>
19#include <mutex>
20#include <vector>
21
22#include <tss2/tss2_tcti.h>
23
25
26namespace cuttlefish {
27
28/*
29 * Exposes a TSS2_TCTI_CONTEXT for interacting with an in-process TPM simulator.
30 *
31 * TSS2_TCTI_CONTEXT is the abstraction for "communication channel to a TPM".
32 * It is not safe to create more than one of these per process or per working
33 * directory, as the TPM simulator implementation relies heavily on global
34 * variables and files saved in the working directory.
35 *
36 * TODO(schuffelen): Consider moving this to a separate process with its own
37 * working directory.
38 */
39class InProcessTpm : public Tpm {
40public:
43
44 TSS2_TCTI_CONTEXT* TctiContext() override;
45private:
46 class Impl;
47
48 std::unique_ptr<Impl> impl_;
49};
50
51} // namespace cuttlefish
Definition: in_process_tpm.cpp:56
Definition: in_process_tpm.h:39
TSS2_TCTI_CONTEXT * TctiContext() override
Definition: in_process_tpm.cpp:190
std::unique_ptr< Impl > impl_
Definition: in_process_tpm.h:48
InProcessTpm()
Definition: in_process_tpm.cpp:186
Definition: tpm.h:22
Definition: alloc_utils.cpp:23