| Index: chrome/browser/chromeos/login/ownership_service.cc
|
| diff --git a/chrome/browser/chromeos/login/ownership_service.cc b/chrome/browser/chromeos/login/ownership_service.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5c62f7c4e8e6f1e0d8bba2e1bdbf6fb98864c2c1
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/login/ownership_service.cc
|
| @@ -0,0 +1,94 @@
|
| +// Copyright (c) 2010 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 "chrome/browser/chromeos/login/ownership_service.h"
|
| +
|
| +#include "base/file_path.h"
|
| +#include "base/file_util.h"
|
| +#include "chrome/browser/chrome_thread.h"
|
| +#include "chrome/common/notification_service.h"
|
| +#include "chrome/common/notification_type.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +// static
|
| +OwnershipService* OwnershipService::GetSharedInstance() {
|
| + return Singleton<OwnershipService>::get();
|
| +}
|
| +
|
| +OwnershipService::OwnershipService()
|
| + : manager_(new OwnerManager),
|
| + utils_(OwnerKeyUtils::Create()) {
|
| +}
|
| +
|
| +OwnershipService::~OwnershipService() {}
|
| +
|
| +
|
| +bool OwnershipService::IsAlreadyOwned() {
|
| + return file_util::PathExists(utils_->GetOwnerKeyFilePath());
|
| +}
|
| +
|
| +bool OwnershipService::StartLoadOwnerKeyAttempt() {
|
| + if (!IsAlreadyOwned()) {
|
| + LOG(ERROR) << "Device not yet owned";
|
| + return false;
|
| + }
|
| + ChromeThread::PostTask(
|
| + ChromeThread::FILE, FROM_HERE,
|
| + NewRunnableMethod(manager_.get(), &OwnerManager::LoadOwnerKey));
|
| + return true;
|
| +}
|
| +
|
| +bool OwnershipService::StartTakeOwnershipAttempt() {
|
| + if (IsAlreadyOwned()) {
|
| + LOG(ERROR) << "Device is already owned";
|
| + return false;
|
| + }
|
| + ChromeThread::PostTask(
|
| + ChromeThread::FILE, FROM_HERE,
|
| + NewRunnableMethod(manager_.get(),
|
| + &OwnerManager::GenerateKeysAndExportPublic));
|
| + return true;
|
| +}
|
| +
|
| +bool OwnershipService::StartSigningAttempt(const std::string& data,
|
| + OwnerManager::Delegate* d) {
|
| + if (!IsAlreadyOwned()) {
|
| + LOG(ERROR) << "Device not yet owned";
|
| + return false;
|
| + }
|
| + ChromeThread::ID thread_id;
|
| + if (!ChromeThread::GetCurrentThreadIdentifier(&thread_id))
|
| + thread_id = ChromeThread::UI;
|
| + ChromeThread::PostTask(
|
| + ChromeThread::FILE, FROM_HERE,
|
| + NewRunnableMethod(manager_.get(),
|
| + &OwnerManager::Sign,
|
| + thread_id,
|
| + data, d));
|
| + return true;
|
| +}
|
| +
|
| +bool OwnershipService::StartVerifyAttempt(const std::string& data,
|
| + const std::string& signature,
|
| + OwnerManager::Delegate* d) {
|
| + if (!IsAlreadyOwned()) {
|
| + LOG(ERROR) << "Device not yet owned";
|
| + return false;
|
| + }
|
| + ChromeThread::ID thread_id;
|
| + if (!ChromeThread::GetCurrentThreadIdentifier(&thread_id))
|
| + thread_id = ChromeThread::UI;
|
| + ChromeThread::PostTask(
|
| + ChromeThread::FILE, FROM_HERE,
|
| + NewRunnableMethod(manager_.get(),
|
| + &OwnerManager::Verify,
|
| + thread_id,
|
| + data,
|
| + signature,
|
| + d));
|
| + return true;
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|