| Index: chrome/browser/chromeos/login/ownership_service.h
|
| diff --git a/chrome/browser/chromeos/login/ownership_service.h b/chrome/browser/chromeos/login/ownership_service.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..22f534f6fcc5127f87ab9642639cc43a24e73661
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/login/ownership_service.h
|
| @@ -0,0 +1,75 @@
|
| +// 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.
|
| +
|
| +#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_OWNERSHIP_SERVICE_H_
|
| +#define CHROME_BROWSER_CHROMEOS_LOGIN_OWNERSHIP_SERVICE_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/ref_counted.h"
|
| +#include "base/singleton.h"
|
| +#include "chrome/browser/chromeos/login/owner_key_utils.h"
|
| +#include "chrome/browser/chromeos/login/owner_manager.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +class OwnershipService {
|
| + public:
|
| + // Returns the singleton instance of the OwnershipService.
|
| + static OwnershipService* GetSharedInstance();
|
| + virtual ~OwnershipService();
|
| +
|
| + bool IsAlreadyOwned();
|
| +
|
| + // If the device has been owned already, posts a task to the FILE thread to
|
| + // fetch the public key off disk.
|
| + // Returns true if the attempt was initiated, false otherwise.
|
| + //
|
| + // Sends out a OWNER_KEY_FETCH_ATTEMPT_SUCCESS notification on success,
|
| + // OWNER_KEY_FETCH_ATTEMPT_FAILED on failure.
|
| + bool StartLoadOwnerKeyAttempt();
|
| +
|
| + // If the device has not yet been owned, posts a task to the FILE
|
| + // thread to generate the owner's keys and put them in the right
|
| + // places. Keeps them in memory as well, for later use.
|
| + // Returns true if the attempt was initiated, false otherwise.
|
| + //
|
| + // Sends out a OWNER_KEY_FETCH_ATTEMPT_SUCCESS notification on success,
|
| + // OWNER_KEY_FETCH_ATTEMPT_FAILED on failure.
|
| + bool StartTakeOwnershipAttempt();
|
| +
|
| + // Initiate an attempt to sign |data| with |private_key_|. Will call
|
| + // d->OnKeyOpComplete() when done. Upon success, the signature will be passed
|
| + // as the |payload| argument to d->OnKeyOpComplete().
|
| + // Returns true if the attempt was initiated, false otherwise.
|
| + //
|
| + // If you call this on a well-known thread, you'll be called back on that
|
| + // thread. Otherwise, you'll get called back on the UI thread.
|
| + bool StartSigningAttempt(const std::string& data, OwnerManager::Delegate* d);
|
| +
|
| + // Initiate an attempt to verify that |signature| is valid over |data| with
|
| + // |public_key_|. When the attempt is completed, an appropriate KeyOpCode
|
| + // will be passed to d->OnKeyOpComplete().
|
| + // Returns true if the attempt was initiated, false otherwise.
|
| + //
|
| + // If you call this on a well-known thread, you'll be called back on that
|
| + // thread. Otherwise, you'll get called back on the UI thread.
|
| + bool StartVerifyAttempt(const std::string& data,
|
| + const std::string& signature,
|
| + OwnerManager::Delegate* d);
|
| +
|
| + private:
|
| + friend struct DefaultSingletonTraits<OwnershipService>;
|
| + friend class OwnershipServiceTest;
|
| +
|
| + OwnershipService();
|
| +
|
| + scoped_refptr<OwnerManager> manager_;
|
| + scoped_refptr<OwnerKeyUtils> utils_;
|
| +};
|
| +
|
| +} // namespace chromeos
|
| +
|
| +#endif // CHROME_BROWSER_CHROMEOS_LOGIN_OWNERSHIP_SERVICE_H_
|
|
|