summaryrefslogtreecommitdiff
path: root/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-07-02 07:41:24 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-07-02 07:41:24 +0000
commit26f1b51bfbd5e8d2d2e55247a8bae49ccd52872d (patch)
tree0d99225e22e2956cf075fcf48527d0e17e872c0f /keymaster/4.0/vts/functional/KeymasterHidlTest.cpp
parent3adfddb29552dbf79387c23e10a9960d1f9c2f79 (diff)
parent8b76f6692c718c21272d3585541b72fed7ac93f0 (diff)
Merge "DO NOT MERGE - Merge qt-dev-plus-aosp-without-vendor (5699924) into stage-aosp-master" into stage-aosp-master
Diffstat (limited to 'keymaster/4.0/vts/functional/KeymasterHidlTest.cpp')
-rw-r--r--keymaster/4.0/vts/functional/KeymasterHidlTest.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp b/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp
index 995ae4f45c..3af1df32d3 100644
--- a/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp
+++ b/keymaster/4.0/vts/functional/KeymasterHidlTest.cpp
@@ -16,6 +16,7 @@
#include "KeymasterHidlTest.h"
+#include <chrono>
#include <vector>
#include <android-base/logging.h>
@@ -206,6 +207,47 @@ void KeymasterHidlTest::CheckedDeleteKey() {
CheckedDeleteKey(&key_blob_);
}
+void KeymasterHidlTest::CheckCreationDateTime(
+ const AuthorizationSet& sw_enforced,
+ std::chrono::time_point<std::chrono::system_clock> creation) {
+ for (int i = 0; i < sw_enforced.size(); i++) {
+ if (sw_enforced[i].tag == TAG_CREATION_DATETIME) {
+ std::chrono::time_point<std::chrono::system_clock> now =
+ std::chrono::system_clock::now();
+ std::chrono::time_point<std::chrono::system_clock> reported_time{
+ std::chrono::milliseconds(sw_enforced[i].f.dateTime)};
+ // The test is flaky for EC keys, so a buffer time of 120 seconds will be added.
+ EXPECT_LE(creation - 120s, reported_time);
+ EXPECT_LE(reported_time, now + 1s);
+ }
+ }
+}
+
+void KeymasterHidlTest::CheckGetCharacteristics(const HidlBuf& key_blob, const HidlBuf& client_id,
+ const HidlBuf& app_data,
+ KeyCharacteristics* key_characteristics) {
+ HidlBuf empty_buf = {};
+ EXPECT_EQ(ErrorCode::OK,
+ GetCharacteristics(key_blob, client_id, app_data, key_characteristics));
+ EXPECT_GT(key_characteristics->hardwareEnforced.size(), 0);
+ EXPECT_GT(key_characteristics->softwareEnforced.size(), 0);
+
+ EXPECT_EQ(ErrorCode::INVALID_KEY_BLOB,
+ GetCharacteristics(key_blob, empty_buf, app_data, key_characteristics));
+ EXPECT_EQ(key_characteristics->hardwareEnforced.size(), 0);
+ EXPECT_EQ(key_characteristics->softwareEnforced.size(), 0);
+
+ EXPECT_EQ(ErrorCode::INVALID_KEY_BLOB,
+ GetCharacteristics(key_blob, client_id, empty_buf, key_characteristics));
+ EXPECT_EQ(key_characteristics->hardwareEnforced.size(), 0);
+ EXPECT_EQ(key_characteristics->softwareEnforced.size(), 0);
+
+ EXPECT_EQ(ErrorCode::INVALID_KEY_BLOB,
+ GetCharacteristics(key_blob, empty_buf, empty_buf, key_characteristics));
+ EXPECT_EQ(key_characteristics->hardwareEnforced.size(), 0);
+ EXPECT_EQ(key_characteristics->softwareEnforced.size(), 0);
+}
+
ErrorCode KeymasterHidlTest::GetCharacteristics(const HidlBuf& key_blob, const HidlBuf& client_id,
const HidlBuf& app_data,
KeyCharacteristics* key_characteristics) {