Commit Graph

105 Commits

Author SHA1 Message Date
David Drysdale
da0b04ce83 KeyMint VTS tests for module hash feature
Test: VtsAidlKeyMintTargetTest
Bug: 369375199
Bug: 373446864
Bug: 373446999
Bug: 360941058
Change-Id: Iaca508f39be4d76d07ae4f7cf6e640466af78ae4
2024-11-12 15:50:35 +00:00
David Drysdale
7b05efd13f KeyMint: coalesce device ID failure code
Test: VtsAidlKeyMintTargetTest
Change-Id: I7c94af96010f5c5f708f54bf02e0f85a96cece3f
2024-10-10 18:19:51 +01:00
Pranav Garg (xWF)
f74d274807 Fixing isDeviceIdAttestationRequired to require both cases instead of just one
Bug: 356536705

Change-Id: I15326e68fc2ea1ce9a2dfbe7498790900ebb43e4
2024-08-27 18:36:15 +00:00
Karuna Wadhera
0c5b6503ed Amend tests on GSI that rely on RKP-only props
GSI replaces the values for remote_prov_prop properties (since they’re
system_internal_prop properties), so on GSI the properties are not
reliable indicators of whether StrongBox/TEE are RKP-only or not.

Also included is the removal of the helper skipAttestKeyTestIfNeeded()
so the skipping can happen in the tests directly.

Bug: 348159232
Test: VtsAidlKeyMintTargetTest
Change-Id: I2075e1f76ddd0f87620a212e1aa389803139a117
2024-07-17 12:41:51 +00:00
David Drysdale
ef1123b24e KeyMint: add VTS test with all IDs
Add a test that includes all of the device IDs for attestation, which
helps to check whether the emitted extension is including everything in
the correct order.

(This is already tested in CTS since aosp/2650044)

Also fix test of first API level to use `get_vsr_api_level` helper.

Test: VtsAidlKeyMintTargetTest
Test: with/without KeyMint hacked to emit tags in wrong order
Change-Id: Ic6e489aa99c773d794ad8cbddbe5153b1a145ea5
2024-05-31 12:05:04 +01:00
Seth Moore
c5c52ce1d3 Allow RKP-only devices to pass keymint VTS
Add test paths for HALs that are RKP-only so that they may pass tests.

Fix up a few tests that were just being skipped for RKP-only HALs.

Test: ran VTS against cuttlefish with no factory key
Bug: 329409739
Change-Id: I5400874dd2f9885c061970a30ea44985353d23ed
2024-04-08 12:38:20 -07:00
David Drysdale
f3a4bea6df KeyMint: add separator for debugging output
When dumping attestation certificate chains with the --dump_attestations
option, add a separator between distinct chains to make them easier to
analyze.

Bug: 326564087
Test: VtsAidlKeyMintTargetTest
Change-Id: Ife19edfddef6c8cd26de9f9816c3c9bf65cbb929
2024-02-28 11:32:35 +00:00
David Drysdale
6c9bdb839f KeyMint: test HAL version matches feature
Test: VtsAidlKeyMintTargetTest
Bug: 304309651
Change-Id: I7e38c2ab3ff4f6b5f9035af865ca5ebe6ff24cc1
2024-01-23 10:05:55 +00:00
David Drysdale
d847ef9f03 KeyMint: check length of verified boot key
Only police for future versions of KeyMint, so that any existing
implementations that use the full key don't suddenly start to fail
VTS.

Bug: 305103215
Test: VtsAidlKeyMintTargetTest
Change-Id: If6534b84b6eff8cdb281586e17a5f89c7bf5f5d0
2023-11-20 11:41:31 +00:00
Prashant Patil
2114dca2aa RSA OAEP MGF1 digest VTS relaxed for keymint < V3
Since there were no VTS test to strictly check RSA_OAEP_MGF_DIGEST,
there are released devices with Keymint which do not include this tag in
key characteristics, hence these test fails on such Keymint and UDC
Android framework.

Hence version check is added before asserting MGF digest checks.

Bug: 297306437
Test: atest VtsAidlKeyMintTargetTest
Change-Id: I43054f8dbbd46de53deef5e6771c736e770280e0
2023-10-10 10:03:30 +00:00
Treehugger Robot
87e6b60eb3 Merge "Skip known VTS failures on vendor code till U" into main 2023-09-25 19:24:14 +00:00
Seth Moore
8be875e0d0 Only require RKP on T+ chipsets
It turns out we had a bug (b/263844771) in how RKP support was
detected, and that was fixed. However, due to this bug, some S chipests
shipped without RKP support which is now required by the tests.

This change drops the RKP requirement from S chipsets. There should be
no new S chipsets, so this effectively grandfathers in the previous
ones that were skipped by the RKP VTS tests.

T+ tests (both VTS and other suites) will verify that RKP support is
there, so there is no gap introduced by this change.

Bug: 297139913
Test: VtsAidlKeyMintTargetTest
Change-Id: I387e5f058ada698747aac103c1745682291f2d1c
2023-08-25 11:13:41 -07:00
Subrahmanya Manikanta Venkateswarlu Bhamidipati Kameswara Sri
2ce542d3f9 Skip known VTS failures on vendor code till U
Some of the SE Javacard OS implementations does not fulfill all of the
expectations as to when cipher text is to be generated. However, the
implementations are compliant with Javacard Specifications. This patch
skips the known VTS failures till U.

Bug: 290850651
Test: run vts -m VtsAidlKeyMintTarget
Change-Id: Id3746adc7385b41f4b4b2ebc8e7583972769134d
2023-07-12 19:54:21 +00:00
David Drysdale
82f86a1d4b Merge "Fix attestation error checks" 2023-07-05 05:20:29 +00:00
David Drysdale
c3de1caf43 Skip ATTEST_KEY using variant on waivered devices
Bug: 281452355
Bug: 289451966
Test: VtsAidlKeyMintTargetTest
Change-Id: Id448edae88569518deb2db4ab7bf50d16f33709a
2023-07-04 13:23:04 +01:00
David Drysdale
810fbcffed Fix attestation error checks
Avoid the ADD_FAILURE at the end if attestion ID failure uses an allowed
return code.

Test: VtsAidlKeyMintTargetTest
Bug: 286733800
Change-Id: I0dcac312ac4516a078b2742721e3a19074da52b1
2023-07-04 13:14:12 +01:00
Treehugger Robot
2e46e91864 Merge "Validating key characteristics of generated/imported keys." 2023-06-29 17:34:26 +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
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
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
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
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
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
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
f84593a459 Merge "Fix RKP support assumptions for keymint VTS" 2023-03-14 21:18:37 +00:00
Seth Moore
a12ac74603 Fix RKP support assumptions for keymint VTS
The support level for strongbox is different from the tee
implementation. Additionally, we were incorrectly checking the keymint
aidl version. KeyMint 1.0 supported ATTEST_KEY, so it's unclear why we
were ever checking for KeyMint 2.0.

Test: VtsAidlKeyMintTargetTest
Bug: 263844771
Change-Id: I750367902fec90204d71c1e158404b2421f9ad87
2023-03-14 15:48:08 +00:00
Rajesh Nyamagoud
e98263ec55 Updated to enforce leaf certificate containing attestation record
to not to hold the CRL Distribution Points extension in it.

Bug: 260332189
Test: atest VtsAidlKeyMintTargetTest
Change-Id: I7b191b4351984ce82db0e9440027ddbfc14b1c3a
2023-03-03 16:48:28 +00:00
Treehugger Robot
657934eebb Merge "Update KeyMint VTS tests to use pre-defined API level symbols" 2023-02-27 11:19:50 +00:00
Tri Vo
20bb427427 Merge "Add test for IRPC DeviceInfo" 2023-02-24 18:02:14 +00:00
Tri Vo
ec50ee162a Add test for IRPC DeviceInfo
Bug: 243148852
Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: If873996f0d756662808d785d2ef57118737a5aab
2023-02-23 20:01:31 -08:00
David Drysdale
e85498a968 Merge "Add Gatekeeper-based auth tests" 2023-02-23 11:44:43 +00:00
Shawn Willden
1a545db363 Update KeyMint VTS tests to use pre-defined API level symbols
Test: VtsKeyMintAidlTargetTest
Change-Id: I11ccd0c4959a2b3504009fdd95f4a313a5d6d5f6
2023-02-22 16:06:19 -07:00
David Drysdale
28fa931f00 Add Gatekeeper-based auth tests
Add tests that directly exercise Gatekeeper to get auth tokens for use
with auth-bound keys.

Test: VtsAidlKeyMintTargetTest
Change-Id: Ie668674d81ca487e8bbc18fdd9f36610bcab4c8c
2023-02-22 07:14:25 +00:00
Treehugger Robot
efd4cf71e5 Merge "Enforce boot and vendor patch level format always" 2023-02-21 18:36:50 +00:00
Rajesh Nyamagoud
5283f81f64 Adding a test using second IMEI as attestation ids.
1. Using second IMEI as attestation id without using first IMEI.
       Test should generate a key using second IMEI as attestation id
       without using first IMEI as attestation id. Test should validate
       second IMEI in attesation record.

    2. Using first IMEI as well as second IMEI as attestation ids.
       Test should generate a key using first IMEI and second IMEI as
       attestation ids. Test should validate first IMEI and second IMEI
       in attestation record.

Test: atest -c VtsAidlKeyMintTargetTest
Bug: 263197083, 264979486
Change-Id: I61c3f32e15a8d478a838d14e7db9917a33682267
2023-02-20 20:40:12 +00:00
Tri Vo
b21e6df7c2 Enforce boot and vendor patch level format always
Test: atest VtsAidlKeyMintTargetTest
Change-Id: I80bc96a6aee62474b33b015b6d04de7527fe757c
2023-02-17 14:55:51 -08:00
Tommy Chiu
6e5736bdb8 VTS: Replace deprecated 'getService' by 'waitForService'
Bug: None
Test: Built
Change-Id: I6902612ba9c4422a071c342dde4682dc96b20a6c
2023-02-08 10:28:45 +08:00
David Drysdale
3d2ba0a137 Add check_feature helper
Test: VtsAidlKeyMintTargetTest
Change-Id: I4a5b2a41172c15ae29efb5b177eb86cea5527b4e
2023-01-11 13:27:30 +00:00
David Drysdale
9f5c0c5734 KeyMint manual key upgrade tests
Test: VtsAidlKeyMintTargetTest
Change-Id: I95d74cec80e94da316dab02b7a88b855742c877c
2022-12-19 15:52:52 +00:00
Max Bires
a97ec69e4b Fix overly relaxed Device ID Test.
Previous versions of VTS had to allow a Device ID attestation failure
to return INVALID_TAG even though this is inconsistent with the KeyMint
spec. This was due to previous KM implementations returning this before
the test was added to validate the precise error code being returned
from Device ID attestation.

For VSR-14 and newer devices, the test will now enforce that only
CANNOT_ATTEST_IDS is returned from a failed device ID attestation call.

Test: atest VtsAidlKeyMintTargetTest
Change-Id: I6acff3fd32f3f251f946e3603283535f36d99a5d
2022-11-22 12:33:50 -08:00
Elliott Hughes
be36da4c2b Fix a couple of regular expressions.
Our old NetBSD regex implementation didn't care, but the current NetBSD
implementation rejects unquoted `{` and `}`s that aren't actually part
of a repetition. glibc shares this behavior.

Interestingly, the new NetBSD code was itself an sync with FreeBSD, so
although macOS right now allows this (as Android did), they may well
switch too.

Anyway, this way of writing the regular expressions is strictly correct,
so regardless of whether or not we can actually land this change to the
regex implementation without causing app compat chaos, we should fix
this test.

Bug: http://b/258469149
Test: treehugger
Change-Id: I85bf5d8f557a4fe5ac5ebeea565892d36da30b55
2022-11-09 22:07:11 +00:00
David Drysdale
b97121d8a5 KeyMint VTS: use SCOPED_TRACE on all loops
Also add a couple of nullptr checks

Test: VtsAidlKeyMintTargetTest
Change-Id: Ic95b16fc6307f3b97cc54dbf08f5726641a761d9
2022-08-12 11:54:46 +01:00
David Drysdale
96ed41b2e2 Merge "KeyMint: Test size requirements for ciphers" 2022-07-15 12:10:10 +00:00
Prashant Patil
dd5f7f0e8d KeyMint: Test size requirements for ciphers
Test size requirements for symmetric (Stream and Block) ciphers.
These tests are similar to CTS tests of symmetric ciphers.
For reference CTS test BlockCipherTestBase#testKatEncryptOneByteAtATime
for all its derived classes eg. AES128CBCNoPaddingCipherTest,
AES128CBCPKCS7PaddingCipherTest etc.

Bug: 226899425
Test: run vts -m VtsAidlKeyMintTargetTest

Change-Id: I78408071fbf5a360d89c5bbae479faffd7c6d935
2022-07-13 12:36:22 +00:00
David Drysdale
ae3727bf45 KeyMint VTS: test default MGF_DIGEST behaviour
KeyMint supports the specification of a separate MGF digest when
performing RSA-OAEP decryption, with a default value of SHA-1.

Test the expected behaviour here:
 - SHA-1 is used if nothing specified in key characteristics.
 - If something is specified in key characteristics, the operation
   parameter value has to be one of those values.

Bug: 203688354
Test: VtsAidlKeyMintTargetTest
Change-Id: Ic2dd3641be732a273724faa20cf4edf8a1752506
2022-07-06 12:26:37 +01:00
Shawn Willden
35db349596 Read VSR level from correct property.
Bug: 235424890
Test: VtsHalKeymasterV4_0TargetTest & VtsAidlKeyMintTargetTest
Change-Id: I39109c097d129124097a303c3f108d015cb367e3
2022-06-17 10:49:29 +09:00
Shawn Willden
22fb9c16fc Implement KeyMint2 test for VSR13
Test: VtsAidlKeyMintTargetTest & VtsHalKeymasterV4_0TargetTest
Change-Id: Ie10b705bb06990a2a2c6223fcce28f5fde6bf3f3
2022-06-06 09:10:17 -06:00
Shawn Willden
4315e135c6 Implement alternate SE RoT provisioning
Bug: 219076736
Test: VtsAidlKeyMintTargetTest
Change-Id: Ia696d7765f316d35eba1b4e65acae6c1072987b1
2022-05-31 14:14:54 -06:00
David Drysdale
555ba00c0f KeyMint VTS: skip device ID checks on GSI
Bug: 229356841
Test: VtsAidlKeyMintTargetTest
Change-Id: I3182bad5584c35df7b1eeb476dabb39d19fdf12c
2022-05-03 18:50:58 +01:00