1. 23 Jun, 2015 2 commits
    • Alex Klyubin's avatar
      Abort operation pruning only if it fails to make space. · 700c1a35
      Alex Klyubin authored
      keystore service's begin operation may sometimes encounter a situation
      where the underlying device's begin operation fails because of too
      many operations in progress. In that case, keystore attempts to prune
      the oldest pruneable operation by invoking the underlying device's
      abort operation. Regardless of whether the abort operation fails,
      keystore then removes the operation from the list of in-progress
      prunable operations.
      
      The issue is that when the underlying device's abort operation fails,
      keystore fails the begin operation that caused all this prunining.
      This is despite the fact that keystore has managed to make space for
      one more operation.
      
      The fix is to fail the begin operation only if the pruning attempt
      did not make space for a a new operation.
      
      Bug: 22040842
      Change-Id: Id98b2c6690de3cfb2a7b1d3bdd10742cc59ecbfa
      700c1a35
    • Alex Klyubin's avatar
      Fully support uint64 key validity dates. · 53752414
      Alex Klyubin authored
      This fixes the issue where, on 32-bit platforms, keys expiring after
      about 2^31 - 1 seconds since epoch (Jan 19 2038) might be treated as
      already expired.
      
      The issue was caused by using time_t (signed 32-bit on 32-bit
      platforms) as current time and downcasting uint64 activation and
      expiration time instants to time_t to compare them to current time.
      This downcasting could make future time instants appear to be in the
      past on 32-bit platforms.
      
      Bug: 22015107
      Change-Id: Iae12019c3c019beb92d791fda80b622fa5c4ac4e
      53752414
  2. 20 Jun, 2015 1 commit
  3. 18 Jun, 2015 2 commits
  4. 17 Jun, 2015 1 commit
  5. 08 Jun, 2015 1 commit
    • Chad Brubaker's avatar
      Rewrite legacy methods in terms of new methods · 3a7d9e62
      Chad Brubaker authored
      Rewrite generate, import, get_pubkey, sign and verify using the new
      keymaster 1.0 methods (generateKey, exportKey, and begin/update/finish).
      
      This also removed DSA support from generate and import.
      
      Change-Id: I6c6baec4aa86325a2b9c171b9883ba5a0b47236e
      3a7d9e62
  6. 04 Jun, 2015 3 commits
  7. 03 Jun, 2015 3 commits
  8. 02 Jun, 2015 1 commit
  9. 01 Jun, 2015 1 commit
    • Chad Brubaker's avatar
      Use keymaster adapter to support older devices · bd07a239
      Chad Brubaker authored
      The keymaster adapter wraps the hardware module to allow keystore to
      call the new keymaster methods on it and continue using old keys created
      by that device with the new methods.
      
      Change-Id: Ica08d81c3707023d378ad5fe6562dc642f58ca90
      bd07a239
  10. 28 May, 2015 1 commit
  11. 23 May, 2015 1 commit
  12. 19 May, 2015 1 commit
  13. 18 May, 2015 1 commit
    • Chad Brubaker's avatar
      Cleanup keystore API · e6c3bfa8
      Chad Brubaker authored
      Remove old methods that were replaced by onUser* methods, rename methods
      with unclear names, and add userId parameters to all operations that
      operate with per user state.
      
      (cherry-picked from commit 94436163)
      
      Change-Id: I846fbb0a5ad17b4ee4c0c759fd1fd23f58b88d78
      e6c3bfa8
  14. 13 May, 2015 2 commits
    • Chad Brubaker's avatar
      Add onUserAdded/Removed methods · c0f031a8
      Chad Brubaker authored
      These will handle the logic of Android users being added/removed from
      the device instead of the system calling the various reset/sync methods.
      
      (cherry-picked from commit fd777e71)
      
      Change-Id: Ic6be0de63cc1b0579a46e7101dcfeb1a9ffa4738
      c0f031a8
    • Chad Brubaker's avatar
      Refactor uids to user ids where appropriate · 72593ee8
      Chad Brubaker authored
      UserState related methods previously took uid's while the state was
      based on userId, with the new keystore methods taking userIds start
      moving everything in that direction.
      
      (cherry-picked from commit 4efce0dc)
      
      Change-Id: I075e973e2403575ba67e8e7a8c331a6c6f7e88e4
      72593ee8
  15. 07 May, 2015 1 commit
    • Chad Brubaker's avatar
      Cleanup password change and removal logic. · 96d6d786
      Chad Brubaker authored
      Replace password with notifyUserPasswordChanged for password changes,
      unlock should now be used to unlock keystore instead of calling password
      with the current password.
      
      When the user removes their password now only keystore entries that were
      created with FLAG_ENCRYPTED will be deleted. Unencrypted entries will
      remain. This makes it more concrete that the keystore could be non-empty
      while in STATE_UNINITIALIZED, though this was previously possible due to
      the state only being checked if FLAG_ENCRYPTED was set.
      
      Change-Id: I324914c00195d762cbaa8c63084e41fa796b7df8
      96d6d786
  16. 01 May, 2015 1 commit
  17. 30 Apr, 2015 3 commits
  18. 28 Apr, 2015 1 commit
    • Chad Brubaker's avatar
      Move auth token checking to begin · 0cf34a24
      Chad Brubaker authored
      Auth tokens will now be checked on begin and then used for all
      subsequent calls for that operation, this means that things like
      auth timeouts will only be checked on begin, and operation that starts
      at timeout - .00001 will now be able to be used to completion.
      
      One exception to this is keys that use per operation authorization.
      Begin for these operations must succeed so that the application gets a
      handle to authorize. For those keys if the application calls update
      before authorizing the operation the call will fail. For these keys
      begin will return OP_AUTH_NEEDED so let the caller know more work is
      needed before using the operation.
      
      (cherry picked from commit aebbfc2b)
      
      Change-Id: I3da4f93a076c0ed2d8630ca8cd1608e9bad2c2ff
      0cf34a24
  19. 18 Apr, 2015 5 commits
  20. 17 Apr, 2015 3 commits
  21. 16 Apr, 2015 5 commits