blob: f8b4f23a7979b056a4c08e2e0d6c0c4114d1af69 [file] [log] [blame]
// Copyright (c) 2013 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.
#include "cryptohome/mock_tpm.h"
#include <string>
using testing::_;
using testing::DoAll;
using testing::Invoke;
using testing::Return;
using testing::SetArgPointee;
namespace cryptohome {
MockTpm::MockTpm() {
ON_CALL(*this, GetVersion()).WillByDefault(Return(TpmVersion::TPM_UNKNOWN));
ON_CALL(*this, EncryptBlob(_, _, _, _))
.WillByDefault(Invoke(this, &MockTpm::Xor));
ON_CALL(*this, DecryptBlob(_, _, _, _, _))
.WillByDefault(Invoke(this, &MockTpm::XorDecrypt));
ON_CALL(*this, GetPublicKeyHash(_, _)).WillByDefault(Return(kTpmRetryNone));
ON_CALL(*this, GetEndorsementPublicKey(_))
.WillByDefault(Return(Tpm::kTpmRetryNone));
ON_CALL(*this, GetEndorsementPublicKeyWithDelegate(_, _, _))
.WillByDefault(Return(Tpm::kTpmRetryNone));
ON_CALL(*this, GetEndorsementCredential(_))
.WillByDefault(
DoAll(SetArgPointee<0>(brillo::SecureBlob("test")), Return(true)));
ON_CALL(*this, MakeIdentity(_, _, _, _, _, _, _, _, _))
.WillByDefault(Return(true));
ON_CALL(*this, ActivateIdentity(_, _, _, _, _, _))
.WillByDefault(Return(true));
ON_CALL(*this, QuotePCR(_, _, _, _, _, _, _))
.WillByDefault(Return(Tpm::QuotePcrResult::kSuccess));
ON_CALL(*this, SealToPCR0(_, _)).WillByDefault(Return(true));
ON_CALL(*this, Unseal(_, _)).WillByDefault(Return(true));
ON_CALL(*this, GetRandomDataBlob(_, _))
.WillByDefault(Invoke(this, &MockTpm::FakeGetRandomDataBlob));
ON_CALL(*this, GetRandomDataSecureBlob(_, _))
.WillByDefault(Invoke(this, &MockTpm::FakeGetRandomDataSecureBlob));
ON_CALL(*this, GetAlertsData(_)).WillByDefault(Return(true));
ON_CALL(*this, CreateDelegate(_, _, _, _, _)).WillByDefault(Return(true));
ON_CALL(*this, CreateCertifiedKey(_, _, _, _, _, _, _))
.WillByDefault(Return(true));
ON_CALL(*this, Sign(_, _, _, _)).WillByDefault(Return(true));
ON_CALL(*this, CreatePCRBoundKey(_, _, _, _, _)).WillByDefault(Return(true));
ON_CALL(*this, VerifyPCRBoundKey(_, _, _)).WillByDefault(Return(true));
ON_CALL(*this, ExtendPCR(_, _))
.WillByDefault(Invoke(this, &MockTpm::FakeExtendPCR));
ON_CALL(*this, ReadPCR(_, _))
.WillByDefault(Invoke(this, &MockTpm::FakeReadPCR));
ON_CALL(*this, GetRsuDeviceId(_)).WillByDefault(Return(true));
ON_CALL(*this, GetLECredentialBackend()).WillByDefault(Return(nullptr));
ON_CALL(*this, GetDelegate(_, _, _)).WillByDefault(Return(true));
ON_CALL(*this, DoesUseTpmManager()).WillByDefault(Return(true));
ON_CALL(*this, UnsealWithAuthorization(_, _, _, _, _))
.WillByDefault(Return(Tpm::kTpmRetryNone));
ON_CALL(*this, IsCurrentPCR0ValueValid()).WillByDefault(Return(true));
}
MockTpm::~MockTpm() {}
} // namespace cryptohome