Commit Graph

407 Commits

Author SHA1 Message Date
Janis Danisevskis
49a1688f5e Merge changes from topic "default_dice_hal"
* changes:
  Dice HAL: Add VTS Test.
  Dice HAL: Added default implementation.
2022-03-16 20:16:15 +00:00
David Drysdale
83e3bffe66 Merge "Revert "KeyMint VTS: add TEST_MAPPING"" 2022-03-16 11:43:55 +00:00
David Drysdale
6288f4bbb9 Revert "KeyMint VTS: add TEST_MAPPING"
This reverts commit 7e71fcf852.

Reason for revert: failing tests on git_master on aosp_x86_64-userdebug

Bug: 224951152
Bug: 224951969
Bug: 224950581
Change-Id: I86ae5e8d73cefd6d9d923138384cf98ec80a42df
2022-03-16 11:34:44 +00:00
David Drysdale
7f366ab5dd Merge "KeyMint VTS: add TEST_MAPPING" 2022-03-16 06:49:19 +00:00
Janis Danisevskis
21244fc192 Dice HAL: Add VTS Test.
This CL adds a VTS test for the DICE HAL, and a test specific for
demotion testing. Demotion testing leaves the device in a permanently
modified state untill the next reboot, which is why it needs a special
test config. The current test config restarts the device before testing,
in a followup the device also has to reboot after the test.

Bug: 198197213
Test: atest VtsAidlDiceTargetTest
      atest VtsAidlDiceDemoteTargetTest
Change-Id: I4278a1352df749da50dc8e5d118fc37336026061
2022-03-15 12:39:22 -07:00
David Drysdale
ceedbb0d1a Merge "Prevent test crashes if device sets invalid curve" 2022-03-15 07:35:02 +00:00
David Drysdale
e5c2bf01fc Merge "Key{Mint,Master} VTS: fix incremental AES tags" 2022-03-14 15:45:28 +00:00
David Drysdale
1a637199e4 Key{Mint,Master} VTS: fix incremental AES tags
Change Id62fdce65131ee00c88e5849955a937f1c171748 split up the AES
incremental encryption tests into individual tests for each encryption
mode.  This meant that each generated key is only valid for a single
mode, which in turn means that for non-GCM mode keys it is not valid
to specify MIN_MAC_LENGTH.

Bug: 223934835
Test: VtsAidlKeyMintTargetTest
Change-Id: I38f34f60116bde3d23f203365d62e5b25d7b254b
2022-03-14 09:23:29 +00:00
Treehugger Robot
3192a09b11 Merge "remote_prov_utils: Add instance name in the JSON output" 2022-03-11 12:48:19 +00:00
Janis Danisevskis
86124738cd Dice HAL: Added default implementation.
Test: ... one ...
Bug: 198197213
Change-Id: If855e2a4a0150d80e7cecce0a078cdeca00bdb50
2022-03-10 12:23:59 -08:00
Eran Messeri
bf89c797d0 Update the default KeyMint version
As the current KeyMint version is 2 (200), reflect that in the default
XML.

Devices that ship with older KeyMint/KeyMaster version should override
the default android.hardware.hardware_keystore.xml file with the
version they support.

Test: android.keystore.cts.KeyAttestationTest#testAttestationKmVersionMatchesFeatureVersion
Bug: 222406513
Bug: 216543583
Change-Id: I6f2229019929cff747cec3907fc2a9b8ebebdcf4
2022-03-10 19:16:39 +00:00
David Drysdale
08696a7543 Prevent test crashes if device sets invalid curve
Test: VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: Ib623b3dcdd5a496b34314c1e0d1a310c8beeb18d
2022-03-10 10:54:37 +00:00
Tommy Chiu
cb7d3d0759 remote_prov_utils: Add instance name in the JSON output
Bug: 223509807
Test: libkeymint_remote_prov_support_test
Change-Id: I45d2ee46f6fe3c8a7da55c7cc0b04fc007ddea43
2022-03-10 12:17:39 +08:00
David Drysdale
1585fdceb5 KeyMint VTS: check for relevant devices
Don't run tests if the appropriate KeyMint device is not available (e.g.
on something that only has Keymaster).  Move to use GTEST_SKIP
consistently.

Bug: 221909227
Test: VtsAidlKeyMintTargetTest
Change-Id: I5dab238519e57e6752b795f3a983681cf4337bdd
2022-03-08 08:07:02 +00:00
anil.hiranniah
19a4ca17ea Split AESincremental VTS test into 4 Tests(For blockmodes-ECB,CBC,GCM,CTR)
Change mentioned above is done in VTS for Keymaster4.0
and Keymint

Test: VTS tests with tradefed
Change-Id: Id62fdce65131ee00c88e5849955a937f1c171748
2022-03-03 18:02:04 +05:30
Treehugger Robot
55419fd935 Merge "Support for P256 curve in RKP for Strongbox Test: Run Rkp Vts tests." 2022-03-02 11:45:05 +00:00
David Drysdale
7e71fcf852 KeyMint VTS: add TEST_MAPPING
Test: TreeHugger
Change-Id: If4e19f189a3cd58e143672a562837365d78da69d
2022-03-01 16:41:52 +00:00
David Drysdale
795f758780 KeyMint VTS: fix fixture setup name
Bug: 221909227
Test: VtsAidlKeyMintTargetTest
Change-Id: Ic0722242cee2ea21c974133e4f81b13b21e44615
2022-03-01 13:52:20 +00:00
Treehugger Robot
73e15472a4 Merge "Update KeyMint VINTF fragment to version 2" 2022-02-28 21:46:00 +00:00
Shawn Willden
ef8bdc4f1d Update KeyMint VINTF fragment to version 2
Bug: 221390931
Test: vts -m vts_treble_vintf_vendor_test
Change-Id: I62746b9b60b4b236c0cbb8d2c2edd519c61a71ac
2022-02-28 09:35:59 -07:00
Treehugger Robot
72358dab6a Merge "KeyMint: Test generation of asymmetric keys fails with missing parameters" 2022-02-24 16:14:21 +00:00
Chih-hung Hsieh
ff54f73b4f Merge "Add timed out test files to tidy_timeout_srcs" 2022-02-24 00:21:18 +00: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
subrahmanyaman
fb213d6031 Support for P256 curve in RKP for Strongbox
Test: Run Rkp Vts tests.

Change-Id: Ic38fd2318dd8749ae125f1e78d25f2722bd367e5
2022-02-23 05:02:40 +00:00
Chih-Hung Hsieh
ad1bf31b78 Add timed out test files to tidy_timeout_srcs
* Timed out runs do not show any warning messages.
* These test files cannot finish clang-tidy runs with
  the following settings:
    TIDY_TIMEOUT=90
    WITH_TIDY=1
    CLANG_ANALYZER_CHECKS=1
* When TIDY_TIMEOUT is set, in Android continuous builds,
  tidy_timeout_srcs files will not be compiled by clang-tidy.
  When developers build locally without TIDY_TIMEOUT,
  tidy_timeout_srcs files will be compiled.
* Some of these test modules may be split into smaller ones,
  or disable some time consuming checks, and then
  enable clang-tidy to run within limited time.

Bug: 201099167
Test: make droid tidy-hardware-interfaces_subset
Change-Id: I1de28f1572fff368f67eab512fffec9f2e5c2a9b
2022-02-18 17:25:41 -08:00
Treehugger Robot
0f7d419136 Merge "Fixed vts tests cases which do not support factory attestation. Test: Run keymint Vts tests." 2022-02-16 15:50:30 +00:00
Prashant Patil
6c1adf0aa1 KeyMint: Test generation of asymmetric keys fails with missing parameters
A VTS testcase is added to validate Asymmetric key generation fails if TAG_CERTIFICATE_NOT_(BEFORE/AFTER) is missing.

Also updated DeviceUniqueAttestationTest to set validity in
AuthorizationSetBuilder using .SetDefaultValidity().

Bug: 205679495
Test: run vts -m VtsAidlKeyMintTargetTest
Change-Id: Ibf63a6c8e173326502c7bf1b8f3af8666ecb1caf
2022-02-14 21:29:31 +00:00
Alan Stokes
4aab4f7704 Allow CompOS to use DICE from C++
Bug: 218494522
Test: Builds
Change-Id: Ica240e1d268403ba546d83c86596d72bacec2bdf
2022-02-10 15:05:48 +00:00
Treehugger Robot
fc3fdf1a96 Merge "Make os_version optional for StrongBox" 2022-02-08 22:59:29 +00:00
subrahmanyaman
0564249f93 Fixed vts tests cases which do not support factory attestation.
Test: Run keymint Vts tests.

Change-Id: I8055fef8df5ec77e317f810f9b95a53311b23cf0
2022-02-05 07:12:33 +00:00
Max Bires
9c28a1ed3a Make os_version optional for StrongBox
This change allows the os_version in the DeviceInfo map to be optional
for StrongBox implementations. It also adds the appropriate changes to
the VTS test to relax this requirement.

Bug: 215444522
Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I1695b7c4e7a9bd884fa88c14f9c22bacd38cdbd3
2022-02-03 19:17:38 -08:00
Max Bires
4820b542fa Merge "Enforcing canonicalization of DeviceInfo." 2022-02-04 02:44:54 +00:00
Max Bires
fbc0db2cd2 Fixing spec discrepancy in MacedPublicKey
The algorithm choice was listed as -8 for ES256, when it should be -7.

Fixes: 217691766
Test: Everyone harmoniously agrees by +2'ing.
Change-Id: I7f73efff42ee6d2b3bfb94b74c1208170805b870
2022-02-03 18:51:56 +00:00
Max Bires
8c255e69bf Enforcing canonicalization of DeviceInfo.
This change specifies that the DeviceInfo map returned by the IRPC HAL
implementation should be canonicalized. Additionally, it adds coverage
to the VTS tests to ensure this requirement is enforced.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I276f38497a307c407d305b62a3e9af78a403054e
2022-02-03 01:00:03 +00:00
Treehugger Robot
87a6fbc5cd Merge "Changing DeviceInfo fields to be mandatory." 2022-02-03 00:27:21 +00:00
Max Bires
8b09c50e49 Changing DeviceInfo fields to be mandatory.
This change removes the optionality ("?") from all of the device info
fields, now that DeviceIDs are mandatory. It also changes att_id_state
to the broader "fused" category. It may not convey exactly the same
meaning, but it seems better to avoid proliferating a lot of fields that
all speak to some technical detail of the factory provisioning status of
the device.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: Iaf3de6a7a7a9b8af7d2e9673d7f1320858b95617
2022-02-02 14:18:36 -08:00
Treehugger Robot
fefa4986db Merge "Remove 'ops' field from BCC public keys." 2022-02-02 20:47:25 +00:00
Max Bires
2b5db8eae4 Remove 'ops' field from BCC public keys.
The application of ops is currently inconsistent within the spec, and
wrong where it is specified. It is mapped to an integer when it should
be mapped to an array that contains the integer value. Given that all
key usage is strictly defined within the spec itself, there is no value
currently in including the ops field. Because of this, the choice is
being made to simply remove the field.

Test: documentation change only
Change-Id: Ia3a9895c7840e3cda9c2775080b7dcb18544d417
2022-02-01 19:35:58 -08:00
Treehugger Robot
608099fd88 Merge "Include the CWT validation in VTS testing." 2022-02-02 02:14:02 +00:00
Max Bires
81880284af Include the CWT validation in VTS testing.
This change modifies the VTS tests to validate the structure of the CBOR
Web Token (CWT) which contains the public key as one of several fields
in the map. It only validates the subset of fields expected to be seen
in the VTS tests. The ones related to the actual BCC will not be
present in test mode due to the security guarantees of the interface.

Additionally, the test will also now check that the first key in the BCC
array matches the public key that should be self-signed in the
certificate located in the second index of the BCC array.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I9e7769861529b8095d77ce8fee3c78222579d38c
2022-02-02 02:13:26 +00:00
Seth Moore
ff225d91c0 Merge changes from topic "revert-1959803-revert-1956689-add rkp to identity-default-ENFHZTRTBV-OLKYWRVSFZ"
* changes:
  Revert^2 "Add remote key provisioning to the IC HAL"
  Revert^2 "Refactor IC support for RKP"
  Revert^2 "Log to logd in the default identity service"
  Revert^2 "Fix formatting of identity credential aidl"
2022-01-27 18:18:12 +00:00
Steven Moreland
c82603654a Merge "-= src_available" 2022-01-26 23:43:03 +00:00
Steven Moreland
fe0546fe14 -= src_available
Default now. To Remove.

Bug: 215754978
Test: N/A
Change-Id: I4042a83ae624187570e7e2b2a7a1c1282906f6d0
2022-01-25 23:38:32 +00:00
Seth Moore
1bf823ce75 Revert^2 "Add remote key provisioning to the IC HAL"
be32113307

Change-Id: I55ddbddd0bc317f1f077a63b0275c4d55fd9c76f
2022-01-25 23:04:37 +00:00
Seth Moore
6278c2d241 Merge changes from topic "revert-1956689-add rkp to identity-default-ENFHZTRTBV"
* changes:
  Revert "Fix formatting of identity credential aidl"
  Revert "Log to logd in the default identity service"
  Revert "Refactor IC support for RKP"
  Revert "Add remote key provisioning to the IC HAL"
2022-01-25 23:03:24 +00:00
Seth Moore
be32113307 Revert "Add remote key provisioning to the IC HAL"
Revert "Add dependency on keymint cpp lib"

Revert "Allow default identity service to call keymint"

Revert submission 1956689-add rkp to identity-default

Reason for revert: Broke git-master. Will resubmit later.
Reverted Changes:
I96dcf3027:Add remote key provisioning to the IC HAL
Id686ac33a:Add dependency on keymint cpp lib
Ib368a2a00:Log to logd in the default identity service
I7d2906de0:Refactor IC support for RKP
Iae0f14f1c:Fix formatting of identity credential aidl
I01d086a4b:Allow default identity service to call keymint

Change-Id: I76a898c04090c5befe5fb5a5d07ec2e397fdd8b3
2022-01-25 22:44:24 +00:00
Seth Moore
79fdf4d688 Merge changes from topic "add rkp to identity-default"
* changes:
  Add remote key provisioning to the IC HAL
  Refactor IC support for RKP
  Log to logd in the default identity service
  Fix formatting of identity credential aidl
2022-01-25 20:33:01 +00:00
Seth Moore
3511d287ba Merge "Add uniqueId to IRemotelyProvisionedComponent" 2022-01-25 13:11:34 +00:00
Seth Moore
b5b69f0e00 Add remote key provisioning to the IC HAL
The IIdentityCredentialStore can now advertise the correct
IRemotelyProvisionedComponent that is used for getting remotely
provisioned attestation keys.

IWritableIdentityCredential has a new method so it can accept remotely
provisioned keys.

Update the VTS tests to check the new RKP functionality.

Support RKP in the default identity cred service

Test: VtsHalIdentityTargetTest
Bug: 194696876
Change-Id: I96dcf3027e0f21790c35900ddf8cc0953bd3b1ca
2022-01-24 16:19:21 -08: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