Commit Graph

799 Commits

Author SHA1 Message Date
Treehugger Robot
2e46e91864 Merge "Validating key characteristics of generated/imported keys." 2023-06-29 17:34:26 +00:00
Eran Messeri
4a7c3810fc Merge "Update default KeyMint version to 3" 2023-06-29 16:37:48 +00:00
Rajesh Nyamagoud
7b9ae3c485 Validating key characteristics of generated/imported keys.
Updated VTS tests to verify mgf-digests in key characteristics of
RSA-OAEP keys. Added new tests to import RSA-OAEP keys with
mgf-digests and verified imported key characteristics.

Bug: 279721313
Test: atest VtsAidlKeyMintTargetTest
Change-Id: I06474a85c9e77fded264031ff5636f2c35bee6b4
2023-06-26 18:40:53 +00:00
Treehugger Robot
efb4b9397a Merge "Check for MGF1 digests in key characteristics." 2023-06-26 17:22:09 +00:00
David Drysdale
1d7447e5d3 Merge "Allow extra error code in device ID attestation" 2023-06-22 05:58:57 +00:00
Eran Messeri
8417708fe4 Update default KeyMint version to 3
Update the default KeyMint version to v3.
Note this affects the pure software implementation of KeyMint that is
not used for anything that tests currently run against.

Bug: 275982952
Test: m (that it builds)
Change-Id: I6ab10329af590bd2a045710dfff47c6e78740464
2023-06-21 16:11:25 +01:00
David Drysdale
f42238c99f Allow extra error code in device ID attestation
Generalize the existing helper function to allow more variants.

Remove a couple of pointless invocations of the existing helper.

Bug: 286733800
Test: VtsAidlKeyMintTargetTest
Change-Id: Ic01c53cbe79f55c2d403a66acbfd04029395c287
2023-06-15 09:43:18 +01:00
Treehugger Robot
1acca5c139 Merge "Support to get EC public key from the UdsCertchain." 2023-06-14 17:38:22 +00:00
Subrahmanyaman
a18883a58c Support to get EC public key from the UdsCertchain.
Bug: 285896470
Test: VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I7f829b1346feeab0fd429ad7b9714181b6668b34
2023-06-12 17:29:38 +00:00
David Drysdale
1b9febc5ca Use RAII to ensure KeyMint keyblobs deleted
If some check in a VTS test case fails, the test function may exit early
and not call CheckedDeleteKey(&some_keyblob), thus "leaking" a key blob.

This isn't normally an issue, but if the key blob happens to use a
feature that uses some secure storage (e.g. ROLLBACK_RESISTANCE or
USAGE_COUNT_LIMIT=1) then this may leak some scarse resource.

To avoid the chance of this, use an RAII holder to ensure that
manually-managed keyblobs (i.e. key blobs that are not held in the
key_blob_ member of the base test class) are always deleted.

Bug: 262212842
Test: VtsAidlKeyMintTargetTest
Change-Id: Ie8806095e249870484b9875eb660070607f339a3
2023-06-07 15:46:42 +01:00
David Drysdale
de2a493b9a KeyMint: more authentication tests
- Test key with multiple allowed SIDs
- Test invalid timestamp token

Test: VtsAidlKeyMintTargetTest
Change-Id: Ieb18d43d8c2db821d32857a332a0a68917b1eba4
2023-06-05 15:02:30 +01:00
Treehugger Robot
3258884207 Merge "Extend QC SPU waiver to VSR-S devices." 2023-06-01 19:39:19 +00:00
Shawn Willden
0f1b257f96 Extend QC SPU waiver to VSR-S devices.
Bug: 281452355
Test: VtsAidlKeyMintTargetTest
Change-Id: I9fc1d1f9a3b5b29cfee3ad325bc1c4ef72c44c13
2023-05-31 10:22:54 -06:00
Andrew Scull
99cba0640d Rewrite RKP readme in terms of DICE
Update the RKP readme to match contemporary philosophy about the design.
This includes replacing discussion if the obsolete term `BCC` with a
description of the Android Profile for DICE.

The privacy concerns are relaxed to match updates to the HAL which
remove the superencryption of the DICE chain.

Test: n/a
Fix: 281755202
Change-Id: I3a6fd2cd12599c5843b5dce0044eb16c2afbffa2
2023-05-23 21:08:29 +00:00
Andrew Scull
122b4986d4 Merge "Require the config hash" 2023-05-16 21:19:24 +00:00
Andrew Scull
1d23120bad Merge "Add security version to config descriptor" 2023-05-15 22:43:39 +00:00
Treehugger Robot
434a0cc160 Merge "VTS: Test specifying --expect_upgrade {yes,no}" 2023-05-15 09:11:41 +00:00
Tommy Chiu
025f3c5acd VTS: Test specifying --expect_upgrade {yes,no}
It should definitely be the case that a different SPL triggers key
requires upgrade, but the converse isn't true -- if no SPL change, it's
OK for the device to request upgrade anyhow.

Bug: 281604435
Change-Id: Ic03ce51fb4b18ff669595ab430f9fccd1da48997
2023-05-15 07:23:27 +00:00
Andrew Scull
b804354851 Require the config hash
Align with the Open Profile for DICE by requiring that the configuration
hash be included because the configuration input is a hash of the
specified configuration desscriptor.

Test: n/a
Change-Id: I9d2ef560dc8e6f567b5b8d1a244f5138c45ae420
2023-05-14 23:24:25 +00:00
Andrew Scull
0d520e8e17 Add security version to config descriptor
Introduce a field to the configuration descriptor that provides a
standard semantically-defined version number rather than the
vendor-defined component version which acts more like a build ID.

Test: n/a
Bug: 282205139
Change-Id: Idb0c991ab12ae75687236f2489e639e4422a0225
2023-05-13 21:17:07 +00:00
Treehugger Robot
a0f28846c4 Merge "Remove recommentation of non-normal mode" 2023-05-12 22:21:51 +00:00
Andrew Scull
9da6cf1319 Remove recommentation of non-normal mode
Only specify the requirements for `normal` DICE mode and allow vendors
to choose the non-normal mode that fits their need per the ope-dice
specification.

Add a note that RKP required `normal` mode in the DICE chain in order to
trust the device.

Test: n/a
Bug: 263144485
Change-Id: Iaaa3799c53234de61a51ebc855822b93ab3e5bb8
2023-05-12 19:36:22 +00:00
Treehugger Robot
95ec2cdd2f Merge "KM VTS test fix - handled "null" value for imei." 2023-05-12 02:44:22 +00:00
Andrew Scull
ebcdcdbc03 Merge "Document expectations of DICE mode" 2023-05-10 00:53:08 +00:00
Andrew Scull
ed74a681eb Document expectations of DICE mode
The Open Profile for DICE give possible guidelines on the requirements
for the DICE mode but Android needs those to be strictly specified.

Fix: 263144485
Test: n/a
Change-Id: Ia5fc937654504199cabf4709f1c15484242e0161
2023-05-09 18:34:11 +00:00
Rajesh Nyamagoud
71d19b21c3 KM VTS test fix - handled "null" value for imei.
Added a check to make sure IMEI is not "null".

Bug: 281676499
Test: atest VtsAidlKeyMintTargetTest
Change-Id: Ia1569a30412d633eee4d4de8cd00dea077d1c23d
2023-05-09 17:23:02 +00:00
Tri Vo
67567baf94 Merge "Test cases for attested Root-of-Trust" 2023-05-05 17:07:39 +00:00
Tri Vo
520a95bc31 Test cases for attested Root-of-Trust
Add tests for verfied boot state and VBMeta digest.

Bug: 255344624
Test: VtsKeyMintAidlTargetTest
Change-Id: I4f0697e1a7cb83ca87150b6683cac3084a593864
2023-05-05 10:04:39 -07:00
Hasini Gunasinghe
51471dcfce Merge "Challenge is expected in timestamp token in case 2" 2023-05-04 15:21:15 +00:00
Hasini Gunasinghe
77819bb988 Challenge is expected in timestamp token in case 2
In the second case out of the two cases of authorization enforcement
described for update(), it seems like the challenge is expected in
the timestamp token.

Test: N/A
Change-Id: I33e1b84bf8218335665b31ca144b3b4ecb342328
2023-05-03 22:33:30 +00:00
Max Bires
c4f05e81e0 Merge "Support for non-factory attestation in Strongbox." 2023-05-03 16:05:49 +00:00
Treehugger Robot
453ec12115 Merge "Strongbox may not support 1024 bit key size for RSA." 2023-05-02 15:39:50 +00:00
Subrahmanyaman
ce2bebdd79 Strongbox may not support 1024 bit key size for RSA.
Strongbox may not support 1024 bit key size for RSA.
So in NoUserConfirmation test updated the key size to
2048 so that the test works for both TEE and Strongbox.

Bug: 280117495
Test: run VtsAidlKeyMintTarget
Change-Id: I32bb28001aca9b69eedb1bd3d0bcff43052d06e4
2023-04-28 23:37:02 +00:00
Seth Moore
5fc0168163 Merge "Add VSR annotations for RKP DICE" 2023-04-27 22:05:36 +00:00
Seth Moore
ac1639f227 Add VSR annotations for RKP DICE
Bug: 277965670
Test: n/a (comment changes only)
Change-Id: I64e34c1f9865811f0967148cad914f7ef77f9448
2023-04-27 11:15:28 -07:00
Subrahmanyaman
50fcf7d066 Support for non-factory attestation in Strongbox.
Updated the BootLoaderStateTest for strongbox implementations which
do not support factory attestation.

Test: vts -m VtsAidlKeyMintTarget
Change-Id: I8fe176a18fc0b9e2b2d0b012b7b63124d15c9e2f
2023-04-26 18:58:03 +00:00
Andrew Scull
f2ae193680 Strictly deprecate IRPC test mode key generation
It's already documented that IRPC v3 doesn't make use of test mode keys
however VTS still required support for their generation. Fix this and
simplify implementation of the v3 HAL by expecting an error in all cases
that the deprecated test mode keys are seen.

IRPC v3 also fully deprecated the EEK meaning a v3 implementation must
unconditionally report CURVE_NONE for supportedEekCurve.

The VTS tests are enhanced with contextual version constants rather than
reusing constants with seemingly unrelated names.

Bug: 278013975
Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I5709a0b1cd77eb28e677f64bb781fad58d91570a
2023-04-24 20:23:48 +00:00
Shawn Willden
207322654a Check for MGF1 digests in key characteristics.
A bug in the Trusty HAL service caused it to replace MGF1 digest tags
with Tag::INVALID.  This tests that MGF1 tags are returned properly in
the MGF1 success test, and verifies that Tag::INVALID is never
returned by any test.

Bug: 278157584
Test: adb shell /data/nativetest/VtsAidlKeyMintTargetTest/VtsAidlKeyMintTargetTest
Change-Id: I5d391310795c99f37acf3c48310c127a7a31fac3
2023-04-21 16:51:33 -06:00
Treehugger Robot
a95f69da2e Merge "Add checks for different size of challenge" 2023-04-17 04:20:54 +00:00
Tri Vo
78e07d5dff Allow uninstantiated BootloaderStateTest
No tests are instantiated if KeyMint is present on the the device.
Explicitly allow that.

Bug: 277975776
Test: VtsAidlKeyMintTargetTest
Change-Id: I88f1c0a81f36d198dabcb1420b62a00bacdbb6e7
2023-04-14 11:01:22 -07:00
Tri Vo
eb94a4f9ef Merge "Test for bootloader state" 2023-04-12 16:20:51 +00:00
Andrew Scull
de49fca027 Merge "Document that the component version can be a string" 2023-04-07 20:57:25 +00:00
Treehugger Robot
a3bc09e02a Merge "VTS: Restore 2nd-IMEI tests" 2023-04-06 05:58:35 +00:00
Tommy Chiu
728336ffa3 VTS: Restore 2nd-IMEI tests
Enable some tests that are bypassed on strongbox implementation.

Bug: 262255219
Test: VtsAidlKeyMintTargetTest
Change-Id: I548bddcd16c0a1ee1c1cb8266d4d99dbdff3d39b
2023-04-06 02:09:22 +00:00
Tri Vo
bf75a4070d Test for bootloader state
Bug: 255344624
Test: VtsKeyMintAidlTargetTest
Change-Id: I8b34a94c11d7cc174821483f624fd083ca1763ac
2023-03-30 15:45:16 -07:00
Andrew Scull
c71a8d0ef1 Merge "Use VSR to tell libhwtrust_cxx how to validate" 2023-03-30 09:36:31 +00:00
David Drysdale
a2f63439c7 Merge "Test specifying CERTIFICATE_NOT_{BEFORE,AFTER}" 2023-03-30 06:21:09 +00:00
Andrew Scull
65a514dcf6 Document that the component version can be a string
Following feedback from partners, allow the component version in the
configuration descriptor to be either an int or a string.

Bug: 273552826
Test: n/a
Change-Id: Iecc9889592a2e634a3b9e40f14347b231b703c60
2023-03-29 17:56:31 +00:00
Andrew Scull
2b1e5d9fc8 Use VSR to tell libhwtrust_cxx how to validate
The DICE chain specification changes slightly between VSR versions so
the VSR is used to select the set of validation rules that should be
applied.

Test: TH
Change-Id: I3697279d9348705a0279736c61e8333720321214
2023-03-29 17:53:14 +00:00
Andrew Scull
74a699c4d8 Merge "Deprecate CSR v1 and v2 in IRPC v3" 2023-03-29 14:18:51 +00:00