summaryrefslogtreecommitdiff
path: root/tests/keyguard_messages_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/keyguard_messages_test.cpp')
-rw-r--r--tests/keyguard_messages_test.cpp77
1 files changed, 71 insertions, 6 deletions
diff --git a/tests/keyguard_messages_test.cpp b/tests/keyguard_messages_test.cpp
index 10f81bd..fd70c07 100644
--- a/tests/keyguard_messages_test.cpp
+++ b/tests/keyguard_messages_test.cpp
@@ -46,12 +46,12 @@ static SizedBuffer *make_buffer(size_t size) {
return result;
}
-TEST(RoundTripTest, EnrollRequest) {
+TEST(RoundTripTest, EnrollRequestNullEnrolledNullHandle) {
const size_t password_size = 512;
SizedBuffer *provided_password = make_buffer(password_size);
const SizedBuffer *deserialized_password;
// create request, serialize, deserialize, and validate
- EnrollRequest req(USER_ID, provided_password);
+ EnrollRequest req(USER_ID, NULL, provided_password, NULL);
uint8_t *serialized_req = req.Serialize();
EnrollRequest deserialized_req;
deserialized_req.Deserialize(serialized_req, serialized_req + req.GetSerializedSize());
@@ -64,9 +64,74 @@ TEST(RoundTripTest, EnrollRequest) {
ASSERT_EQ(USER_ID, deserialized_req.user_id);
ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size));
+ ASSERT_EQ((size_t) 0, deserialized_req.enrolled_password.length);
+ ASSERT_EQ(NULL, deserialized_req.enrolled_password.buffer.get());
+ ASSERT_EQ((size_t) 0, deserialized_req.password_handle.length);
+ ASSERT_EQ(NULL, deserialized_req.password_handle.buffer.get());
delete provided_password;
}
+TEST(RoundTripTest, EnrollRequestEmptyEnrolledEmptyHandle) {
+ const size_t password_size = 512;
+ SizedBuffer *provided_password = make_buffer(password_size);
+ SizedBuffer enrolled;
+ SizedBuffer handle;
+ const SizedBuffer *deserialized_password;
+ // create request, serialize, deserialize, and validate
+ EnrollRequest req(USER_ID, &handle, provided_password, &enrolled);
+ uint8_t *serialized_req = req.Serialize();
+ EnrollRequest deserialized_req;
+ deserialized_req.Deserialize(serialized_req, serialized_req + req.GetSerializedSize());
+ delete[] serialized_req;
+
+ ASSERT_EQ(keyguard::keyguard_error_t::KG_ERROR_OK,
+ deserialized_req.error);
+
+ deserialized_password = &deserialized_req.provided_password;
+ ASSERT_EQ(USER_ID, deserialized_req.user_id);
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
+ ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size));
+ ASSERT_EQ((size_t) 0, deserialized_req.enrolled_password.length);
+ ASSERT_EQ(NULL, deserialized_req.enrolled_password.buffer.get());
+ ASSERT_EQ((size_t) 0, deserialized_req.password_handle.length);
+ ASSERT_EQ(NULL, deserialized_req.password_handle.buffer.get());
+ delete provided_password;
+}
+
+TEST(RoundTripTest, EnrollRequestNonNullEnrolledOrHandle) {
+ const size_t password_size = 512;
+ SizedBuffer *provided_password = make_buffer(password_size);
+ SizedBuffer *enrolled_password = make_buffer(password_size);
+ SizedBuffer *password_handle = make_buffer(password_size);
+ const SizedBuffer *deserialized_password;
+ const SizedBuffer *deserialized_enrolled;
+ const SizedBuffer *deserialized_handle;
+ // create request, serialize, deserialize, and validate
+ EnrollRequest req(USER_ID, password_handle, provided_password, enrolled_password);
+ uint8_t *serialized_req = req.Serialize();
+ EnrollRequest deserialized_req;
+ deserialized_req.Deserialize(serialized_req, serialized_req + req.GetSerializedSize());
+ delete[] serialized_req;
+
+ ASSERT_EQ(keyguard::keyguard_error_t::KG_ERROR_OK,
+ deserialized_req.error);
+
+ deserialized_password = &deserialized_req.provided_password;
+ deserialized_enrolled = &deserialized_req.enrolled_password;
+ deserialized_handle = &deserialized_req.password_handle;
+ ASSERT_EQ(USER_ID, deserialized_req.user_id);
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
+ ASSERT_EQ(0, memcmp(req.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size));
+ ASSERT_EQ((uint32_t) password_size, deserialized_enrolled->length);
+ ASSERT_EQ(0, memcmp(req.enrolled_password.buffer.get(), deserialized_enrolled->buffer.get(), password_size));
+ ASSERT_EQ((uint32_t) password_size, deserialized_handle->length);
+ ASSERT_EQ(0, memcmp(req.password_handle.buffer.get(), deserialized_handle->buffer.get(), password_size));
+ delete provided_password;
+ delete enrolled_password;
+ delete password_handle;
+}
+
+
TEST(RoundTripTest, EnrollResponse) {
const size_t password_size = 512;
SizedBuffer *enrolled_password = make_buffer(password_size);
@@ -116,10 +181,10 @@ TEST(RoundTripTest, VerifyRequest) {
TEST(RoundTripTest, VerifyResponse) {
const size_t password_size = 512;
- SizedBuffer *verification_token = make_buffer(password_size);
+ SizedBuffer *auth_token = make_buffer(password_size);
const SizedBuffer *deserialized_password;
// create request, serialize, deserialize, and validate
- VerifyResponse req(USER_ID, verification_token);
+ VerifyResponse req(USER_ID, auth_token);
uint8_t *serialized_req = req.Serialize();
VerifyResponse deserialized_req;
deserialized_req.Deserialize(serialized_req, serialized_req + req.GetSerializedSize());
@@ -129,9 +194,9 @@ TEST(RoundTripTest, VerifyResponse) {
deserialized_req.error);
ASSERT_EQ(USER_ID, deserialized_req.user_id);
- deserialized_password = &deserialized_req.verification_token;
+ deserialized_password = &deserialized_req.auth_token;
ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(req.verification_token.buffer.get(), deserialized_password->buffer.get(),
+ ASSERT_EQ(0, memcmp(req.auth_token.buffer.get(), deserialized_password->buffer.get(),
password_size));
}