| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Bug: 20642549
Change-Id: Ibda270921f13a1fd695264583b0e4bd255f63aed
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes symmetric Cipher and Mac implementations backed by
AndroidKeyStore succeed in their initialization when the key is
configured to require user authentication for every use. Users
of such keys should obtain an instance of Cipher or Mac, initialize
it with the key, and then authorize the operation by passing this
Cipher or Mac instance to FingerprintManager.authenticate.
Bug: 18088752
Change-Id: Ia15a1e5f8274c3623f665dae1f400ff539639ab1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables users of AndroidKeyStore crypto to differentiate between
the key being unusable until the user is authenticated
(UserNotAuthenticatedException) and the key being permanently unusable
(KeyPermanentlyInvalidatedException). The latter is the case when the
secure lock screen has been disabled or reset, and, for keys that
require user authentication for every use, when a new fingerprint is
enrolled or all fingerprints are unenrolled.
NOTE: The KeyPermanentlyInvalidatedException subsumes/replaces the
NewFingerprintEnrolledException which has thus been removed. There
is no way to find out whether a key was permenently invalidated
specifically because a new fingerprint was added.
Bug: 20642549
Bug: 20526234
Change-Id: I0206cd99eef5c605c9c4d6afc5eea02eb3b1fe6b
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
OP_AUTH_NEEDED will be returned from begin when an operation needs
a per operation authentication before calling update. Note that the
begin call succeeds when this error is returned, the token and handle
are valid.
(cherry picked from commit dabe520a3e6b0d0c40adfd748483fa336c43c366)
Change-Id: I0ba4e997360843b5eb6c1db9c5fcd1c4d5a2c717
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| |
| |
| |
| | |
using NativeConstants."
* commit '6c1af7ea497b1a2f04bdf45a19d2147f5b9665b9':
frameworks/base: switch to using NativeConstants.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
NativeCrypto is a conscrypt class that contained several OpenSSL
constants. NativeConstants is the new class that contains the same
thing, but the latter is automatically generated and thus won't drift
from the C headers.
Bug: 20521989
Change-Id: I45c7b9a6844a06e3ffd09be692ebf733e1ebbbcc
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: Ifa29891b8ad7979cbc28c54180b9606bb1319ff0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This changes the implementation of AndroidKeyStore-backed Cipher and
Mac to avoid throwing runtime exceptions during normal use. Runtime
exceptions will now be thrown only due to truly exceptional and
unrecoverable errors (e.g., keystore unreachable, or crypto primitive
not initialized).
This also changes the implementation of Cipher to cache any errors
encountered in Cipher.update until Cipher.doFinal which then throws
them as checked exceptions.
Bug: 20525947
Change-Id: I3c4ad57fe70abfbb817a79402f722a0208660727
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Cipher state when init fails."
* commit 'edf5454a14cc53de92eaf1ef15fcfb21d8caccca':
Reset AndroidKeyStore Mac and Cipher state when init fails.
|
| |/
| |
| |
| |
| |
| |
| |
| | |
For consistency, this also switches AndroidKeyStore's Mac init/reset
implementation to the same approach as used in Cipher.
Bug: 18088752
Change-Id: Id34caf7cfe04f2058e22d8632890f762927bb31c
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When AndroidKeyStore keys require used authentication, they need to be
bound to a Keymaster's Secure User ID. This ID will be set by keystore
soon. Until then, set it from the framework level (i.e., from apps
which use AndroidKeyStore).
NOTE: Accessing gatekeeper to obtain the Secure User ID will be
blocked by SELinux policy. To test this code, disable SELinux
enforcing mode.
Bug: 18088752
Change-Id: I7a3315eb52f0fc978d14d5d0e9613f2f36c6c01e
|
|/ /
| |
| |
| |
| | |
Bug: 18088752
Change-Id: Idaed45d7e84f5f3eb4f623552b60206c504e967a
|
|\ \
| |/
| |
| |
| |
| |
| | |
KM_ORIGIN_UNKNOWN constant."
* commit 'b1aa7d0bc821614d943075c0d786cc3f5eeb8c73':
Add Keymaster KM_ORIGIN_UNKNOWN constant.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This tracks d359b044830b292f492f8a8df5471f869e358399 from
hardware/libhardware.
Bug: 18088752
Change-Id: I9a7bd8bdee51c18ae0427eff4efe036213d2b175
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
workaround."
* commit '22b5d9b969176a196b0b29ce9441ac3d1d35d208':
Remove IV auto-generation workaround.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This workaround prevents use of keys with randomized encryption
(IND-CPA). Since randomized encryption is on by default, it's better
to keep it working and break non-randomized encryption (until
Keymaster is fixed).
Bug: 18088752
Change-Id: I4b11ce72cff705be41d3e66f28b507d6ddc1da79
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
keys from AndroidKeyStore."
* commit '763100e6442494a85cfcb7949c8021836071b1f6':
Unbreak obtaining symmetric keys from AndroidKeyStore.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This tracks 59f977c6988e21b3b8aa6c83428bd6ee1a98816d due to which
AndroidKeyStore is unable to provide symmetric keys because it
assumes that the digest field is not repeating.
Bug: 18088752
Change-Id: Ie8ed01449280b7c759e81aeaf2066953b0abaf2a
|
|\ \ \
| |/ /
| | |
| | | |
Change-Id: Ia1ea7c9c8c23eeffcd596b96506e961989ccb7a6
|
| |\ \ |
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | | |
EC curve parameters will be obtained from the provided EC key.
Bug: 18088752
Change-Id: Ic99353a6566c8d4ce2b6b73d0309edaa40f84fa6
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
cert parameters optional."
* commit 'fa2bd4fe5c10b8132a155f0f8d0207435ca2c8dc':
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
|
| |
| |
| |
| |
| | |
Bug: 18088752
Change-Id: I93f87cbb1cd04a4a2e34f3d544d678c92cf052ee
|
|\ \
| |/
| |
| | |
Change-Id: Ifd7ca9e1dfa0d50a87f2bafef377fcaeb5d9f6d5
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
enable ECIES crypto."
* commit '651dbfde73171ad6451dc8f9288fa4df50f99e4c':
Add EcIesParameterSpec to enable ECIES crypto.
|
| |/
| |
| |
| |
| | |
Bug: 18088752
Change-Id: I597b019106c500188e0fbbc9608722668c08b421
|
|\ \
| |/
| |
| |
| |
| |
| | |
changes."
* commit '037dfb9423a0988398b67520546dae5673aa54bb':
Track recent keymaster_defs.h changes.
|
| |
| |
| |
| |
| | |
Bug: 18088752
Change-Id: If47bb7cc7a385941db9f12d478676594e9bc9d86
|
|\ \
| |/
| |
| |
| |
| |
| | |
and generated/imported."
* commit '04a99c7b4435598e4f9d53fadbe5faca4ad7ebdc':
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
|
|\ \
| |/
| |
| |
| |
| |
| | |
Javadocs of AndroidKeyStore."
* commit '4acc3392c35e5ad98c8e7b650b1368a2956746b7':
Fix minor issues in new Javadocs of AndroidKeyStore.
|
| |
| |
| |
| |
| | |
Bug: 18088752
Change-Id: Ie84cc6066c82f2659da17a1eb158c2e3acf5094d
|
|\ \
| |/
| |
| |
| |
| |
| | |
constants for AndroidKeyStore API."
* commit '098833c59d8b3984e3983169b460198c2d5e2670':
Add asymmetric crypto constants for AndroidKeyStore API.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 18088752
Change-Id: Iee72a4c230f3a2cd30d9eb4d29c4301f3e113f31
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
JCA and keystore HMAC names."
* commit 'c6112eb7057f91df1f885da37564f89a423f64e4':
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
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
KeyStoreParameter.Builder.setRandomizedEncryptionRequired."
* commit 'bbf3cc5797293dc915d7ecfe41e85bbe5682548d':
Hide KeyStoreParameter.Builder.setRandomizedEncryptionRequired.
|
| |/
| |
| |
| |
| |
| |
| | |
This wasn't meant to be public API yet.
Bug: 18088752
Change-Id: I40e57fd9121348086ae88ad9fa54f930547b77ba
|
|\ \
| |/
| |
| | |
Change-Id: Ibec45f0f8f9618dd7bd1b34561dccbdd9599cdeb
|
| |\ |
|