Commit Graph

422 Commits

Author SHA1 Message Date
Max Bires
89c7488370 Increase challenge size in tests.
VTS tests were currently passing a challenge size of 32 in all cases.
However, the server currently sends a challenge of length 40, which may
or may not change in the future. A 64 byte upper limit provides a
standard size along with flexibility in case the challenge format
changes in the future.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I678bb915f139e4c23354180870a66ce33a9cfd8c
2022-04-20 12:23:19 +00:00
David Drysdale
b809329dc7 Fix AES corrupt padding test
The AesEcbPkcs7PaddingCorrupted test has been incorrect since it was
originally introduced -- it was feeding the original message as input to
the decryption operation, rather than the corrupted ciphertext.  As a
result, the expected error code was also wrong -- INVALID_INPUT_LENGTH
is appropriate for a too-short cipher text (length 1 in this case),
whereas a corrupt-but-correct-length cipher text should give
INVALID_ARGUMENT.

Fix the test, and add a separate test to cover what was inadvertently
being tested before. Add a sentence to the HAL spec to describe what
expected and tested by CTS/VTS.

Bug: 194126736
Test: VtsAidlKeyMintTargetTest, VtsHalKeymasterV4_0TargetTest
Change-Id: Iaa5e42768814197f373797831093cf344d342b77
2022-04-11 08:35:11 +01:00
Prashant Patil
88ad189036 KeyMint: Device IDs attestation based on verion.
Updated VTS testcases where Device IDs Attestation expected as optional
and made it mandatory if KeyMint version >= 2 or device first shipped
with api_level 33.

Bug: 221190197
Test: run vts -m VtsAidlKeyMintTargetTest
Change-Id: I8870a9301d36abdc4fa6585b9f8d62cc1cfd3d96
2022-03-25 12:16:11 +00:00
Treehugger Robot
950b7b8026 Merge "Updated the vts attestation tests for strongbox implementations which do not support factory attestation." 2022-03-24 16:35:47 +00:00
subrahmanyaman
7d9bc46f6f Updated the vts attestation tests for strongbox implementations which
do not support factory attestation.

Bug: b/219962281
Test: Run vts tests.
Change-Id: Ie3f3f33f773227d879e11f11e2ef0eaee33db648
2022-03-23 22:27:05 +00:00
Treehugger Robot
1edd38d6ee Merge "Fix CDDL for signatures." 2022-03-22 16:50:39 +00:00
Alan Stokes
ba9f55ee69 Fix CDDL for signatures.
The signature is not CBOR-encoded, it's the raw bytes of the signature
encoded as specified for the specific algorithm.

I've made the references to PureEd25519() / ECDSA() into comments,
since I believe they're not actually legal CDDL but are aimed at
humans. And I've made the two occurrences consistent with each other.

Test: N/A
Change-Id: Ia42362ff3d0ce5458322663256cbd34d258afe76
2022-03-22 15:23:13 +00:00
David Drysdale
d057fc0cb6 Merge "KeyMint VTS: strict test only for v2+" 2022-03-22 09:28:52 +00:00
David Drysdale
afa73442b7 Merge "KeyMint HAL: clarify ATTEST_KEY is like SIGN" 2022-03-22 09:26:41 +00:00
David Drysdale
bcb2f73475 KeyMint HAL: clarify ATTEST_KEY is like SIGN
Bug: 221280929
Test: None, comment change only (already assumed by VTS tests)
Change-Id: Ifc077c6ce1a89164b0d7c70c6e3353d941eee670
2022-03-21 17:14:59 +00:00
Max Bires
cf02e97946 Merge "More canonicalization checks and canonicalize before signing" 2022-03-21 16:33:20 +00:00
David Drysdale
50a66b8f79 KeyMint VTS: strict test only for v2+
Bug: 223537775
Bug: 197096139
Test: VtsAidlKeyMintTargetTest
Change-Id: Ib77d52e4a91233c936b3a44f5eac71f53b2af450
2022-03-21 15:29:00 +00:00
Max Bires
e74f0bc950 More canonicalization checks and canonicalize before signing
This change makes sure the DeviceInfo CBOR map is canonicalized before
the signature check instead of just separately checking the
canonicalization in a separate call. Additionally, some ASSERTs have
been changed to EXPECTs in validation of the DeviceInfo map more
generally, where it makes sense to avoid failing immediately.

Test: atest VtsHalRemotelyProvisionedComponentTargetTest
Change-Id: I69806c887656772ea6b5e2e3f0af50957e6b05e3
2022-03-21 05:19:15 +00:00
Tri Vo
a26f8cb316 Merge "KeyMint VTS: Expect empty key if boot state unverfied" 2022-03-18 18:14:31 +00:00
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
Tri Vo
af2914162f KeyMint VTS: Expect empty key if boot state unverfied
Bug: 221128605
Test: VtsAidlKeyMintTargetTest
Change-Id: Icbf0ccf57245b2eef559a119087e15cd883239f5
2022-03-08 10:06:06 -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