Chromium Code Reviews| Index: chromeos/cryptohome/cryptohome_library.h |
| diff --git a/chrome/browser/chromeos/cros/cryptohome_library.h b/chromeos/cryptohome/cryptohome_library.h |
| similarity index 53% |
| rename from chrome/browser/chromeos/cros/cryptohome_library.h |
| rename to chromeos/cryptohome/cryptohome_library.h |
| index d6221a8f2d85c3180d51d404b1819ffea2fdb0be..1f78123cc95fd698dfdaa7b4d60ff69e93bac4b0 100644 |
| --- a/chrome/browser/chromeos/cros/cryptohome_library.h |
| +++ b/chromeos/cryptohome/cryptohome_library.h |
| @@ -2,18 +2,35 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef CHROME_BROWSER_CHROMEOS_CROS_CRYPTOHOME_LIBRARY_H_ |
| -#define CHROME_BROWSER_CHROMEOS_CROS_CRYPTOHOME_LIBRARY_H_ |
| +#ifndef CHROMEOS_CRYPTOHOME_CRYPTOHOME_LIBRARY_H_ |
| +#define CHROMEOS_CRYPTOHOME_CRYPTOHOME_LIBRARY_H_ |
| #include <string> |
| +#include "base/basictypes.h" |
| +#include "chromeos/chromeos_export.h" |
| + |
| namespace chromeos { |
| // This interface defines the interaction with the ChromeOS cryptohome library |
| // APIs. |
| -class CryptohomeLibrary { |
| +class CHROMEOS_EXPORT CryptohomeLibrary { |
| public: |
| - CryptohomeLibrary(); |
| + // Manage an explicitly initialized global instance. |
| + static void Initialize(); |
| + static bool IsInitialized(); |
| + static void Shutdown(); |
| + static CryptohomeLibrary* Get(); |
| + |
| + // Sets up Get() to return |impl| for testing (e.g. with a mock |
| + // implementation). Call SetForTest(NUL) when |impl| is deleted. |
|
Mattias Nissler (ping if slow)
2013/04/22 09:43:40
NULL
stevenjb
2013/04/22 16:54:30
Done.
|
| + static void SetForTest(CryptohomeLibrary* impl); |
| + |
| + // Returns a CryptohomeLibrary instace for testing. Does not set or affect |
|
Mattias Nissler (ping if slow)
2013/04/22 09:43:40
instance
stevenjb
2013/04/22 16:54:30
Done.
|
| + // the global instance. |
| + static CryptohomeLibrary* GetTestImpl(); |
| + |
| + // Public so that result of GetTestImpl can be destroyed. |
| virtual ~CryptohomeLibrary(); |
| // Wrappers of the functions for working with Tpm. |
| @@ -45,11 +62,23 @@ class CryptohomeLibrary { |
| // Returns system hash in hex encoded ascii format. |
| virtual std::string GetSystemSalt() = 0; |
| - // Factory function, creates a new instance and returns ownership. |
| - // For normal usage, access the singleton via CrosLibrary::Get(). |
| - static CryptohomeLibrary* GetImpl(bool stub); |
| + // Encrypts |token| with the system salt key (stable for the lifetime |
| + // of the device). Useful to avoid storing plain text in place like |
| + // Local State. |
| + virtual std::string EncryptWithSystemSalt(const std::string& token) = 0; |
| + |
| + // Decrypts |token| with the system salt key (stable for the lifetime |
| + // of the device). |
| + virtual std::string DecryptWithSystemSalt( |
| + const std::string& encrypted_token_hex) = 0; |
| + |
| + protected: |
| + CryptohomeLibrary(); |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(CryptohomeLibrary); |
| }; |
| } // namespace chromeos |
| -#endif // CHROME_BROWSER_CHROMEOS_CROS_CRYPTOHOME_LIBRARY_H_ |
| +#endif // CHROMEOS_CRYPTOHOME_CRYPTOHOME_LIBRARY_H_ |