Commit Graph

655 Commits

Author SHA1 Message Date
Tommy Chiu
72abbbd36d Correct the expection of DeviceInfo size
Bug: 275645815
Test: VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I24187be5b7b34285aa53ddaa420b871826a3b825
2023-03-29 07:11:23 +00:00
Seth Moore
5a0320fbda Do not require StrongBox to implement RKP
Detect if there is an IRemotelyProvisionedComponent for strongbox, and
if so run the associated keymint tests. Else, allow strongbox to skip
the test as it's not required to implement the IRPC HAL.

Bug: 271948302
Test: VtsAidlKeyMintTargetTest
Change-Id: Ibf98e594e725d6ad14c0ff189ab9fbcc25b51f80
2023-03-24 12:29:31 -07:00
Max Bires
60c53aeb7e Strictly enforce DeviceInfo entries.
Ensure that v3 HALs have exactly the expected number of entries present
when returning DeviceInfo inside of the Certificate Signing Request. Do
not allow for additional or fewer entries.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I8ea628335d5eed35ca2b65e22980e13fc9806738
2023-03-23 20:04:27 -07: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
Andrew Scull
e5a5610018 Merge "Validate DICE chain based on context" 2023-03-14 15:15:06 +00:00
Tri Vo
d5d9b02219 Remove KM dependency on RemoteProvisioner
HAL implementation shouldn't require an app.

Bug: 273325840
Test: m
Change-Id: I920d29c582d288959e639f4e755d48cd4788d223
2023-03-13 13:59:00 -07:00
Andrew Scull
a601d07478 Validate DICE chain based on context
The DICE chain in the ProtectedData objects are evaluated against the
specification from v1 and v2 of the HAL whereas the chain in
AuthenticatedMessage objects are evaluated against the specification
from v3.

There are only small differences with v3 aligning to the standards where
there was previously more leniency.

Fix: 262599829
Test: TH
Change-Id: Ied14362b5530485eb6c2302a0ae0f21da9cdb33f
2023-03-13 16:52:40 +00:00
Treehugger Robot
adff54caf4 Merge "Updated to enforce leaf certificate containing attestation record to not to hold the CRL Distribution Points extension in it." 2023-03-11 22:25:35 +00:00
David Drysdale
475bb11af0 Merge "Re-order skip checks for attestation tests" 2023-03-10 07:11:56 +00:00
Tri Vo
1be04ec2d2 Merge "Update challenge size check" 2023-03-09 22:47:12 +00:00
Tri Vo
2fcd4b6bc3 Update challenge size check
aosp/2480181 changed minimum challenge size to 16.

Bug: 272392463
Test: VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I420f230651192e8fd67aab2ceff916a9c8b6db92
2023-03-09 13:23:09 -08:00
David Drysdale
5b94874691 Re-order skip checks for attestation tests
Put the test arm that just involves checking a property
first, so that tests which involve a round trip to the Package
Manager are only executed when they're needed.

Test: VtsAidlKeyMintTargetTest
Bug: 271026714
Change-Id: I4caad6243a3b9d511a32717fd95f58864b857eeb
2023-03-09 11:03:10 +00:00
David Drysdale
4cbe215e34 Allow for 32-bit VTS builds
In 32-bit builds a `long` may be 32 bits, but the `long` values on an
AIDL interface are 64 bits.  Therefore need to use `int64_t` for the
corresponding C++ type, not `long`.

Bug: 271056044
Test: VtsAidlKeyMintTargetTest --gtest_filter="*AuthTest*" (32-b)
Change-Id: I19f5a1d825dfcc45087534bbd4239a13cdfec3f7
2023-03-07 14:47:11 +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
Yi Kong
bd5d365d82 Fix return-stack-address warning
hardware/interfaces/security/keymint/aidl/vts/performance/KeyMintBenchmark.cpp:79:26: error: reference to stack memory associated with local variable 'message' returned [-Werror,-Wreturn-stack-address]
return std::move(message);
^~~~~~~

Test: presubmit
Change-Id: I4298b4a25ccb809a7ae180bb218e673a7f1aa623
2023-03-01 16:19:43 +09: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
Treehugger Robot
53faa27ace Merge "Correct AttestKey test that checks Qualcomm's SPU waiver." 2023-02-23 20:43:12 +00: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
Shawn Willden
3a4a3a95b8 Correct AttestKey test that checks Qualcomm's SPU waiver.
The test exempted KeyMint on the affected chips from having to implement
ATTEST_KEY if they have StrongBox in all Android releases from Android S
onwards, but the waiver was given only for Android S and T.  This CL
changes the test to reinstate the requirement after Android T.

Test: VtsAidlKeyMintTargetTest
Change-Id: I8481ae31de34aae220af7e7188632edcc2d391f0
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
7cabdc10db Fix test assumption for KeyMint+RKP integration
According to the API Level definition (https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels), both 31 and 32 are belong to Android-12 (S).

Bug: 263844771
Change-Id: I92e3f9015607ad9421c02442033e9b586ae07bcb
Test: VtsAidlKeyMintTargetTest #EcdsaWithRkpAttestation
2023-02-16 09:39:25 +00: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
Treehugger Robot
ec32540a84 Merge "Fix AttestKeyTest failures in KeyMint VTS" into android13-tests-dev am: c3702f8e5b
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2406652

Change-Id: I2a19d5e784b2eabfffb63c3c1ceb7fed09682dcd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-06 17:45:19 +00:00
Treehugger Robot
2831fa2bf2 Merge "Updated the digest to SHA_2_256 in key upgrade tests." 2023-02-02 16:21:13 +00:00
David Drysdale
44671d923a Merge "Skip curve25519 upgrade tests on KeyMint v1" 2023-02-01 12:44:34 +00:00
David Drysdale
9ea96ddd9d Skip curve25519 upgrade tests on KeyMint v1
Bug: 266010760
Test: VtsAidlKeyMintTargetTest
Change-Id: Ib65e8209477251cce15161b2502c893f9983da42
2023-02-01 07:44:43 +00:00
Benjamin Grimberg
981c9c2236 Fix AttestKeyTest failures in KeyMint VTS
Skip attestation key tests if the feature
FEATURE_KEYSTORE_APP_ATTEST_KEY is disabled on device,
as done in KeyMint CTS.

Bug: 244460948
Bug: 265740739

Test: VtsAidlKeyMintTargetTest
Change-Id: I8199e5c7570b10b71f127c7439b889c0b3327865
2023-01-31 08:12:27 -07:00
David Drysdale
b7d44a2eef Add check_feature helper
Test: VtsAidlKeyMintTargetTest
Change-Id: I4a5b2a41172c15ae29efb5b177eb86cea5527b4e
Merged-In: I4a5b2a41172c15ae29efb5b177eb86cea5527b4e
(cherry picked from commit 3d2ba0a137)
2023-01-31 08:11:33 -07:00
Eran Messeri
cd46e02439 Merge "Keystore: Attestation fix in AOSP builds" 2023-01-31 13:43:55 +00:00
Eran Messeri
506089a8e9 Merge "Extending AttestKeyTest#EcdsaAttestationID test to use IMEI as attestation id." 2023-01-24 16:48:26 +00:00
David Drysdale
9c99dc9a39 Add missing endquote and newline
Test: tsAidlKeyMintTargetTest --gtest_filter="*KeyBlobUpgradeTest*After*default"  --keyblob_dir /data/local/tmp/keymint-blobs
Change-Id: I6f1d2778637cf4603e1ab896d63df936fbf82a38
2023-01-24 12:21:21 +00:00
Rajesh Nyamagoud
eb644cfcbe Extending AttestKeyTest#EcdsaAttestationID test to use IMEI as
attestation id.

Get IMEI value from Telephony Service and use it as attestation id.

Bug: 261847629
Test: atest VtsAidlKeyMintTargetTest
Change-Id: I0212def48d761a45f514161e5576a954bf388c56
2023-01-20 20:32:05 +00:00
Treehugger Robot
2524ba06a2 Merge "Adjust for library rename" 2023-01-18 21:54:46 +00:00
subrahmanyaman
a7a6f70e62 Updated the digest to SHA_2_256 in key upgrade tests.
Updated the digest to SHA_2_256 in manaul key upgrade tests
so that these tests works for StrongBox as well.

Test: VtsAidlKeyMintTargetTest
Change-Id: I971f6e13272450d39537cc44c59f8ed8dbd19bf0
2023-01-18 18:13:27 +00:00
Treehugger Robot
8e8f82502b Merge "Use libcert_request_validator to check DICE chain" 2023-01-18 00:03:04 +00:00
Eran Messeri
a720d56824 Merge "2nd IMEI attestation: Clarify tag usage." 2023-01-17 11:39:42 +00:00
Andrew Scull
c54f43300d Adjust for library rename
libcert_request_validator is now called libhwtrust so update the
references to match.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I3c73e2749996ef684da4567a3c86daf8b9c0fd09
2023-01-15 21:51:44 +00:00
Andrew Scull
9a8c945682 Use libcert_request_validator to check DICE chain
Remove one of the DICE chain validation implementations and replace it
with a call to the libcert_request_validator library which has the most
complete validation and is planned to be the only implementation we
support.

VTS will now check both degenerate and proper DICE chain more completely
and will be consistent with other tools like `bcc_validator`. P-384 will
become a supported key type in the DICE chain.

The whole static library is included so that clients that statically
link remote_prov_utils don't need to be aware of the dependency.

Bug: 254510672
Bug: 265455904
Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I067f7e8710e379a4b404ef9d2c04fe6410f73dc4
2023-01-15 21:51:41 +00:00
Eran Messeri
36594490fd 2nd IMEI attestation: Clarify tag usage.
Clarify that the tag for the 2nd IMEI must denote an IMEI different to
the tag used for the first IMEI, and may be used independently of it.

Bug: 264979486
Test: N/A
Change-Id: I45a46d1052e45a965c8be391d11157cc4481545b
2023-01-15 10:39:22 +00:00
Daniel Angell
1f5ab0d6f8 Make libkeymint_remote_prov_support a static dep
This made it easier to run libkeymint_remote_prov_support_test.

Bug: 264302050
Test: atest libkeymint_remote_prov_support_test
Change-Id: Ided4e9bb442274ea7711d283bc947c35f34ebc35
2023-01-13 18:30:40 +00:00
Daniel Angell
eacb1c16f1 Add ro.serialno sysprop to JSON output
To help with error reporting on the RKP servers in the future it
will be helpful to be able to address CSRs by serial number when
possible.

Bug: 264302050
Test: libkeymint_remote_prov_support_test and sent JSON to server
Change-Id: I2808441c200d0679e618580abc464cd3c71c220e
2023-01-13 18:30:38 +00:00
David Drysdale
3d2ba0a137 Add check_feature helper
Test: VtsAidlKeyMintTargetTest
Change-Id: I4a5b2a41172c15ae29efb5b177eb86cea5527b4e
2023-01-11 13:27:30 +00:00
Seth Moore
bbee0080d9 Fix test assumption for KeyMint+RKP integration
It's not enough to verify that the system is running KeyMint 2+. We
also need to verify that the vendor partition has RKP support.

Since VSR 13+ requires KeyMint 2+, change the test assumption so that
we don't run the test against systems that may have shipped with an
older VSR chipset (which won't support RKP).

Bug: 263844771
Test: VtsAidlKeyMintTargetTest (on old and new device)
Change-Id: Iac15f69db1152851f5a92d3929cb258b1b1a6b02
2023-01-03 14:19:16 -08:00