blob: 617ad954328293b69ceeacf16f28a1e18f5f133e [file] [log] [blame]
// Copyright (c) 2012 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 <stdio.h>
#include <unistd.h>
#include "tpm.h"
namespace cryptohome {
class StubTpm : public Tpm {
public:
StubTpm() { }
virtual ~StubTpm() { }
// See tpm.h for comments
virtual bool Connect(TpmRetryAction* retry_action) { return false; }
virtual bool IsConnected() { return false; }
virtual bool IsEnabled() const { return false; }
virtual bool IsOwned() const { return false; }
virtual bool ReadNvram(uint32_t index,
chromeos::SecureBlob* blob) { return false; }
virtual bool IsNvramDefined(uint32_t index) { return false; }
virtual bool IsNvramLocked(uint32_t index) { return false; }
virtual unsigned int GetNvramSize(uint32_t index) { return 0; }
virtual void Disconnect() { }
virtual bool GetOwnerPassword(
chromeos::Blob* owner_password) { return false; }
virtual bool Encrypt(const chromeos::SecureBlob& plaintext,
const chromeos::SecureBlob& key,
chromeos::SecureBlob* ciphertext,
TpmRetryAction* retry_action) { return false; }
virtual bool Decrypt(const chromeos::SecureBlob& ciphertext,
const chromeos::SecureBlob& key,
chromeos::SecureBlob* plaintext,
TpmRetryAction* retry_action) { return false; }
bool IsBeingOwned() const { return false; }
bool InitializeTpm(bool* OUT_took_ownership) { return false; }
virtual bool GetRandomData(size_t length,
chromeos::Blob* data) { return false; }
virtual bool DefineLockOnceNvram(uint32_t index,
size_t length) { return false; }
virtual bool DestroyNvram(uint32_t index) { return false; }
virtual bool WriteNvram(uint32_t index,
const chromeos::SecureBlob& blob) { return false; }
virtual bool GetEndorsementPublicKey(chromeos::SecureBlob* ek_public_key)
{ return false; }
virtual bool GetEndorsementCredential(chromeos::SecureBlob* credential)
{ return false; }
virtual bool MakeIdentity(chromeos::SecureBlob* identity_public_key_der,
chromeos::SecureBlob* identity_public_key,
chromeos::SecureBlob* identity_key_blob,
chromeos::SecureBlob* identity_binding,
chromeos::SecureBlob* identity_label,
chromeos::SecureBlob* pca_public_key,
chromeos::SecureBlob* endorsement_credential,
chromeos::SecureBlob* platform_credential,
chromeos::SecureBlob* conformance_credential)
{ return false; }
virtual bool QuotePCR0(const chromeos::SecureBlob& identity_key_blob,
const chromeos::SecureBlob& external_data,
chromeos::SecureBlob* pcr_value,
chromeos::SecureBlob* quoted_data,
chromeos::SecureBlob* quote) { return false; }
virtual bool SealToPCR0(const chromeos::Blob& value,
chromeos::Blob* sealed_value) { return false; }
virtual bool Unseal(const chromeos::Blob& sealed_value,
chromeos::Blob* value) { return false; }
virtual bool CreateCertifiedKey(
const chromeos::SecureBlob& identity_key_blob,
const chromeos::SecureBlob& external_data,
chromeos::SecureBlob* certified_public_key,
chromeos::SecureBlob* certified_public_key_der,
chromeos::SecureBlob* certified_key_blob,
chromeos::SecureBlob* certified_key_info,
chromeos::SecureBlob* certified_key_proof) { return false; }
virtual bool CreateDelegate(const chromeos::SecureBlob& identity_key_blob,
chromeos::SecureBlob* delegate_blob,
chromeos::SecureBlob* delegate_secret)
{ return false; }
virtual bool ActivateIdentity(const chromeos::SecureBlob& delegate_blob,
const chromeos::SecureBlob& delegate_secret,
const chromeos::SecureBlob& identity_key_blob,
const chromeos::SecureBlob& encrypted_asym_ca,
const chromeos::SecureBlob& encrypted_sym_ca,
chromeos::SecureBlob* identity_credential)
{ return false; }
virtual bool TssCompatibleEncrypt(const chromeos::SecureBlob& key,
const chromeos::SecureBlob& input,
chromeos::SecureBlob* output)
{ return false; }
virtual bool TpmCompatibleOAEPEncrypt(RSA* key,
const chromeos::SecureBlob& input,
chromeos::SecureBlob* output)
{ return false; }
};
} // namespace cryptohome