Commit Graph

586 Commits

Author SHA1 Message Date
Treehugger Robot
92983ca769 Merge "Add proposed trendy teams for VTS modules" into main am: 094b92841f am: 36fe09979e
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3304542

Change-Id: I0a51f48507f465c4c67ac8d09b8486d1fc26ddd2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-10-22 16:38:10 +00:00
Treehugger Robot
094b92841f Merge "Add proposed trendy teams for VTS modules" into main 2024-10-22 16:17:21 +00:00
Andrea Orru
85edd4dddd Merge "keymaster_benchmark: remove usage of base::CommandLine" into main am: 03cafd0b65 am: e6248dfd84
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3309396

Change-Id: I00380ff905f4e38aeaca459f23f1704acfff8cb7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-10-16 02:16:52 +00:00
Andrea Orru
46591a9c48 keymaster_benchmark: remove usage of base::CommandLine
As part of the effort to uprev libchrome in Android, we are trying
to remove Android dependencies to libchrome that are not strictly
required.

Bug: 360917504
Test: Presubmit
Change-Id: Icce3f3a6c075509968d3565aec3153c4771ebb2d
2024-10-15 09:24:45 +00:00
Yihan Dong
8c111de52b Add proposed trendy teams for VTS modules
Change-Id: Iedaa3412d58aa501a8ecdeceb9f87e2473f3b422
Test: build locally
Bug: 368362374
2024-10-12 08:59:17 +00:00
Jeff Pu
a3c5736d5d Face VHAL for user build
Bug: 326227403
Test: atest android.hardware.biometrics.face.* -c
Test: atest CtsBiometricsTestCases -c
Ignore-AOSP-First: Not release until 25q2
Change-Id: Ic300cca9f91af3dec3816f16e729656e91f36024
2024-09-19 15:32:34 +00:00
Patryk Duda
2d00cd0b68 Enable Rust backend on Keymint, Fingerprint and Biometrics interfaces
This is necessary to implement fingerprint HAL in Rust.

Bug: 366409699
Test: Build pass
Merged-In: I6d925fadb94252cd9d66f93b3085c231ff52fe86
Change-Id: I6d925fadb94252cd9d66f93b3085c231ff52fe86
2024-09-16 11:33:43 +00:00
Patryk Duda
658daed838 Enable Rust backend on Keymint, Fingerprint and Biometrics interfaces
This is necessary to implement fingerprint HAL in Rust.

Bug: 366409699
Test: Build pass
Ignore-AOSP-First: Get around auto-merger conflict with main
(cherry picked from https://android-review.googlesource.com/q/commit:eb11ce8129f7f84ce52669a64318de405d0f4431)

Merged-In: I6d925fadb94252cd9d66f93b3085c231ff52fe86
Change-Id: I6d925fadb94252cd9d66f93b3085c231ff52fe86
2024-09-13 17:38:58 +00:00
Jeff Pu
e0263c404a Bind Fingerprint Virutal HAL with IVirtual interface
Bug: 326227403
Test: atest CtsBiometricsTestCases -c
Ignore-AOSP-First: CLs of other related projects needs this  CL to run
    presubmit tests
Change-Id: I295925d7c26235dc66c7c9481d08661095c8dc92
2024-09-03 11:50:15 -04:00
yangbill
c6d62986bf Convert hardware/interfaces/keymaster/3.0/default/Android.mk to Android.bp
Convert android.hardware.keymaster@3.0-impl and
android.hardware.keymaster@3.0-service from
hardware/interfaces/keymaster/3.0/default/Android.mk

Bug: 347641032
Test: m android.hardware.keymaster@3.0-impl
      m android.hardware.keymaster@3.0-service
Change-Id: I717a47b2c3ad0b261f5de0a89b38cfab478b40dc
2024-07-03 05:56:27 +00:00
Ryan Prichard
aecb0333b0 Replace std::basic_string<uint8_t> with std::vector
In newer versions of libc++, std::char_traits<T> is no longer defined
for non-character types, and a result, std::basic_string<uint8_t> is
also no longer defined. See
https://discourse.llvm.org/t/deprecating-std-string-t-for-non-character-t/66779.

Bug: 175635923
Test: make checkbuild
Change-Id: Icb3937d8b1ff6dbe7e35e62f2e6cc1e2eb789121
2024-02-12 20:15:47 -08:00
Ayushi Khopkar
3b47e81f1c Updated fuzz_config in Android.bp file
Added new fields in fuzz_config like - hotlists,
description, vector, service_privilege, users, fuzzed_code_usage, etc.

Bug: 271384401
Bug: 306435930
Test: Build the updated fuzz targets

Change-Id: I7534e278c59dc9dc46b481ce5bbb3efa2a51bb56
2023-11-10 10:14:51 +05:30
Treehugger Robot
db1da1c8a6 Merge "Refactored keymaster4_utils_fuzzer" into main 2023-10-30 05:14:00 +00:00
Aditya Wazir
7001c367ef Refactored keymaster4_utils_fuzzer
The following are the updates to the fuzzer:
1. Randomized order of apis.

Test: ./keymaster4_utils_fuzzer
exec/s: 4950
Bug: 302149569

Change-Id: Ie5d80a4e1d28ddd76a9c16609d20995d93710965
2023-10-23 07:04:48 +00:00
Ryan Prichard
2abfe4abc7 Merge "Fix nonce uniqueness tests" into main am: 8d333ff410
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2758146

Change-Id: Ifc31204eaea700e50e8ac0601fa77911b590b65c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-22 20:51:37 +00:00
Ryan Prichard
b2c9d5c9a6 Fix nonce uniqueness tests
std::unique consolidates the unique nonces at the start of the `nonces`
vector, but it doesn't modify nonces.size(), so these tests weren't
actually verifying that the nonces were unique. Add a vector::erase
call to shrink the vector.

After upgrading libc++, std::unique is [[nodiscard]] and this bug is
a compiler error.

Bug: 175635923
Test: treehugger
Test: m VtsAidlSharedSecretTargetTest VtsHalKeymasterV4_0TargetTest
Change-Id: I7fd8c40a3920bf3a8988c8065503c78ba36dc742
2023-09-20 16:11:35 -07:00
Treehugger Robot
779971ccee Merge "Keymaster VTS: add TEST_MAPPING" am: fce05decfc am: 5721b05a66 am: 8ca0d0f7be
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2603747

Change-Id: I23522ea5ac602236d61ec25f8261940835c9f16b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-12 20:05:30 +00:00
Treehugger Robot
fce05decfc Merge "Keymaster VTS: add TEST_MAPPING" 2023-06-12 16:57:08 +00:00
Tri Vo
0d5e77816b Merge "KM 4 test fix Root-of-Trust parsing" am: 29e3465494 am: f08398126f am: e183724f74
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2603248

Change-Id: Iec5e8d95605a0adcd8d9fa574a1ce9e594ae840e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-25 19:48:06 +00:00
Tri Vo
82602e2274 Keymaster VTS: add TEST_MAPPING
Test: presubmit
Change-Id: Ida2f2b02b5f69aa9e0ffb8c7aede9b3ebce618c0
2023-05-24 16:58:27 -04:00
Tri Vo
4387c4d619 KM 4 test fix Root-of-Trust parsing
ROT was previously parsed into local variable, then discarded.
Fix it so that we are actually using parsed values.

Bug: 283892150
Test: VtsHalKeymasterV4_0TargetTest
Change-Id: I8af439d6262141648b01f1accaa9eb739fea85f8
2023-05-24 14:15:29 -04:00
David Benjamin
dd38b57f33 Use BoringSSL's public API in keymaster_hidl_hal_test am: 727f1ed7f3 am: ba14346ea7 am: 19ded5fc02
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2588645

Change-Id: I5e1fd06d8a959c3d91014bc8f7fe35542748e9b5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-15 08:10:10 +00:00
David Benjamin
727f1ed7f3 Use BoringSSL's public API in keymaster_hidl_hal_test
Reaching into the struct will fail to build in the future when we make
the struct opaque. Use the public APIs instead.

Test: mm, treehugger
Change-Id: I78cbf5e66f0c4a891049edd187c8705ad163f658
2023-05-15 00:16:39 -04:00
Treehugger Robot
a0ca3e549b Merge "KM 4 tests for Root-of-Trust" am: 62d6a35dfc am: e8c50237d2 am: 96ba494049
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2582033

Change-Id: Ib2575c4ecb6c6702f3e2db93ec11eed021d0de32
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-11 22:31:07 +00:00
Tri Vo
06843cb67a KM 4 tests for Root-of-Trust
Add tests for device locked state, verfied boot state and VBMeta digest.

Bug: 255344624
Test: VtsHalKeymasterV4_0TargetTest against default impl of KM 4
Change-Id: I46e62ab9031d3745f99bd214f9e579e80edc9128
2023-05-11 14:53:58 -04:00
Alex Buynytskyy
ec1198d941 UpsideDownCake is now 34
Ignore-AOSP-First: UpsideDownCake Finalization
Bug: 275409981
Test: build
Change-Id: I832ab7a8b5445ba85e27bbcf5be64906bfa0e5be
2023-04-07 23:41:20 +00:00
Yi Kong
1a39569491 Fix return-stack-address warning
Apply the same fix as https://r.android.com/2462896 to
keymaster/4.0/vts/performance/Benchmark.cpp

Test: presubmit
Bug: 271241374
Change-Id: Ib0d2a3a523491d0522f5b3dd031cdde46f88a165
2023-03-01 11:10:02 +00:00
Yinchu Chen
8bbaaa103e Add an exception for QTI SM8550
SM8550 doesn't support Keymint2.0, per the discussion in b/
add an exception in the test case when SM8550 is detected.

Bug: b/245649355
Test: VtsHalKeymasterV4_0TargetTest

Change-Id: I788a80c0f9b011f73aac9a8c4774e70e203ac3d6
2022-12-23 07:14:49 +00:00
Ilya Matyukhin
e00ec5d9fc Add @hide to the keymaster interfaces
This change allows the framework to depend on biometric AIDL types, for
example: `android.hardware.keymaster.HardwareAuthToken`.

The dependency can be introduced with a `-java-source` target, for
example: `:android.hardware.keymaster-V4-java-source`.

The "@hide" annotation informs Metalava that these types are not a
public API (not part of the SDK).

Bug: 218388821
Test: m android.hardware.keymaster-update-api
Change-Id: I0da555645f1548ad7124732236054f6e408c43e5
2022-11-01 20:38:02 +00:00
David Drysdale
02abced109 Coalesce OWNERS and add component
Test: TreeHugger
Bug: 237676243
Change-Id: I04f79cfcf3a4a4dd132e17e93b53c2807818d60d
2022-10-13 09:25:48 +01:00
Jooyung Han
c3f8861bb8 Merge "Remove AIDL-libs from VNDK" 2022-06-20 01:15:09 +00: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
Jooyung Han
d81d6a12be Remove AIDL-libs from VNDK
Some are still in VNDK because they are used in other VNDK libs.

Bug: 234181591
Test: m
Merged-In: If999df9c78a20df931177da11742b1c5de19bc08
Change-Id: If999df9c78a20df931177da11742b1c5de19bc08
2022-06-14 16:42:42 +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
Tommy Chiu
ee70569078 Add EncryptionOperationsTest.AesCbcZeroInputSuccess
Check if the zero input data with AES-CBC-[NONE|PKCS7] padding mode
generates correct output data and length.

Bug: 200553873
Test: VtsHalKeymasterV4_0TargetTest, VtsAidlKeyMintTargetTest
Merged-In: I729c2bad65e9d8b194422032346e5ee3c4b0dce5
Change-Id: I729c2bad65e9d8b194422032346e5ee3c4b0dce5
2022-05-31 13:37:55 +01: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
Pirama Arumuga Nainar
da5fa76f9f Build with upstream lld: Fix incorrect static dependencies
Bug: http://b/197965342

Remove unnecessary `static_libs` dependencies or move them to
`shared_libs` to build with upstream LLD.  See b/197965342#comment1
(internal) for rationale.  Some info is available externally at
https://github.com/llvm/llvm-project/issues/42899.

Per go/android-lld-static-lib-fix, OWNERS are added for visibility.  No
action is needed if the change looks good.  This change will be merged
after two business days with Global Approvers.

Test: Build modules with aosp/2036867 in addition to presubmit
Change-Id: I6b607969ab89605d392344d307f5deeb883d4191
2022-04-06 23:05:20 +00:00
David Drysdale
d3e783be43 Merge "Add OWNER for keymaster VTS" 2022-03-14 16:04:31 +00:00
David Drysdale
f06d5d3978 Add OWNER for keymaster VTS
Test: TreeHugger
Change-Id: I2ff243a2cadbfcc9bedf634f9a9327b2fa8ccd63
2022-03-14 14:28:27 +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
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
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
David Drysdale
4daee77052 Merge "Turn off CFI for other Keymaster VTS versions" 2022-01-21 07:58:28 +00:00
David Drysdale
f3e239fc36 Turn off CFI for other Keymaster VTS versions
Repeat the change for the 4.0 KeyMaster VTS tests in 3.0 and 4.1.

See previous change: I12b145dad5535846d68c97954d31a93123bb95e7

Bug: 206498742
Test: VtsHalKeymasterV4_1TargetTest, VtsHalKeymasterV3_0TargetTest
Change-Id: I3b4f9bc13e155ff451d03318d114a01abbbf138e
2022-01-19 19:23:12 +00:00
David Drysdale
c6b8907a32 Alter spec text for RSA-PSS to match reality
The Key{Mint,Master} spec previously said that RSA-PSS mode should use
SHA-1 for the MGF1 digest, separately from whatever Tag::DIGEST gets
specified as the main digest.

However, both the reference implementation and the VTS/CTS tests
use BoringSSL's defaults, which is to re-use the main digest as the MGF1
digest if none is separately specified.

Given that this behaviour is embedded in many implementations over
several years (and given that there isn't a security implication),
change the spec to match this behaviour.  Also update the VTS test
code to make this clear/obvious.

Test: VtsAidlKeyMintTargetTest, VtsHalKeymasterV4_0TargetTest
Bug: 210424594
Merged-In: I4303f28d094ef4d4b9dc931d6728b1fa040de20d
Change-Id: I4303f28d094ef4d4b9dc931d6728b1fa040de20d
2022-01-13 09:13:08 +00:00
David Drysdale
ab78c4b682 Merge "Turn off CFI for the Keymaster VTS" am: 1ff635ab2d
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1906291

Change-Id: Idf81c498e1b5ef26b8d5ade160217556a81340a3
2021-12-07 06:39:35 +00:00
David Drysdale
1ff635ab2d Merge "Turn off CFI for the Keymaster VTS" 2021-12-07 06:22:35 +00:00
David Drysdale
2bd0d43b24 Turn off CFI for the Keymaster VTS
On a bramble device, observed a crash in the VTS binary itself when
executing BoringSSL signature verification code locally (i.e. with no
KeyMaster interaction involved).

The crash call stack involves CFI checks, and seems to occur at the
point when some BoringSSL digest calculation code invokes a function
pointer.

 - SHA1_Update passes &sha1_block_data_order to (inlined)...
 - crypto_md32_update() which invokes the function pointer
   via its block_func parameter.

Moving the BoringSSL dependency from static_libs: libcrypto_static to
shared_libs: libcrypto makes the crash go away, but a smaller change
that also fixes the problem is to disable CFI checks for the test
binary.

This approach was inspired by:
ab65cd0e89%5E%21/#F0

The same problem looks to be relevant for the bugs listed below.

Bug: 206496340
Bug: 206498742
Test: VtsHalKeymasterV4_0TargetTest --gtest_filter="*VerificationOperationsTest.RsaAllPaddingsAndDigests*"
Change-Id: I12b145dad5535846d68c97954d31a93123bb95e7
2021-11-30 15:27:32 +00:00
David Drysdale
61cf943208 Merge "Fix flaky corrupted padding tests" am: a33f46bc2a
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1903312

Change-Id: I5e5b1e62c017e2e1db8ce099e1cabda6501ce44c
2021-11-30 07:00:16 +00:00
David Drysdale
4c1f6ac496 Fix flaky corrupted padding tests
Transfer the fix in http://aosp/1745035 from the KeyMint VTS test back
into the keymaster VTS test.

Bug: 189261752
Test: VtsHalKeymasterV4_0TargetTest
Change-Id: I5f0a69255cfe980dd6e71fa29ff06a84cb668f6d
2021-11-29 16:17:11 +00:00