// Copyright 2013 The Chromium 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 "chromeos/cryptohome/cryptohome_util.h" #include "base/logging.h" #include "chromeos/dbus/cryptohome_client.h" #include "chromeos/dbus/dbus_thread_manager.h" namespace chromeos { namespace cryptohome_util { bool TpmIsEnabled() { bool result = false; DBusThreadManager::Get()->GetCryptohomeClient()->CallTpmIsEnabledAndBlock( &result); return result; } bool TpmIsOwned() { bool result = false; DBusThreadManager::Get()->GetCryptohomeClient()->CallTpmIsOwnedAndBlock( &result); return result; } bool TpmIsBeingOwned() { bool result = false; DBusThreadManager::Get()->GetCryptohomeClient()-> CallTpmIsBeingOwnedAndBlock(&result); return result; } bool InstallAttributesGet( const std::string& name, std::string* value) { std::vector buf; bool success = false; DBusThreadManager::Get()->GetCryptohomeClient()-> InstallAttributesGet(name, &buf, &success); if (success) { // Cryptohome returns 'buf' with a terminating '\0' character. DCHECK(!buf.empty()); DCHECK_EQ(buf.back(), 0); value->assign(reinterpret_cast(buf.data()), buf.size() - 1); } return success; } bool InstallAttributesSet( const std::string& name, const std::string& value) { std::vector buf(value.c_str(), value.c_str() + value.size() + 1); bool success = false; DBusThreadManager::Get()->GetCryptohomeClient()-> InstallAttributesSet(name, buf, &success); return success; } bool InstallAttributesFinalize() { bool success = false; DBusThreadManager::Get()->GetCryptohomeClient()-> InstallAttributesFinalize(&success); return success; } bool InstallAttributesIsInvalid() { bool result = false; DBusThreadManager::Get()->GetCryptohomeClient()-> InstallAttributesIsInvalid(&result); return result; } bool InstallAttributesIsFirstInstall() { bool result = false; DBusThreadManager::Get()->GetCryptohomeClient()-> InstallAttributesIsFirstInstall(&result); return result; } } // namespace cryptohome_util } // namespace chromeos