Implement GetKeyCharacteristics.
Still need to add serialization to the messages.
Change-Id: I572c48474bf4d4f553d53cad475b57fa8937a02a
diff --git a/authorization_set_test.cpp b/authorization_set_test.cpp
index 61e526f..d8c0167 100644
--- a/authorization_set_test.cpp
+++ b/authorization_set_test.cpp
@@ -19,6 +19,7 @@
#define KEYMASTER_NAME_TAGS
#include "authorization_set.h"
+#include "google_keymaster_test_utils.h"
#include "google_keymaster_utils.h"
int main(int argc, char** argv) {
@@ -27,87 +28,8 @@
return result;
}
-static bool operator==(const keymaster_key_param_t& a, const keymaster_key_param_t& b) {
- if (a.tag != b.tag) {
- return false;
- }
-
- switch (keymaster_tag_get_type(a.tag)) {
- default:
- return false;
- case KM_INVALID:
- return true;
- case KM_INT_REP:
- case KM_INT:
- return a.integer == b.integer;
- case KM_ENUM_REP:
- case KM_ENUM:
- return a.enumerated == b.enumerated;
- case KM_LONG:
- return a.long_integer == b.long_integer;
- case KM_DATE:
- return a.date_time == b.date_time;
- case KM_BOOL:
- return a.boolean == b.boolean;
- case KM_BIGNUM:
- case KM_BYTES:
- if ((a.blob.data == NULL || b.blob.data == NULL) && a.blob.data != b.blob.data)
- return false;
- return a.blob.data_length == b.blob.data_length &&
- (memcmp(a.blob.data, b.blob.data, a.blob.data_length) == 0);
- }
-}
-
-static std::ostream& operator<<(std::ostream& os, const keymaster_key_param_t& param) {
- os << "Tag: " << keymaster_tag_mask_type(param.tag);
- switch (keymaster_tag_get_type(param.tag)) {
- case KM_INVALID:
- os << " Invalid";
- break;
- case KM_INT_REP:
- os << " (Rep) ";
- /* Falls through */
- case KM_INT:
- os << " Int: " << param.integer;
- break;
- case KM_ENUM_REP:
- os << " (Rep) ";
- /* Falls through */
- case KM_ENUM:
- os << " Enum: " << param.enumerated;
- break;
- case KM_LONG:
- os << " Long: " << param.long_integer;
- break;
- case KM_DATE:
- os << " Date: " << param.date_time;
- break;
- case KM_BOOL:
- os << " Bool: " << param.boolean;
- break;
- case KM_BIGNUM:
- os << " Bignum: ";
- break;
- case KM_BYTES:
- os << " Bytes: ";
- break;
- }
- os << std::endl;
- return os;
-}
-
namespace keymaster {
-static bool operator==(const AuthorizationSet& a, const AuthorizationSet& b) {
- if (a.size() != b.size())
- return false;
-
- for (size_t i = 0; i < a.size(); ++i)
- if (!(a[i] == b[i]))
- return false;
- return true;
-}
-
namespace test {
TEST(Construction, ListProvided) {
@@ -138,9 +60,7 @@
};
AuthorizationSet set(params, array_length(params));
AuthorizationSet set2(set);
- ASSERT_EQ(set.size(), set2.size());
- for (size_t i = 0; i < set.size(); ++i)
- EXPECT_EQ(set[i], set2[i]);
+ EXPECT_EQ(set, set2);
}
TEST(Lookup, NonRepeated) {
@@ -247,11 +167,7 @@
AuthorizationSet deserialized(buf.get(), size);
EXPECT_EQ(AuthorizationSet::OK, deserialized.is_valid());
-
- EXPECT_EQ(set.size(), deserialized.size());
- for (size_t i = 0; i < set.size(); ++i) {
- EXPECT_EQ(set[i], deserialized[i]);
- }
+ EXPECT_EQ(set, deserialized);
int pos = deserialized.find(TAG_APPLICATION_ID);
ASSERT_NE(-1, pos);