Index: chromeos/cryptohome/cryptohome_parameters.h |
diff --git a/chromeos/cryptohome/cryptohome_parameters.h b/chromeos/cryptohome/cryptohome_parameters.h |
index 3738b56bce8870607b828197b32cfd6552119f30..ef2f9f14a35a27b9f1f2b868efcced7bb1a979e7 100644 |
--- a/chromeos/cryptohome/cryptohome_parameters.h |
+++ b/chromeos/cryptohome/cryptohome_parameters.h |
@@ -10,9 +10,12 @@ |
#include <string> |
#include <vector> |
+#include "base/containers/hash_tables.h" |
#include "base/memory/scoped_ptr.h" |
#include "chromeos/chromeos_export.h" |
+class AccountId; |
+ |
namespace cryptohome { |
enum AuthKeyPrivileges { |
@@ -25,12 +28,25 @@ enum AuthKeyPrivileges { |
}; |
// Identification of the user calling cryptohome method. |
-struct CHROMEOS_EXPORT Identification { |
- explicit Identification(const std::string& user_id); |
+class CHROMEOS_EXPORT Identification { |
+ public: |
+ Identification(); |
+ |
+ explicit Identification(const AccountId& account_id); |
bool operator==(const Identification& other) const; |
- std::string user_id; |
+ // This method should be used for migration purpose only. |
+ static Identification FromString(const std::string& id); |
+ |
+ const std::string& id() const { return id_; } |
+ |
+ bool operator<(const Identification& right) const; |
+ |
+ private: |
+ explicit Identification(const std::string&); |
+ |
+ std::string id_; |
}; |
// Definition of the key (e.g. password) for the cryptohome. |
@@ -145,6 +161,25 @@ class CHROMEOS_EXPORT MountParameters { |
std::vector<KeyDefinition> create_keys; |
}; |
+// This function returns true if cryptohome of |account_id| is migrated to |
+// gaiaId-based identifier (AccountId::GetGaiaIdKey()). |
+bool GetGaiaIdMigrationStatus(const AccountId& account_id); |
+ |
+// This function marks |account_id| cryptohome migrated to gaiaId-based |
+// identifier (AccountId::GetGaiaIdKey()). |
+void SetGaiaIdMigrationStatusDone(const AccountId& account_id); |
+ |
} // namespace cryptohome |
+namespace BASE_HASH_NAMESPACE { |
+ |
+// Implement hashing of cryptohome::Identification, so it can be used as a key |
+// in STL containers. |
+template <> |
+struct hash<cryptohome::Identification> { |
+ std::size_t operator()(const cryptohome::Identification& cryptohome_id) const; |
+}; |
+ |
+} // namespace BASE_HASH_NAMESPACE |
+ |
#endif // CHROMEOS_CRYPTOHOME_CRYPTOHOME_PARAMETERS_H_ |