diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2023-02-21 19:48:24 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-02-21 19:48:24 +0000 |
commit | 6cff83c776f1d875fc20bcf9f166f3ca87758b51 (patch) | |
tree | dfa4e9e2db0bc1655aa784b4ef670cedc379f3c2 | |
parent | e146a75eb5945b2b241ba78cc1df80ca5d01a3d2 (diff) | |
parent | efd4cf71e57a4e7a0a5eb403c67fae50f60d917b (diff) |
Merge "Enforce boot and vendor patch level format always" am: efd4cf71e5
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2441391
Change-Id: I603011283c1bece014846bf5f318651db89e4ec4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp index ebea8b27a8..41d47eee8c 100644 --- a/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp +++ b/security/keymint/aidl/vts/functional/KeyMintAidlTestBase.cpp @@ -1751,38 +1751,33 @@ bool verify_attestation_record(int32_t aidl_version, // EXPECT_EQ(security_level, att_keymint_security_level); EXPECT_EQ(security_level, att_attestation_security_level); - // TODO(b/136282179): When running under VTS-on-GSI the TEE-backed - // keymint implementation will report YYYYMM dates instead of YYYYMMDD - // for the BOOT_PATCH_LEVEL. - if (avb_verification_enabled()) { - for (int i = 0; i < att_hw_enforced.size(); i++) { - if (att_hw_enforced[i].tag == TAG_BOOT_PATCHLEVEL || - att_hw_enforced[i].tag == TAG_VENDOR_PATCHLEVEL) { - std::string date = - std::to_string(att_hw_enforced[i].value.get<KeyParameterValue::integer>()); - - // strptime seems to require delimiters, but the tag value will - // be YYYYMMDD - if (date.size() != 8) { - ADD_FAILURE() << "Tag " << att_hw_enforced[i].tag - << " with invalid format (not YYYYMMDD): " << date; - return false; - } - date.insert(6, "-"); - date.insert(4, "-"); - struct tm time; - strptime(date.c_str(), "%Y-%m-%d", &time); - - // Day of the month (0-31) - EXPECT_GE(time.tm_mday, 0); - EXPECT_LT(time.tm_mday, 32); - // Months since Jan (0-11) - EXPECT_GE(time.tm_mon, 0); - EXPECT_LT(time.tm_mon, 12); - // Years since 1900 - EXPECT_GT(time.tm_year, 110); - EXPECT_LT(time.tm_year, 200); + for (int i = 0; i < att_hw_enforced.size(); i++) { + if (att_hw_enforced[i].tag == TAG_BOOT_PATCHLEVEL || + att_hw_enforced[i].tag == TAG_VENDOR_PATCHLEVEL) { + std::string date = + std::to_string(att_hw_enforced[i].value.get<KeyParameterValue::integer>()); + + // strptime seems to require delimiters, but the tag value will + // be YYYYMMDD + if (date.size() != 8) { + ADD_FAILURE() << "Tag " << att_hw_enforced[i].tag + << " with invalid format (not YYYYMMDD): " << date; + return false; } + date.insert(6, "-"); + date.insert(4, "-"); + struct tm time; + strptime(date.c_str(), "%Y-%m-%d", &time); + + // Day of the month (0-31) + EXPECT_GE(time.tm_mday, 0); + EXPECT_LT(time.tm_mday, 32); + // Months since Jan (0-11) + EXPECT_GE(time.tm_mon, 0); + EXPECT_LT(time.tm_mon, 12); + // Years since 1900 + EXPECT_GT(time.tm_year, 110); + EXPECT_LT(time.tm_year, 200); } } |