369 Commits

Author SHA1 Message Date
Alex Klyubin
338e74648d resolved conflicts for merge of 1d5a2592 to master
Change-Id: Ia1ea7c9c8c23eeffcd596b96506e961989ccb7a6
2015-04-14 14:23:07 -07:00
Alex Klyubin
8e5fbc70e1 am fa2bd4fe: am 888f5cb7: am ecfda064: Merge "Make specifying self-signed cert parameters optional."
* commit 'fa2bd4fe5c10b8132a155f0f8d0207435ca2c8dc':
  Make specifying self-signed cert parameters optional.
2015-04-14 20:43:54 +00:00
Alex Klyubin
d693690aee Merge "No need to specify EC curve name in EcIesParameterSpec." 2015-04-14 20:22:52 +00:00
Alex Klyubin
67d21aef98 Make specifying self-signed cert parameters optional.
This removes the need to specify the three parameters of the
self-signed certificate (serial number, subject, validity range) when
generating key pairs in AndroidKeyStore. This is achieved by
providing sensible defaults for these parameters:
* serial number: 1
* subject: CN=fake
* validity range: Jan 1 1970 to Jan 1 2048.

Bug: 18088752
Change-Id: I5df918b1ef8b26ed3ddd43828c4c78c9fa58cd43
2015-04-14 12:56:17 -07:00
Alex Klyubin
45d27836bd Add Keymaster KM_ORIGIN_UNKNOWN constant.
This tracks d359b044830b292f492f8a8df5471f869e358399 from
hardware/libhardware.

Bug: 18088752
Change-Id: I9a7bd8bdee51c18ae0427eff4efe036213d2b175
2015-04-14 10:52:34 -07:00
Alex Klyubin
9b3e005a4e Unhide the new AndroidKeyStore API.
Bug: 18088752
Change-Id: I93f87cbb1cd04a4a2e34f3d544d678c92cf052ee
2015-04-13 11:34:04 -07:00
Alex Klyubin
fbf1472d61 resolved conflicts for merge of a978a3d6 to master
Change-Id: Ifd7ca9e1dfa0d50a87f2bafef377fcaeb5d9f6d5
2015-04-13 10:54:53 -07:00
Alex Klyubin
33454dd569 No need to specify EC curve name in EcIesParameterSpec.
EC curve parameters will be obtained from the provided EC key.

Bug: 18088752
Change-Id: Ic99353a6566c8d4ce2b6b73d0309edaa40f84fa6
2015-04-13 10:20:24 -07:00
Alex Klyubin
d1af38a478 Merge "Use JCA names for block modes, paddings, and digests." 2015-04-13 17:01:30 +00:00
Alex Klyubin
5927c9f1b1 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
2015-04-13 09:59:04 -07:00
Alex Klyubin
0e67d0a1b0 am 651dbfde: am ad48c4c9: am c1c6528d: Merge "Add EcIesParameterSpec to enable ECIES crypto."
* commit '651dbfde73171ad6451dc8f9288fa4df50f99e4c':
  Add EcIesParameterSpec to enable ECIES crypto.
2015-04-11 02:56:44 +00:00
Alex Klyubin
c1c6528d2b Merge "Add EcIesParameterSpec to enable ECIES crypto." 2015-04-11 02:17:01 +00:00
Chad Brubaker
03c13e430d am 93976df8: am 3a9779b6: am 386c4e9e: Merge "Fix testSaw_ungrantedUid_Bluetooth"
* commit '93976df800641c9d56b73af6cb4bab9cc9a5f59e':
  Fix testSaw_ungrantedUid_Bluetooth
2015-04-10 22:26:25 +00:00
Alex Klyubin
0ee9376ef4 Add EcIesParameterSpec to enable ECIES crypto.
Bug: 18088752
Change-Id: I597b019106c500188e0fbbc9608722668c08b421
2015-04-10 14:57:28 -07:00
Chad Brubaker
386c4e9ea9 Merge "Fix testSaw_ungrantedUid_Bluetooth" 2015-04-10 21:42:23 +00:00
Chad Brubaker
6a5af8cf14 Fix testSaw_ungrantedUid_Bluetooth
Keystore.saw returns [] on no result, not null, so the test was
incorrectly failing.

Change-Id: I22dcf85c5d6c5c0368848bc784c3215c092d9ea8
2015-04-10 14:15:17 -07:00
Alex Klyubin
75f6f31db4 am d31d4771: am c5f9683c: am a270264c: Merge "Track more changes to keymaster_defs.h"
* commit 'd31d4771d90277eb246814b6a6f981e0842eb614':
  Track more changes to keymaster_defs.h
2015-04-10 18:29:53 +00:00
Alex Klyubin
55f7c2770f Track more changes to keymaster_defs.h
KeyStoreTest needed to be adjusted because OCB is no longer supported.

Bug: 18088752
Change-Id: I7594daaa5e97423d34726b07cc79e3ee28418d95
2015-04-10 08:58:38 -07:00
Alex Klyubin
8d33804b01 am 037dfb94: am 5f8c17b9: am ba2836e6: Merge "Track recent keymaster_defs.h changes."
* commit '037dfb9423a0988398b67520546dae5673aa54bb':
  Track recent keymaster_defs.h changes.
2015-04-10 04:34:13 +00:00
Alex Klyubin
2c5eaa0157 am 04a99c7b: am 82cba6aa: am c6eb6288: Merge "Split key origin into TEE/not and generated/imported."
* commit '04a99c7b4435598e4f9d53fadbe5faca4ad7ebdc':
  Split key origin into TEE/not and generated/imported.
2015-04-10 04:33:48 +00:00
Alex Klyubin
862e6c7814 Track recent keymaster_defs.h changes.
Bug: 18088752
Change-Id: If47bb7cc7a385941db9f12d478676594e9bc9d86
2015-04-09 16:58:58 -07:00
Alex Klyubin
b503c52f07 Split key origin into TEE/not and generated/imported.
This is to match the upcoming changes in Keymaster HAL API.

Bug: 18088752
Change-Id: I602d56d1c29a839583be1d9efa681a6fab6642db
2015-04-09 15:50:17 -07:00
Alex Klyubin
43de2a9b52 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.
2015-04-09 22:21:41 +00:00
Alex Klyubin
7882a7fcd4 Fix minor issues in new Javadocs of AndroidKeyStore.
Bug: 18088752
Change-Id: Ie84cc6066c82f2659da17a1eb158c2e3acf5094d
2015-04-09 14:33:11 -07:00
Alex Klyubin
981913babf am 098833c5: am ec01623b: am aeae0f38: Merge "Add asymmetric crypto constants for AndroidKeyStore API."
* commit '098833c59d8b3984e3983169b460198c2d5e2670':
  Add asymmetric crypto constants for AndroidKeyStore API.
2015-04-09 20:34:56 +00:00
Alex Klyubin
27077471a3 am c6112eb7: am 21c4e465: am 8c58ba87: Merge "Add missing mapping between JCA and keystore HMAC names."
* commit 'c6112eb7057f91df1f885da37564f89a423f64e4':
  Add missing mapping between JCA and keystore HMAC names.
2015-04-09 20:34:46 +00:00
Alex Klyubin
aeae0f384f Merge "Add asymmetric crypto constants for AndroidKeyStore API." 2015-04-09 20:02:39 +00:00
Alex Klyubin
8c58ba87bb Merge "Add missing mapping between JCA and keystore HMAC names." 2015-04-09 19:57:13 +00:00
Alex Klyubin
ccfea5024b Add asymmetric crypto constants for AndroidKeyStore API.
Bug: 18088752
Change-Id: Iee72a4c230f3a2cd30d9eb4d29c4301f3e113f31
2015-04-09 11:38:44 -07:00
Alex Klyubin
52f57de9f6 am bbf3cc57: am fd168151: am e26347bb: Merge "Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired."
* commit 'bbf3cc5797293dc915d7ecfe41e85bbe5682548d':
  Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired.
2015-04-09 17:31:16 +00:00
Alex Klyubin
5324702a02 Add missing mapping between JCA and keystore HMAC names.
This is a follow-up to 70376a77280551791dae62586a6bb0c77ed9429a where
I forgot to update this mapping.

Bug: 18088752
Change-Id: I322a9abd642ddee3bd2b4f49379b121012e32836
2015-04-09 10:10:34 -07:00
Alex Klyubin
b30cc6c3e8 resolved conflicts for merge of b9a9d46c to master
Change-Id: Ibec45f0f8f9618dd7bd1b34561dccbdd9599cdeb
2015-04-09 09:54:05 -07:00
Alex Klyubin
223977b914 Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired.
This wasn't meant to be public API yet.

Bug: 18088752
Change-Id: I40e57fd9121348086ae88ad9fa54f930547b77ba
2015-04-09 09:50:34 -07:00
Alex Klyubin
a482b0469c Merge "Require IND-CPA by default for new AndroidKeyStore keys." 2015-04-09 16:12:09 +00:00
Alex Klyubin
ada3e01313 am 2d81cb68: am 2cb1e1dc: am 1da3d7fc: Merge "Add more digests to AndroidKeyStore API."
* commit '2d81cb6824e186a6c76d0466e2d58eaa34312673':
  Add more digests to AndroidKeyStore API.
2015-04-09 01:16:38 +00:00
Alex Klyubin
f853f64998 Require IND-CPA by default for new AndroidKeyStore keys.
Bug: 18088752
Change-Id: I01e44b7155df4326b5c9d83dda57f889c1f23ec7
2015-04-08 16:28:27 -07:00
Alex Klyubin
0e496527fe am da66cab3: am f1a1160c: am c0d6b7cb: Merge "Fix typo"
* commit 'da66cab36e8085a1457565be69b55b38dfee186e':
  Fix typo
2015-04-08 22:12:55 +00:00
Alex Klyubin
7513d53cae am 9be1016b: am c48e8cf0: am edd0e6c0: Merge "Refuse to reuse IV in encryption mode in AndroidKeyStore."
* commit '9be1016b44c229468bd9a215fdbbfb95a8acf2ad':
  Refuse to reuse IV in encryption mode in AndroidKeyStore.
2015-04-08 22:12:47 +00:00
Alex Klyubin
bd877f261b am 8ad875f5: am 0649c832: am 3283d2d2: Merge "Add BlockMode.GCM constant to AndroidKeyStore API."
* commit '8ad875f52de3ffa99fea22177e26a7f22c3735b1':
  Add BlockMode.GCM constant to AndroidKeyStore API.
2015-04-08 22:12:38 +00:00
Alex Klyubin
70376a7728 Add more digests to AndroidKeyStore API.
This adds MD5, SHA-1, SHA-224, SHA-384, and SHA-512. SHA-256 was
already there.

MD5 is not exposed for HMAC on purpose, because MD5 has been
deprecated for years.

Bug: 18088752
Change-Id: I4df3d3f6cf10805c7910a1bdb577a91c85055945
2015-04-08 14:17:21 -07:00
Alex Klyubin
6895a549ec Fix typo
Change-Id: I1c47ade98ad3ae41dc55e7bcafcad6901b559c89
2015-04-08 11:08:37 -07:00
Alex Klyubin
edd0e6c098 Merge "Refuse to reuse IV in encryption mode in AndroidKeyStore." 2015-04-08 18:04:39 +00:00
Alex Klyubin
d1ccb45945 Refuse to reuse IV in encryption mode in AndroidKeyStore.
This makes IV-using Cipher implementations backed by AndroidKeyStore
refuse to be reused. After Cipher.doFinal completes, invoking update
or doFinal will raise an exception. This is to make it harder to
violate the security best practice of not reusing IV in encryption
mode.

Bug: 18088752
Change-Id: I5102f9e8b2ff428254294703e48948ea8576603d
2015-04-08 09:46:16 -07:00
Alex Klyubin
38bb642bbb Add BlockMode.GCM constant to AndroidKeyStore API.
GCM mode is not yet implemented. This is just adding a constant to
KeyStoreKeyConstraints.BlockMode.

Bug: 18088752
Change-Id: Ibba5b393f56ab9f6bb96d994f110687ab8d65ff3
2015-04-07 15:09:12 -07:00
Alex Klyubin
1620a65d32 resolved conflicts for merge of 06adabdb to master
Change-Id: Ifb09e2e6242f79cabe76e95eacc982f6cc7e1a6c
2015-04-07 11:39:51 -07:00
Alex Klyubin
c46e9e7da4 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
2015-04-07 09:18:00 -07:00
Alex Klyubin
b7f9aca713 am ba88b692: am e2e5b88e: am 64b0062a: Merge "Load fewer classes when AndroidKeyStore provider is installed."
* commit 'ba88b692f1a489de308dcf5b5420a23166a94487':
  Load fewer classes when AndroidKeyStore provider is installed.
2015-04-03 20:33:29 +00:00
Alex Klyubin
dbcec13d64 resolved conflicts for merge of b068f162 to master
Change-Id: I5bc234e1da047880d3437a861ff93474a9797e18
2015-04-03 13:01:09 -07:00
Chad Brubaker
ecf2b4f550 am 54d583c1: am e797eb2e: am 377885e1: Merge "Mark all test keys as no auth required"
* commit '54d583c148fd14034afc751ad70ab772de55eb92':
  Mark all test keys as no auth required
2015-04-03 19:55:38 +00:00
Alex Klyubin
7c9e4be67a am c869ac1b: am ec029e55: am b292e49b: Merge "Obtain SPI without using Reflection."
* commit 'c869ac1b7d163282ffdebf4ce9b32c479766f52d':
  Obtain SPI without using Reflection.
2015-04-03 19:55:22 +00:00