Commit Graph

48 Commits

Author SHA1 Message Date
Alex Buynytskyy
ec1198d941 UpsideDownCake is now 34
Ignore-AOSP-First: UpsideDownCake Finalization
Bug: 275409981
Test: build
Change-Id: I832ab7a8b5445ba85e27bbcf5be64906bfa0e5be
2023-04-07 23:41:20 +00:00
Seth Moore
8a1d60edfa Revert^2 "Split rkp from keymint."
ccbb5d8a61

Change-Id: I3734bd7647cbb7b33ef654ba2fb40fe8a648689e
2022-11-07 15:45:52 -08:00
Eran Messeri
fa09d071c7 ID attestation: Define tag for a second IMEI
Define a KeyMint tag for a second IMEI to be included in the attestation
record.

Also clarify that the IMEI tag is meant to include one, and only one,
IMEI.

Bug: 244732345
Test: android.keystore.cts.DeviceOwnerKeyManagementTest
Change-Id: I70ecbb0245ba2e517e5d0db0cfdce4525846f3e5
2022-11-07 15:45:52 -08:00
Seth Moore
ccbb5d8a61 Revert "Split rkp from keymint."
Revert "Add dependency on newly-split RKP HAL"

Revert "Add dependencies on newly-split RKP HAL"

Revert "Add dependency on split out RKP HAL"

Revert submission 20364235-split-rkp-aidl

Reason for revert: Build break in android.hardware.identity-api
Reverted Changes:
Ib86454bbb:Update dependencies on HAL types moved from keymin...
I501c967e2:Add dependencies on newly-split RKP HAL
I08560f9af:Add dependency on split out RKP HAL
I87133e385:Add dependency on split out RKP HAL
Ia13374cbc:Add dependency on split out RKP HAL
I72bc1774c:Add dependency on newly-split RKP HAL
I71ac265e3:Add dependency on newly-split RKP HAL
Ie0e17bb2c:Update the RKP aidl dependency
I5d24f47ce:Update README and CHANGELOG for RKP
I4b2498dd1:Split rkp from keymint.
I266009d75:Add dependency on newly-split rkp HAL

Change-Id: Ic0a1c38d36a24cc2206d078e1486d51baef0e4c3
2022-11-04 16:40:46 +00:00
Steven Moreland
ca73d57c83 Split rkp from keymint.
What this is missing is updating dependencies + splitting the VTS test.

Bug: 254112961
Test: N/A
Change-Id: I4b2498dd19206a5a24f46a1d5556e805e399fd82
2022-11-03 09:15:07 -07:00
Max Bires
137ffac4c5 Update IRemotelyProvisionedComponent HAL to v3
This change makes all of the changes to the HAL AIDL files, along with
corresponding documentation edits, to facilitate the definition for
version 3 of IRemotelyProvisionedComponent HAL.

The bulk of the changes are described within the RKP_CHANGELOG.md file
and will therefore not be discussed here within the commit message.

Bug: 240312857
Test: It is human readable and also builds.
Change-Id: I920550bdfe5a8f9ba677c4a4f67e975bcd3672ab
2022-09-02 10:20:28 -07:00
Jiyong Park
703e97920e Freeze AIDL APIs for TM
Bug: 225941299
Test: m
Change-Id: Ie41cc0797710f813f92c65c387f247c7806d8394
2022-03-31 12:01:39 +09:00
Shawn Willden
0cc617cab0 Provide alternate SE RoT provisioning path.
On some devices it is infeasible to provision the KeyMint RoT bits in
the Android Bootloader.  This provides an alternate path to provision
them from the TEE during early boot.

Bug: 219076736
Test: VtsAidlKeyMintTargetTest
Change-Id: If69f7e25e58edbf4d2190084e2c0a03a94bfa5d6
Merged-In: If69f7e25e58edbf4d2190084e2c0a03a94bfa5d6
2022-02-22 23:52:18 -07:00
Seth Moore
fc86bf4d5f Add uniqueId to IRemotelyProvisionedComponent
This id is used to differentiate between implementations of the
IRemotelyProvisionedComponent interface. This is required to track
certificates and keys for each implementation. Without an implementation
id, we would have no way to associate persisted, remote provisioning
data with the appropriate IRemotelyProvisionedComponent.

Include VTS tests for compliance.

Test: VtsHalRemotelyProvisionedComponentTargetTest
Bug: 194696876

Change-Id: Id8bca26d71ecf9e389e68a269f782a9dc5ee6f01
2022-01-24 16:19:21 -08:00
Seth Moore
d79a0ec9ed Revert^2 "KeyMint HAL: add curve 25519, bump version"
e76045d7b0

Change-Id: Ia167fd45b6e590e34523810ee10118c5c141f538
2021-12-13 20:03:33 +00:00
David Drysdale
e76045d7b0 Revert "KeyMint HAL: add curve 25519, bump version"
Revert "Bump keystore2 AIDL API version 1->2"

Revert "Advertise support of KeyMint V2"

Revert submission 1900930-version-bump

Reason for revert: Broken build on sc-qpr1-dev-plus-aosp, b/210450339
Reverted Changes:
I42a9b854f:keystore2: cope with new curve25519 enum
I167d568d6:Bump keystore2 AIDL API version 1->2
I3a16d072e:Advertise support of KeyMint V2
Ibf2325329:KeyMint HAL: add curve 25519, bump version

Change-Id: I78d4b07c41aa6bfeb367b56a58deeac6adb6ec46
2021-12-13 16:01:21 +00:00
David Drysdale
c069a75302 KeyMint HAL: add curve 25519, bump version
Marked as required for TRUSTED_ENVIRONMENT impls but not STRONGBOX.

Bump keymint HAL version 1->2 in defaults and in current compatibility
matrix.

Bug: 194358913
Test: build
Change-Id: Ibf2325329f0656a2d1fc416c2f9a74d505d0bf20
2021-12-09 14:07:51 -08:00
Jiyong Park
72b6359859 Freeze AIDL APIs for SC
Ignore-AOSP-First: part of SC finalization

Bug: 188713899
Test: m
Change-Id: Iee18cd05954dc8ea08cc4f985499a70977d1af4f
2021-05-25 10:13:26 +09:00
Paul Crowley
dadb18dd29 Add getKeyCharacteristics method to KeyMint
(cherry picked from commit 402d62f7be)

Bug: 186685601
Test: Treehugger
Merged-In: Ie72d865a37e2b6834fe6a86bf843d30286384aa5
Change-Id: Ie72d865a37e2b6834fe6a86bf843d30286384aa5
2021-04-30 10:58:31 -07:00
David Drysdale
56ba912b30 Align KeyMint AIDL with usage
- Make HardwareAuthToken nullable on begin()
 - Drop unused vestigial performOperation() entrypoint
 - Drop unused Tag::BLOB_USAGE_REQUIREMENTS

Test: TreeHugger, VtsKeyMintAidlTargetTest (CF)
Change-Id: I577ac04d843ee6d03cbfb99e56ef3e69eb034532
2021-04-22 15:55:29 +01:00
Max Bires
4190509ed6 Adding getHardwareInfo to IRPC
This adds a way to derive information about the hardware for clients
that call the HAL. The primary functional usecase here is to
differentiate which EC curve the underlying hardware for a given
instance of IRemotelyProvisionedComponent is supported.

Originally, curve 25519 would have been used in all implementations for
verifying the EEK certificate chain and doing ECDH, but secure elements
do not offer 25519 support yet. In order to support remote provisioning
on SEs, we have to relax the standard here a bit to allow for P256.

Test: Everything builds
Change-Id: I9245c6f4e27bd118fe093bffc0152549ed7f0825
2021-04-17 15:37:43 -07:00
Janis Danisevskis
71eb2258bf Merge "Security: Add @SensitiveData annotation." 2021-04-07 21:35:26 +00:00
Janis Danisevskis
3829840d36 Security: Add @SensitiveData annotation.
Bug: 174857732
Test: N/A
Change-Id: Id1aeaf9b0da79b8c4d5e91f30942a31a26f7b1d4
2021-04-06 09:50:19 -07:00
Chirag Pathak
cfb9792b4c Adds new error code which is required by keystore to handle strongbox hal related functionality.
Test: N/A
Bug: b/184306647

Change-Id: Ifbf7b931e58420f17e16f297205018248d39f476
2021-04-02 20:17:27 +00:00
Max Bires
459bf52740 Merge "IRemotelyProvisionedComponent returns DeviceInfo" 2021-03-24 23:29:13 +00:00
Max Bires
fdbb904a0c IRemotelyProvisionedComponent returns DeviceInfo
This alters the AIDL interface and underlying functionality to have the
component return the DeviceInfo CBOR blob that is used as AAD in
verification of a signature over a MAC key. Trying to reconstruct this
from userspace is very likely to lead to pain and subtle errors in the
future as adoption of this HAL increases, and multiple instances of this
HAL may exist on device simultaneously.

Test: atest VtsRemotelyProvisionedComponentTests
Change-Id: I44bd588586652630ed31a87cfda7e9c01cbf0a2f
2021-03-24 10:04:23 -07:00
Satya Tangirala
38b3bcee7f Merge "Keystore 2.0: add convertStorageKeyToEphemeral() to IKeymintDevice" 2021-03-24 03:43:38 +00:00
Satya Tangirala
c757c1ba39 Keystore 2.0: add convertStorageKeyToEphemeral() to IKeymintDevice
Add a function convertStorageKeyToEphemeral to IKeymintDevice that vold
can use to get a per-boot ephemeral key from a wrapped storage key.

Bug: 181806377
Bug: 181910578
Change-Id: I1b008423e3e24797132c8eb79ab3899e2b1c68e8
2021-03-22 17:39:36 -07:00
Janis Danisevskis
61eadb7ce4 Security: Provide generated java sources.
Enable generation of java sources for AIDL interfaces. This allows
enabling the @SensitiveData annotation without causing circular build
dependencies.

Also mark doc comments as @hide to prevent the interface from being
included in the SDK.

Bug: 174857732
Test: N/A
Merged-In: If00e4dfc24bf776f87c7e2b2e3f42350aa4d4379
Change-Id: If00e4dfc24bf776f87c7e2b2e3f42350aa4d4379
2021-03-22 20:02:39 +00:00
Satya Tangirala
66e371f3d6 Keystore 2.0: Sync output format of generated headers
The output format of headers generated by
"m android.hardware.security.keymint-update-api" has changed. This patch
updates the format of those generated files in the tree.

Change-Id: If00a194f136c67197c96081b3c211d615fad5f07
2021-03-15 14:43:14 -07:00
Shawn Willden
d659c7c181 Add performOperation stub.
Test: VtsAidlKeyMintTargetTest
Change-Id: I3689fd2993941343c6b9ba503fbe56153742fb3e
2021-03-01 09:29:39 -07:00
Paul Crowley
b79f2a807c Merge "Add MAX_BOOT_LEVEL tag, BOOT_LEVEL_EXCEEDED error" 2021-02-27 05:05:50 +00:00
Paul Crowley
5d30131709 Add MAX_BOOT_LEVEL tag, BOOT_LEVEL_EXCEEDED error
A key with the MAX_BOOT_LEVEL tag cannot be used past a particular
stage of device boot.

Test: Treehugger
Bug: 176450483
Change-Id: I113e3101734736a8621a01ed85969a4ecbe12a68
2021-02-26 14:33:46 -08:00
Shawn Willden
92d79c093f Separate updateAad from update & other cleanups
Test: VtsKeyMintAidlTargetTest
Change-Id: Ib4ab43dbf2604a7642fb2b551646fd7f0adac615
2021-02-24 15:54:12 -07:00
Shawn Willden
7c13039711 Add KeyPurpose::ATTEST_KEY.
This allows applications to generate their own attestation keys and
then use them to attest other application-generated keys.

Bug: 171845652
Test: VtsAidlKeyMintTargetTest
Change-Id: I32add16dcc2d1b29665a88024610f7bef7e50200
2021-02-17 08:08:27 -07:00
Shawn Willden
274bb55f10 Add RemotelyProvisionedComponent HAL.
Test: VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I51fb01f4c52949c81f3ad2d694a4afdf0fa67788
2021-02-16 07:40:59 -08:00
Chirag Pathak
bcf07f93a7 The aidl changes related to device locked, entryBootEnded and hw info.
Test: atest VtsAidlKeyMintTargetTest
Bug: b/178222844, 179062062

Change-Id: Id4ffd6dae48ba45019d42303413ddbc35eb59935
2021-02-10 22:06:45 +00:00
Janis Danisevskis
e2ccb19399 Keymint: Add CERTIFICATE_* tags required for certificate generation.
Also fixes some formatting.

Test: N/A
Change-Id: I27e9dcfa638b544ab49befa208b294e55a04f2c1
2021-02-01 23:34:55 -08:00
Treehugger Robot
06e5b50fc3 Merge "Add new SecurityLevel::KEYSTORE" 2021-02-02 06:13:07 +00:00
Shawn Willden
a5ec08abec Add new SecurityLevel::KEYSTORE
We need a way to distinguish between tags that are enforced by KeyMint
with security level "SOFTWARE" and tags that are not enforced by
KeyMint but are expected to be enforced by KEYSTORE.

Test: VtsAidlKeyMintTargetTest
Change-Id: I9f414bec43959577a50d49146029c9edb031be56
2021-02-01 16:57:39 -07:00
Janis Danisevskis
233e36943e Keymint: Add rust derives to KeyMintHardwareInfo
Test: N/A
Change-Id: I3dee43dc85d465123e2cc36f2640fe3fd49b9838
2021-01-30 08:45:48 -08:00
Treehugger Robot
0d59cbdb1d Merge "Add limited use keys related tag into KeyMint aidl. And add vts test to verify the tag appears in the key characteristics. also if the tag is enforced in the hardware, afer the usage of the key is exhausted, the key blob should be invalidated from the secure storage (such as RPMB partition)." 2021-01-26 23:05:51 +00:00
David Zeuthen
df543ea006 Merge "KeyMint: Add support for key agreement operation and use it for ECDH." 2021-01-26 22:05:24 +00:00
David Zeuthen
e0c4089f06 KeyMint: Add support for key agreement operation and use it for ECDH.
Test: VtsAidlKeyMintTargetTest
Bug: 171847641
Change-Id: Id9dc0ee3c69d9c2421ce7b0f228580a90411169e
2021-01-26 12:09:17 -05:00
Janis Danisevskis
6bb888fecf Keymint/secureclock: Add Rust derives to some of the types.
This adds rust derive stanzas to TimeStamp, TimeStampToken, and
HardwareAuthToken.

Also removes an unused import from IKeyMintDevice.

Test: Compiles.
Change-Id: If41248f5cda8015ecb07bec5d1bc75317b803492
2021-01-25 10:51:54 -08:00
Qi Wu
d22ec8418b Add limited use keys related tag into KeyMint aidl.
And add vts test to verify the tag appears in the key characteristics.
also if the tag is enforced in the hardware, afer the usage of the key
is exhausted, the key blob should be invalidated from the secure storage
(such as RPMB partition).

Bug: b/174140443
Test: atest VtsHalKeyMintV1_0TargetTest

Change-Id: Ic65b855c5a8692ab8d1281dd46562ad0844ab1b0
2021-01-22 15:58:52 +08:00
Janis Danisevskis
6251827cda KeyMint/SecureClock: Reverse dependency between keymint and secureclock.
This patch removes verifyAuthorization from the KeyMint spec in favor of
secureclock and the TimeStampToken. Timestamp has moved to secureclock
and the VerificationToken was removed from keymint. This reverses the
dependency between keymint and secureclock because keymint no imports
TimeStampToken and Timestamp from secureclock.

Test: Tested with CtsVerifier Fingerprint bound keys test.
Change-Id: I4e0bde0d77e74918e2b5483c30be8057417e3bf1
2021-01-14 10:19:28 -08:00
Shawn Willden
7f42437ebb Change KeyCharacteristics
Support key characteristics with three security levels, do not store
unenforced authorizations with keys or bind them to keys.

Bug: 163606833
Test: atest VtsAidlKeyMintTargetTest
Change-Id: Idbc523f16d8ef66ec38e0d503ad579a93c49e7b4
2021-01-12 22:15:21 -07:00
Chirag Pathak
8b7455abb4 Add support and VTS test for RSA OAEP MGF1.
Test: atest VtsAidlKeyMintV1_0TargetTest
Bug: 160968519
Change-Id: I7093b26217b69ea36b4be8837b42cb9446887685
2020-12-22 15:58:52 -05:00
Shawn Willden
83fa6413ac Change KeyParameters to use a union.
AIDL now supports union types.  This CL changes KeyParameter to use
one.

Test: VtsAidlKeyMintTargetTest
Change-Id: I5112611b161e3de1ea86105ea3c7ed0912036a7b
2020-12-18 08:38:28 -07:00
Shawn Willden
08a7e43e78 Revert^2 "Move keymint to android.hardware.security."
1ffcdebadd

Bug: 175345910
Bug: 171429297
Exempt-From-Owner-Approval: re-landing topic with no changes in this CL.
Change-Id: I691cad252f188b54a8076589d9955774d74d4729
2020-12-11 20:36:59 +00:00
Orion Hodson
1ffcdebadd Revert "Move keymint to android.hardware.security."
Revert "Keystore 2.0 SPI: Move keymint spec to security namespace."

Revert "Keystore 2.0: Move keymint spec to security namespace."

Revert "Keystore 2.0: Move keymint spec to security namespace."

Revert "Move keymint to android.hardware.security."

Revert "Configure CF to start KeyMint service by default."

Revert "Move keymint to android.hardware.security."

Revert "Move keymint to android.hardware.security."

Revert submission 1522123-move_keymint

Reason for revert: Build breakage
Bug: 175345910
Bug: 171429297
Reverted Changes:
Ief0e9884a:Keystore 2.0: Move keymint spec to security namesp...
Idb54e8846:Keystore 2.0: Move keymint spec to security namesp...
I9f70db0e4:Remove references to keymint1
I2b4ce3349:Keystore 2.0 SPI: Move keymint spec to security na...
I2498073aa:Move keymint to android.hardware.security.
I098711e7d:Move keymint to android.hardware.security.
I3ec8d70fe:Configure CF to start KeyMint service by default.
Icbb373c50:Move keymint to android.hardware.security.
I86bccf40e:Move keymint to android.hardware.security.

Change-Id: I160cae568ed6b15698bd0af0b19c6c949528762d
2020-12-11 10:45:43 +00:00
Shawn Willden
f73e952ea4 Move keymint to android.hardware.security.
Test: VtsAidlKeyMintTargetTest
Change-Id: I2498073aa834584229e9a4955a97f279a94d1dd5
2020-12-09 16:26:41 -07:00