From e1f827fc1fb2e4a632d77bdd19c2741caa120e8a Mon Sep 17 00:00:00 2001 From: Andres Morales Date: Mon, 1 Jun 2015 09:59:05 -0700 Subject: [gatekeeperd] track gk failure record changes Bug:21118563 Change-Id: Ia726dc4db6ec5c6a1e8e08a689ec82568ff1e5aa --- gatekeeperd/SoftGateKeeper.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gatekeeperd/SoftGateKeeper.h b/gatekeeperd/SoftGateKeeper.h index 1ae45e6..e554411 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(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(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 key_; + UniquePtr key_; std::unordered_map failure_map_; }; } -- cgit v1.1