History log of /frameworks/base/keystore/java/android/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5c38e7918aea36ee8f516793d5641b05a8de710e 08-Jul-2015 Alex Klyubin <klyubin@google.com> Reject AlgorithmParameters of wrong type.

This makes Android Keystore Cipher implementations reject rather than
ignore AlgorithmParameters of wrong algorithm type. The danger in not
doing so is that a Cipher will produce output that does not actually
depend on the provided AlgorithmParameters.

Bug: 22330716
Change-Id: Ifa9de2c74f2fe4b738a3731c895059dddd075a13
/frameworks/base/keystore/java/android/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi.java
ae6cb7aad56bb006769cd8a69b92af7236644fc1 23-Jun-2015 Alex Klyubin <klyubin@google.com> Keymaster INT, LONG and DATE tag values are unsigned.

This CL ensures that Android Keystore framework code complies with
signedness of keymaster tags. In particular:
* INT tags are unsigned 32-bit numbers, and
* LONG and DATE tags are unsigned 64-bit numbers.

The ensure compliance, KeymasterArguments and KeyCharacteristics
classes through which Android Keystore interacts with Keymaster tags
have been modified as follows:
* ENUM and INT tags which used to be conflated are now added/queried
via separate methods, because ENUM can remain represented as an int
data type whereas INT is now represented as a long data type with
permitted range being [0; 2^32).
* Methods for adding/quering LONG tags have been switched from the long
data type to the BigInteger data type and now ensure that the value
is in the permitted [0; 2^63).
* Methods for adding/querying DATE tags now ensure the Date value is
in the permitted range [0; 2^63) ms since Unix epoch.
* Methods for adding tags throw an IllegalArgumentException if the tag
type is unsuitable for the method. This is to ensure that tags with
invalid values cannot be added through similar methods (e.g., INT tag
added via an ENUM tag addition method invoked with a negative value).

Bug: 22008538
Change-Id: I6eefd5cbb561cc52d27de952691af4d9d5e1af1e
/frameworks/base/keystore/java/android/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi.java
00af27b7d9010eb41e45959dab7c4ff6de119897 02-Jun-2015 Alex Klyubin <klyubin@google.com> Expose AES GCM backed by Android Keystore.

Bug: 18088752
Bug: 21786749
Change-Id: Ica90491037d2920f7635195894ba18882fc4406d
/frameworks/base/keystore/java/android/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi.java
a72b55195c23fc06d1600efe8f6aac85290c7f8f 12-Jun-2015 Alex Klyubin <klyubin@google.com> Obtain entropy later in crypto operations, when possible.

This makes Android Keystore crypto operations defer pulling entropy
from provided SecureRandom until KeyStore.finish, where appropriate.
Such as when performing asymmetric encryption or generating
signatures.

Bug: 18088752
Change-Id: I4a897754e9a846214cf0995c5514f98cf0edd76b
/frameworks/base/keystore/java/android/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi.java
7cbcfd4fc1e538bd391a20cdd00dd1494ace2d0e 28-May-2015 Alex Klyubin <klyubin@google.com> Refactor Android Keystore CipherSpi base class.

This makes Android Keystore's CipherSpi base class suitable for
implementing AES and RSA ciphers. Previously, the class was heavily
biased towards only AES.

Bug: 18088752
Change-Id: I6bd1ca54165592d28482e56471dcfe0344337cf4
/frameworks/base/keystore/java/android/security/keystore/AndroidKeyStoreUnauthenticatedAESCipherSpi.java