diff options
author | Andres Morales <anmorales@google.com> | 2015-06-01 09:59:05 -0700 |
---|---|---|
committer | Andres Morales <anmorales@google.com> | 2015-06-03 18:24:36 -0700 |
commit | e1f827fc1fb2e4a632d77bdd19c2741caa120e8a (patch) | |
tree | 417c1fc3048fa55313637087ab97e534fbd4d9d5 | |
parent | e2452b4bf3c247fbfd759d047e3c5dedfb6f3202 (diff) | |
download | core-e1f827fc1fb2e4a632d77bdd19c2741caa120e8a.tar.gz core-e1f827fc1fb2e4a632d77bdd19c2741caa120e8a.tar.bz2 core-e1f827fc1fb2e4a632d77bdd19c2741caa120e8a.zip |
[gatekeeperd] track gk failure record changes
Bug:21118563
Change-Id: Ia726dc4db6ec5c6a1e8e08a689ec82568ff1e5aa
-rw-r--r-- | gatekeeperd/SoftGateKeeper.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/gatekeeperd/SoftGateKeeper.h b/gatekeeperd/SoftGateKeeper.h index 1ae45e633..e5544114a 100644 --- a/gatekeeperd/SoftGateKeeper.h +++ b/gatekeeperd/SoftGateKeeper.h @@ -53,14 +53,20 @@ public: virtual bool GetAuthTokenKey(const uint8_t **auth_token_key, uint32_t *length) const { if (auth_token_key == NULL || length == NULL) return false; - *auth_token_key = const_cast<const uint8_t *>(key_.get()); + uint8_t *auth_token_key_copy = new uint8_t[SIGNATURE_LENGTH_BYTES]; + memcpy(auth_token_key_copy, key_.get(), SIGNATURE_LENGTH_BYTES); + + *auth_token_key = auth_token_key_copy; *length = SIGNATURE_LENGTH_BYTES; return true; } virtual void GetPasswordKey(const uint8_t **password_key, uint32_t *length) { if (password_key == NULL || length == NULL) return; - *password_key = const_cast<const uint8_t *>(key_.get()); + uint8_t *password_key_copy = new uint8_t[SIGNATURE_LENGTH_BYTES]; + memcpy(password_key_copy, key_.get(), SIGNATURE_LENGTH_BYTES); + + *password_key = password_key_copy; *length = SIGNATURE_LENGTH_BYTES; } @@ -94,7 +100,8 @@ public: return false; } - virtual bool GetFailureRecord(uint32_t uid, secure_id_t user_id, failure_record_t *record) { + virtual bool GetFailureRecord(uint32_t uid, secure_id_t user_id, failure_record_t *record, + bool /* secure */) { failure_record_t *stored = &failure_map_[uid]; if (user_id != stored->secure_user_id) { stored->secure_user_id = user_id; @@ -105,20 +112,21 @@ public: return true; } - virtual void ClearFailureRecord(uint32_t uid, secure_id_t user_id) { + virtual bool ClearFailureRecord(uint32_t uid, secure_id_t user_id, bool /* secure */) { failure_record_t *stored = &failure_map_[uid]; stored->secure_user_id = user_id; stored->last_checked_timestamp = 0; stored->failure_counter = 0; + return true; } - virtual bool WriteFailureRecord(uint32_t uid, failure_record_t *record) { + virtual bool WriteFailureRecord(uint32_t uid, failure_record_t *record, bool /* secure */) { failure_map_[uid] = *record; return true; } private: - UniquePtr<uint8_t> key_; + UniquePtr<uint8_t[]> key_; std::unordered_map<uint32_t, failure_record_t> failure_map_; }; } |