blob: cd259783641e79b266a6ef091aa64c95524c6939 [file] [log] [blame]
Yingdi Yu0b60e7a2015-07-16 21:05:11 -07001/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
Davide Pesavento5ee8ec02018-09-01 19:06:12 -04002/*
Davide Pesavento51974f62024-12-21 20:42:45 -05003 * Copyright (c) 2013-2024 Regents of the University of California.
Yingdi Yu0b60e7a2015-07-16 21:05:11 -07004 *
5 * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6 *
7 * ndn-cxx library is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU Lesser General Public License as published by the Free Software
9 * Foundation, either version 3 of the License, or (at your option) any later version.
10 *
11 * ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14 *
15 * You should have received copies of the GNU General Public License and GNU Lesser
16 * General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17 * <http://www.gnu.org/licenses/>.
18 *
19 * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20 */
21
Davide Pesavento09904412021-03-24 16:40:53 -040022#ifndef NDN_CXX_TESTS_UNIT_SECURITY_TPM_BACK_END_WRAPPER_FILE_HPP
23#define NDN_CXX_TESTS_UNIT_SECURITY_TPM_BACK_END_WRAPPER_FILE_HPP
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070024
Davide Pesavento4fb35d82019-10-31 19:33:10 -040025#include "ndn-cxx/security/tpm/impl/back-end-file.hpp"
Davide Pesavento7e780642018-11-24 15:51:34 -050026
Davide Pesavento51974f62024-12-21 20:42:45 -050027#include <filesystem>
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070028
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040029namespace ndn::tests {
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070030
31/**
32 * @brief A wrapper of tpm::BackEndFile for unit test template.
33 */
34class BackEndWrapperFile
35{
36public:
37 BackEndWrapperFile()
Davide Pesavento51974f62024-12-21 20:42:45 -050038 : m_tmpPath(std::filesystem::path(UNIT_TESTS_TMPDIR) / "TpmBackEndFile")
39 , m_impl(make_unique<security::tpm::BackEndFile>(m_tmpPath))
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070040 {
41 }
42
43 ~BackEndWrapperFile()
44 {
Davide Pesavento51974f62024-12-21 20:42:45 -050045 std::filesystem::remove_all(m_tmpPath);
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070046 }
47
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040048 security::tpm::BackEnd&
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070049 getTpm()
50 {
51 return *m_impl;
52 }
53
54 std::string
Davide Pesavento5ee8ec02018-09-01 19:06:12 -040055 getScheme() const
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070056 {
57 return "tpm-file";
58 }
59
60private:
Davide Pesavento51974f62024-12-21 20:42:45 -050061 const std::filesystem::path m_tmpPath;
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040062 const unique_ptr<security::tpm::BackEnd> m_impl;
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070063};
64
Davide Pesavento47ce2ee2023-05-09 01:33:33 -040065} // namespace ndn::tests
Yingdi Yu0b60e7a2015-07-16 21:05:11 -070066
Davide Pesavento09904412021-03-24 16:40:53 -040067#endif // NDN_CXX_TESTS_UNIT_SECURITY_TPM_BACK_END_WRAPPER_FILE_HPP