| // Copyright 2022 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <memory> |
| #include <utility> |
| |
| #include <gtest/gtest.h> |
| #include <libhwsec-foundation/error/testing_helper.h> |
| |
| #include "libhwsec/backend/tpm1/backend_test_base.h" |
| #include "libhwsec/overalls/mock_overalls.h" |
| |
| using hwsec_foundation::error::testing::IsOkAndHolds; |
| using hwsec_foundation::error::testing::ReturnError; |
| using hwsec_foundation::error::testing::ReturnValue; |
| using testing::_; |
| using testing::DoAll; |
| using testing::NiceMock; |
| using testing::Return; |
| using testing::SaveArg; |
| using testing::SetArgPointee; |
| using tpm_manager::TpmManagerStatus; |
| namespace hwsec { |
| |
| using BackendRandomTpm1Test = BackendTpm1TestBase; |
| |
| TEST_F(BackendRandomTpm1Test, RandomBlob) { |
| const size_t kFakeSize = 42; |
| const brillo::Blob kFakeData(kFakeSize, 'X'); |
| |
| brillo::Blob fake_data = kFakeData; |
| EXPECT_CALL(proxy_->GetMockOveralls(), |
| Ospi_TPM_GetRandom(kDefaultTpm, kFakeSize, _)) |
| .WillOnce(DoAll(SetArgPointee<2>(fake_data.data()), Return(TPM_SUCCESS))); |
| |
| EXPECT_THAT(backend_->GetRandomTpm1().RandomBlob(kFakeSize), |
| IsOkAndHolds(kFakeData)); |
| } |
| |
| TEST_F(BackendRandomTpm1Test, RandomSecureBlob) { |
| const size_t kFakeSize = 42; |
| const brillo::SecureBlob kFakeData(kFakeSize, 'Y'); |
| |
| brillo::SecureBlob fake_data = kFakeData; |
| EXPECT_CALL(proxy_->GetMockOveralls(), |
| Ospi_TPM_GetRandom(kDefaultTpm, kFakeSize, _)) |
| .WillOnce(DoAll(SetArgPointee<2>(fake_data.data()), Return(TPM_SUCCESS))); |
| |
| EXPECT_THAT(backend_->GetRandomTpm1().RandomSecureBlob(kFakeSize), |
| IsOkAndHolds(kFakeData)); |
| } |
| |
| } // namespace hwsec |