Index: chrome/browser/chromeos/login/quick_unlock/pin_storage_prefs.h |
diff --git a/chrome/browser/chromeos/login/quick_unlock/pin_storage.h b/chrome/browser/chromeos/login/quick_unlock/pin_storage_prefs.h |
similarity index 67% |
rename from chrome/browser/chromeos/login/quick_unlock/pin_storage.h |
rename to chrome/browser/chromeos/login/quick_unlock/pin_storage_prefs.h |
index e147bda0e366360cd14cb96788cdcff5f1c3660f..14c82ec7c78d298839958dea1505985344dd4e2e 100644 |
--- a/chrome/browser/chromeos/login/quick_unlock/pin_storage.h |
+++ b/chrome/browser/chromeos/login/quick_unlock/pin_storage_prefs.h |
@@ -2,16 +2,15 @@ |
// 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_QUICK_UNLOCK_PIN_STORAGE_H_ |
-#define CHROME_BROWSER_CHROMEOS_LOGIN_QUICK_UNLOCK_PIN_STORAGE_H_ |
+#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_QUICK_UNLOCK_PIN_STORAGE_PREFS_H_ |
+#define CHROME_BROWSER_CHROMEOS_LOGIN_QUICK_UNLOCK_PIN_STORAGE_PREFS_H_ |
#include <string> |
-#include "base/gtest_prod_util.h" |
-#include "base/time/time.h" |
+#include "base/macros.h" |
class PrefRegistrySimple; |
-class PrefService; |
+class Profile; |
namespace chromeos { |
@@ -21,53 +20,63 @@ namespace quick_unlock { |
class QuickUnlockStorage; |
-class PinStorage { |
+class PinStoragePrefs { |
public: |
- // TODO(sammiequon): Pull this value in from policy. See crbug.com/612271. |
static const int kMaximumUnlockAttempts = 3; |
// Registers profile prefs. |
static void RegisterProfilePrefs(PrefRegistrySimple* registry); |
- explicit PinStorage(PrefService* pref_service); |
- ~PinStorage(); |
- |
- // Add a PIN unlock attempt count. |
- void AddUnlockAttempt(); |
- // Reset the number of unlock attempts to 0. |
- void ResetUnlockAttemptCount(); |
- // Returns the number of unlock attempts. |
- int unlock_attempt_count() const { return unlock_attempt_count_; } |
+ explicit PinStoragePrefs(Profile* profile); |
+ ~PinStoragePrefs(); |
// Returns true if a pin is set. |
bool IsPinSet() const; |
- // Sets the pin to the given value; IsPinSet will return true. |
+ |
+ // Sets the pin to the given value. |
void SetPin(const std::string& pin); |
+ |
// Removes the pin; IsPinSet will return false. |
void RemovePin(); |
- private: |
- friend class chromeos::PinStorageTestApi; |
- friend class QuickUnlockStorage; |
- |
// Is PIN entry currently available? |
bool IsPinAuthenticationAvailable() const; |
// Tries to authenticate the given pin. This will consume an unlock attempt. |
// This always returns false if IsPinAuthenticationAvailable returns false. |
+ // |
+ // This is a no-op for cryptohome implementation (standard password flow works |
+ // there). |
bool TryAuthenticatePin(const std::string& pin); |
+ // Implementation should return true if it needs strong auth support, ie, the |
+ // user has to type their password every x hours. |
+ bool NeedsStrongAuth() const; |
+ |
+ // Add a PIN unlock attempt count. |
+ void AddUnlockAttempt(); |
+ |
+ // Reset the unlock attempt count to 0. Not applicable to all implementations. |
+ void ResetUnlockAttemptCount(); |
+ |
+ // Returns the number of unlock attempts. |
+ int unlock_attempt_count() const { return unlock_attempt_count_; } |
+ |
+ private: |
+ friend class chromeos::PinStorageTestApi; |
+ friend class QuickUnlockStorage; |
+ |
// Return the stored salt/secret. This is fetched directly from pref_service_. |
std::string PinSalt() const; |
std::string PinSecret() const; |
- PrefService* pref_service_; |
+ Profile* profile_; |
int unlock_attempt_count_ = 0; |
- DISALLOW_COPY_AND_ASSIGN(PinStorage); |
+ DISALLOW_COPY_AND_ASSIGN(PinStoragePrefs); |
}; |
} // namespace quick_unlock |
} // namespace chromeos |
-#endif // CHROME_BROWSER_CHROMEOS_LOGIN_QUICK_UNLOCK_PIN_STORAGE_H_ |
+#endif // CHROME_BROWSER_CHROMEOS_LOGIN_QUICK_UNLOCK_PIN_STORAGE_PREFS_H_ |