History log of /frameworks/base/keystore/java/android/security/KeyStoreParameter.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
09a3b7f2ac3568860e1a6a08532ce31ec4b1fc14 26-May-2015 Alex Klyubin <klyubin@google.com> Remove KeyStoreParameter.getContext().

This method isn't there in the released API and we don't need it in
the new API.

Bug: 18088752
Change-Id: Iccd80715bec782ac3a12bea169df4d37264f66f9
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
3f8d4d840894468f2be8a5b56ff266cef2d71c50 13-May-2015 Alex Klyubin <klyubin@google.com> New AndroidKeyStore API in android.security.keystore.

This CL addresses the comments from API Council about Android KeyStore
KeyPairGeneratorSpec, KeyGeneratorSpec and KeyStoreParameter:
1. These abstractions should not take or hold references to Context.
2. The Builders of these abstractions should take all mandatory
parameters in their constructors rather than expose them as
setters -- only optional paratemers should be exposed via setters.

These comments cannot be addressed without deprecation in the already
launched KeyPairGeneratorSpec and KeyStoreParameter. Instead of
deprecating just the getContext methods and Builder constructors, this
CL goes for the nuclear option of deprecating KeyPairGeneratorSpec and
KeyStoreParameter as a whole and exposing all of the AndroidKeyStore
API in the new package android.security.keystore. This enables this CL
to correct all of the accrued design issues with KeyPairGeneratorSpec
(e.g., naming of certificate-related methods) and KeyStoreParameter.

This also makes the transition to API Level M more clear for existing
users of the AndroidKeyStore API. These users will only have to deal
with the new always-mandatory parameters (e.g., purposes) and
sometimes-mandatory (e.g., digests, block modes, paddings) if they
switch to the new API. Prior to this CL they would've had to deal with
this if they invoked any of the new methods of KeyPairGeneratorSpec
or KeyStoreParameter introduced in API Level M.

This CL rips out all the new API introduced into KeyPairGeneratorSpec
and KeyStoreParameter classes for Android M, thus reverting these
classes to the API launched in L MR1. This is because the new API is
now in android.security.keystore.KeyGenParameterSpec and KeyProtection
respectively.

Bug: 21039983
Change-Id: I59672b3c6ef7bc25c40aa85f1c47d9d8a05d627c
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
622fd932fd33c6e86c86c8a24082674ad077a810 12-May-2015 Alex Klyubin <klyubin@google.com> Flatten KeyStoreKeyProperties constants.

This moves constants/flags declared in inner classes of
KeyStoreKeyProperties into KeyStoreKeyProperties, as requested by API
Council.

Bug: 21039983
Change-Id: I84a3c983e13644a027bed9f605ab8044220a352c
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
e3049dc953acd5d477c159be8e8b0548bae60cab 11-May-2015 Alex Klyubin <klyubin@google.com> Link to magic constants used by AndroidKeyStore API.

This updates the Javadocs of AndroidKeyStore methods which take
constants defined in KeyStoreKeyProperties to contain a link to
the corresponding set of constants and an example of a couple of
accepted constants, to make it easier to understand and find out
what constants to use.

Bug: 18088752
Change-Id: I338134ef136db62a7caca782cb59dbebdc996670
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
54bb1596e470144932943046ec7a99551d020ba0 11-May-2015 Alex Klyubin <klyubin@google.com> Add NonNull and Nullable annotations to AndroidKeyStore API.

This is to enable Android Lint and Android Studio to flag nullness
issues at compile time.

Bug: 18088752
Change-Id: I21033b8fcdd989d08c89b50685e47fbb9c74acbf
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
5418393c58d1d80fe37a209ab931f6d56bd46a86 09-May-2015 Alex Klyubin <klyubin@google.com> Document when encrypted AndroidKeyStore keys are wiped.

This also drops the boolean parameter from
KeyGeneratorSpec.Builder.setEncryptionRequired to match the already
launched KeyPairGeneratorSpec.Builder.setEncryptionRequired.

Bug: 18088752
Change-Id: I91a3e8c77958971b1bda8329319f1a0d8043b669
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
eedda45ad7d829b4d65936d33e8aa6fa9c9c1ecd 08-May-2015 Alex Klyubin <klyubin@google.com> More Javadocs for AndroidKeyStore public classes.

This adds more detailed class-level Javadocs (incl. examples) for the
following public API of Android KeyStore facility:
* KeyPairGeneratorSpec,
* KeyGeneratorSpec,
* KeyStoreParameter,
* KeyStoreKeySpec.

This also clarifies what encryption at rest means.

Bug: 18088752
Change-Id: I9951a528c34dea322534763b596902a2b6ac64f9
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
ca84b19f10d5cb6bbaca1f71077bcaea5c84bdc1 07-May-2015 Alex Klyubin <klyubin@google.com> Document that new APIs for asymmetric crypto have no effect.

Bug: 18088752
Change-Id: Idfcf57251e76185425b9271d6a2001c5556f9f59
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
f555887237665fd2cd16182e63dd7ff5f4b7e708 07-May-2015 Alex Klyubin <klyubin@google.com> Merge "Adjust the Javadoc for user authentication timeout." into mnc-dev
27dd1a22275e92afed612655822438ab3df15356 07-May-2015 Alex Klyubin <klyubin@google.com> Adjust the Javadoc for user authentication timeout.

The Javadoc incorrectly stated that:
* 0 means authentication required for every use.
* -1 means that timeout is not specified and the key can be any time.

Bug: 18088752
Change-Id: Ie5f37e74dc207f23443527ac1725ae8a37213d75
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
4d5443f37f2bc58be8d22ed50024c39a5a1fbc8f 07-May-2015 Alex Klyubin <klyubin@google.com> Define String constants for AndroidKeyStore crypto.

This defines the String enum values based on JCA standard names for
key algorithm, block mode, padding schemes, and digests. This should
make it safer to interact with AndroidKeyStore code that uses JCA
strings. This was requested by API Council.

Bug: 18088752
Change-Id: I241d9225a13b85479d0a84e49d0a98cbc77e5817
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
1eda77ae2122e2b85084eb429fbeecec0b9962e5 28-Apr-2015 Alex Klyubin <klyubin@google.com> Align AndroidKeyStore API with user auth API.

This simplifies the AndroidKeyStore API around user authentication: no
more explicit control over which user authenticators are bound to
which keys.

User-authenticated keys with timeout are unlocked by whatever unlocks
the secure lock screen (currently, password/PIN/pattern or
fingerprint). User-authenticated keys that need authentication for
every use are unlocked by fingerprint only.

Bug: 20526234
Bug: 20642549
Change-Id: I1e5e6c988f32657d820797ad5696797477a9ebe9
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
9b3e005a4ebd94af2d234cc5470e9691437d3888 13-Apr-2015 Alex Klyubin <klyubin@google.com> Unhide the new AndroidKeyStore API.

Bug: 18088752
Change-Id: I93f87cbb1cd04a4a2e34f3d544d678c92cf052ee
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
fbf1472d613572d991bc9d68ded4c9e937f13586 13-Apr-2015 Alex Klyubin <klyubin@google.com> resolved conflicts for merge of a978a3d6 to master

Change-Id: Ifd7ca9e1dfa0d50a87f2bafef377fcaeb5d9f6d5
5927c9f1b12f597839a664c1c6593114175cbcd8 10-Apr-2015 Alex Klyubin <klyubin@google.com> Use JCA names for block modes, paddings, and digests.

This replaces int-based enums from KeyStoreKeyConstraints with
String values commonly used in JCA API.

As part of under the hood refactoring:
* KeyStoreKeyCharacteristics and KeyStoreKeyConstraints have been
merged into KeyStoreKeyProperties.
* KeymasterUtils methods operating on KeymasterArguments and
KeymasterCharacteristics have been moved to their respective
classes.

Bug: 18088752
Change-Id: I9c8b984cb3c28184adb617e34d87f2837bd1d3a1
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
43de2a9b521611926810ec53332a08e786a7b5f3 10-Apr-2015 Alex Klyubin <klyubin@google.com> am 4acc3392: am 8676a88e: am 97d2d7c4: Merge "Fix minor issues in new Javadocs of AndroidKeyStore."

* commit '4acc3392c35e5ad98c8e7b650b1368a2956746b7':
Fix minor issues in new Javadocs of AndroidKeyStore.
7882a7fcd4e236be1d569cdf657db2b072dfb28a 09-Apr-2015 Alex Klyubin <klyubin@google.com> Fix minor issues in new Javadocs of AndroidKeyStore.

Bug: 18088752
Change-Id: Ie84cc6066c82f2659da17a1eb158c2e3acf5094d
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
52f57de9f618f4b3303fb9b59084e775f5312984 09-Apr-2015 Alex Klyubin <klyubin@google.com> am bbf3cc57: am fd168151: am e26347bb: Merge "Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired."

* commit 'bbf3cc5797293dc915d7ecfe41e85bbe5682548d':
Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired.
b30cc6c3e87e56fc939051ff8d41442a988ff20c 09-Apr-2015 Alex Klyubin <klyubin@google.com> resolved conflicts for merge of b9a9d46c to master

Change-Id: Ibec45f0f8f9618dd7bd1b34561dccbdd9599cdeb
223977b914b0bb07d19e6f8f49b16ce3118c91ff 09-Apr-2015 Alex Klyubin <klyubin@google.com> Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired.

This wasn't meant to be public API yet.

Bug: 18088752
Change-Id: I40e57fd9121348086ae88ad9fa54f930547b77ba
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
f853f649981ed3cf2f1fbf1363a0932e9736daf6 08-Apr-2015 Alex Klyubin <klyubin@google.com> Require IND-CPA by default for new AndroidKeyStore keys.

Bug: 18088752
Change-Id: I01e44b7155df4326b5c9d83dda57f889c1f23ec7
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
1620a65d32251ca058b60cb2751394e9ee1f0019 07-Apr-2015 Alex Klyubin <klyubin@google.com> resolved conflicts for merge of 06adabdb to master

Change-Id: Ifb09e2e6242f79cabe76e95eacc982f6cc7e1a6c
c46e9e7da4558f6bc99262361fd1ca35c3a44090 07-Apr-2015 Alex Klyubin <klyubin@google.com> Make the new AndroidKeyStore API conformant.

This makes the new AndroidKeyStore API conform with the latest
Keymaster API changes as well as the latest Android framework API
design guidelines.

Keymaster changes:
* Multiple paddings, block modes, and digests can be set on a key.
* "max uses per boot" and "min seconds between use" restrictions will
not be exposed in the framework API.
* Padding scheme ZERO will not be exposed.

Changes due to Android framework design guidelines:
* Sets of enum values have been replaced with bitsets represented as
ints.
* Integer has been replaced with int, with null being represented
with a special value (e.g., -1 or 0) where possible.

Bug: 18088752
Change-Id: Ib21739aa9b42d48895cb7a681e836a5c6d972ac6
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
7f5b87692b49a3ae674eda76d5fd77ab49b97409 02-Apr-2015 Alex Klyubin <klyubin@google.com> resolved conflicts for merge of e7e705d4 to master

Change-Id: If3e8c985f4f122f9fb36aab206787aac1407a74e
855fa31eb5ff68d131f3e496920594d875841cb0 02-Apr-2015 Alex Klyubin <klyubin@google.com> Expose new key use constraints in KeyPairGeneratorSpec.

The constraints are currently ignored.

Bug: 18088752
Change-Id: Iabd2018200afb2bf8ac1748d1def47af74bfb9d3
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
2ea13d42689ab10456a575772d069c91ae9b6075 01-Apr-2015 Alex Klyubin <klyubin@google.com> Add fingerprint-specific AndroidKeyStore API.

Bug: 18088752
Change-Id: I333d3ffc820d28ae678e28dafc2e8a24cb7eb073
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
baf2838fd2c7ddf517bd5bd9917551a4706af5b6 26-Mar-2015 Alex Klyubin <klyubin@google.com> Symmetric key import for AndroidKeyStore.

AES and HmacSHA256 symmetric keys can now be imported into
AndroidKeyStore. These keys cannot yet be used.

Bug: 18088752
Change-Id: Iad2fd49d15ac4c2d676abe1153f5b5f0b6ff496c
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
e37da759c521b156f0f2f8fecaa3cb52969674e2 11-Jun-2014 Robert Ly <robertly@google.com> am b1cb5aab: am 748856f2: am a7ddd029: am 80e84e2d: am f3cecfa2: am 55d525b2: am 716cc7dc: Add documentation for AndroidKeyStore

* commit 'b1cb5aabeb68815715eed423f1f9a7edb9a3e938':
Add documentation for AndroidKeyStore
716cc7dcac1bb9279326ab92a78a246b3a70de4e 08-May-2014 Robert Ly <robertly@google.com> Add documentation for AndroidKeyStore

Add exposition about the use cases for AndroidKeyStore and links to the
API sample application for different use cases.

Bug: 8608817
Change-Id: Ic4ce9405781c92f12687895b28c671661ea5524f
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
6090995951c6e2e4dcf38102f01793f8a94166e1 19-Nov-2013 John Spurlock <jspurlock@google.com> Remove unused imports from frameworks/base.

Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java
1c219f619291ba818bc2542390a2988539d94ed0 19-Apr-2013 Kenny Root <kroot@google.com> Rename API AndroidKey* -> Key*

Bug: 8657552
Change-Id: Id9102b7c2c2f6d27fba7645f0629750cfe1eb510
/frameworks/base/keystore/java/android/security/KeyStoreParameter.java