summaryrefslogtreecommitdiff
path: root/tests/gatekeeper_messages_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gatekeeper_messages_test.cpp')
-rw-r--r--tests/gatekeeper_messages_test.cpp167
1 files changed, 77 insertions, 90 deletions
diff --git a/tests/gatekeeper_messages_test.cpp b/tests/gatekeeper_messages_test.cpp
index 706bdb5..84cce98 100644
--- a/tests/gatekeeper_messages_test.cpp
+++ b/tests/gatekeeper_messages_test.cpp
@@ -21,6 +21,8 @@
#include <gatekeeper/gatekeeper_messages.h>
+#include <vector>
+
using ::gatekeeper::SizedBuffer;
using ::testing::Test;
using ::gatekeeper::EnrollRequest;
@@ -32,9 +34,7 @@ using std::endl;
static const uint32_t USER_ID = 3857;
-static SizedBuffer *make_buffer(uint32_t size) {
- SizedBuffer *result = new SizedBuffer;
- result->length = size;
+static SizedBuffer make_buffer(uint32_t size) {
uint8_t *buffer = new uint8_t[size];
srand(size);
@@ -42,82 +42,72 @@ static SizedBuffer *make_buffer(uint32_t size) {
buffer[i] = rand();
}
- result->buffer.reset(buffer);
- return result;
+ return { buffer, size };
}
TEST(RoundTripTest, EnrollRequestNullEnrolledNullHandle) {
const uint32_t password_size = 512;
- SizedBuffer *provided_password = make_buffer(password_size);
const SizedBuffer *deserialized_password;
// create request, serialize, deserialize, and validate
- EnrollRequest msg(USER_ID, NULL, provided_password, NULL);
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ EnrollRequest msg(USER_ID, {}, make_buffer(password_size), {});
+
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
EnrollRequest deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get()
- + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
deserialized_msg.error);
deserialized_password = &deserialized_msg.provided_password;
ASSERT_EQ(USER_ID, deserialized_msg.user_id);
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size));
- ASSERT_EQ((uint32_t) 0, deserialized_msg.enrolled_password.length);
- ASSERT_EQ(NULL, deserialized_msg.enrolled_password.buffer.get());
- ASSERT_EQ((uint32_t) 0, deserialized_msg.password_handle.length);
- ASSERT_EQ(NULL, deserialized_msg.password_handle.buffer.get());
- delete provided_password;
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.provided_password.Data<uint8_t>(), deserialized_password->Data<uint8_t>(), password_size));
+ ASSERT_FALSE(deserialized_msg.enrolled_password);
+ ASSERT_FALSE(deserialized_msg.password_handle);
}
TEST(RoundTripTest, EnrollRequestEmptyEnrolledEmptyHandle) {
const uint32_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 msg(USER_ID, &handle, provided_password, &enrolled);
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ EnrollRequest msg(USER_ID, {}, make_buffer(password_size), {});
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
EnrollRequest deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get()
- + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
deserialized_msg.error);
deserialized_password = &deserialized_msg.provided_password;
ASSERT_EQ(USER_ID, deserialized_msg.user_id);
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size));
- ASSERT_EQ((uint32_t) 0, deserialized_msg.enrolled_password.length);
- ASSERT_EQ(NULL, deserialized_msg.enrolled_password.buffer.get());
- ASSERT_EQ((uint32_t) 0, deserialized_msg.password_handle.length);
- ASSERT_EQ(NULL, deserialized_msg.password_handle.buffer.get());
- delete provided_password;
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.provided_password.Data<uint8_t>(), deserialized_password->Data<uint8_t>(), password_size));
+ ASSERT_FALSE(deserialized_msg.enrolled_password);
+ ASSERT_FALSE(deserialized_msg.password_handle);
}
TEST(RoundTripTest, EnrollRequestNonNullEnrolledOrHandle) {
const uint32_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);
+ 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 msg(USER_ID, password_handle, provided_password, enrolled_password);
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ EnrollRequest msg(USER_ID, move(password_handle), move(provided_password), move(enrolled_password));
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
EnrollRequest deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get()
- + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
deserialized_msg.error);
@@ -126,54 +116,48 @@ TEST(RoundTripTest, EnrollRequestNonNullEnrolledOrHandle) {
deserialized_enrolled = &deserialized_msg.enrolled_password;
deserialized_handle = &deserialized_msg.password_handle;
ASSERT_EQ(USER_ID, deserialized_msg.user_id);
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(), password_size));
- ASSERT_EQ((uint32_t) password_size, deserialized_enrolled->length);
- ASSERT_EQ(0, memcmp(msg.enrolled_password.buffer.get(), deserialized_enrolled->buffer.get(), password_size));
- ASSERT_EQ((uint32_t) password_size, deserialized_handle->length);
- ASSERT_EQ(0, memcmp(msg.password_handle.buffer.get(), deserialized_handle->buffer.get(), password_size));
- delete provided_password;
- delete enrolled_password;
- delete password_handle;
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.provided_password.Data<uint8_t>(), deserialized_password->Data<uint8_t>(), password_size));
+ ASSERT_EQ((uint32_t) password_size, deserialized_enrolled->size());
+ ASSERT_EQ(0, memcmp(msg.enrolled_password.Data<uint8_t>(), deserialized_enrolled->Data<uint8_t>(), password_size));
+ ASSERT_EQ((uint32_t) password_size, deserialized_handle->size());
+ ASSERT_EQ(0, memcmp(msg.password_handle.Data<uint8_t>(), deserialized_handle->Data<uint8_t>(), password_size));
}
TEST(RoundTripTest, EnrollResponse) {
const uint32_t password_size = 512;
- SizedBuffer *enrolled_password = make_buffer(password_size);
const SizedBuffer *deserialized_password;
// create request, serialize, deserialize, and validate
- EnrollResponse msg(USER_ID, enrolled_password);
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ EnrollResponse msg(USER_ID, make_buffer(password_size));
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
EnrollResponse deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get()
- + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
deserialized_msg.error);
deserialized_password = &deserialized_msg.enrolled_password_handle;
ASSERT_EQ(USER_ID, deserialized_msg.user_id);
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.enrolled_password_handle.buffer.get(),
- deserialized_password->buffer.get(), password_size));
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.enrolled_password_handle.Data<uint8_t>(),
+ deserialized_password->Data<uint8_t>(), password_size));
}
TEST(RoundTripTest, VerifyRequest) {
const uint32_t password_size = 512;
- SizedBuffer *provided_password = make_buffer(password_size),
- *password_handle = make_buffer(password_size);
const SizedBuffer *deserialized_password;
// create request, serialize, deserialize, and validate
- VerifyRequest msg(USER_ID, 1, password_handle, provided_password);
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ VerifyRequest msg(USER_ID, 1, make_buffer(password_size), make_buffer(password_size));
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
VerifyRequest deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get()
- + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
deserialized_msg.error);
@@ -181,46 +165,46 @@ TEST(RoundTripTest, VerifyRequest) {
ASSERT_EQ(USER_ID, deserialized_msg.user_id);
ASSERT_EQ((uint64_t) 1, deserialized_msg.challenge);
deserialized_password = &deserialized_msg.password_handle;
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.provided_password.buffer.get(), deserialized_password->buffer.get(),
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.provided_password.Data<uint8_t>(), deserialized_password->Data<uint8_t>(),
password_size));
deserialized_password = &deserialized_msg.password_handle;
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.password_handle.buffer.get(), deserialized_password->buffer.get(),
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.password_handle.Data<uint8_t>(), deserialized_password->Data<uint8_t>(),
password_size));
}
TEST(RoundTripTest, VerifyResponse) {
const uint32_t password_size = 512;
- SizedBuffer *auth_token = make_buffer(password_size);
const SizedBuffer *deserialized_password;
// create request, serialize, deserialize, and validate
- VerifyResponse msg(USER_ID, auth_token);
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ VerifyResponse msg(USER_ID, make_buffer(password_size));
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
VerifyResponse deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get()
- + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
deserialized_msg.error);
ASSERT_EQ(USER_ID, deserialized_msg.user_id);
deserialized_password = &deserialized_msg.auth_token;
- ASSERT_EQ((uint32_t) password_size, deserialized_password->length);
- ASSERT_EQ(0, memcmp(msg.auth_token.buffer.get(), deserialized_password->buffer.get(),
+ ASSERT_EQ((uint32_t) password_size, deserialized_password->size());
+ ASSERT_EQ(0, memcmp(msg.auth_token.Data<uint8_t>(), deserialized_password->Data<uint8_t>(),
password_size));
}
TEST(RoundTripTest, VerifyResponseError) {
VerifyResponse msg;
msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID;
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
VerifyResponse deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID,
deserialized_msg.error);
}
@@ -228,10 +212,11 @@ TEST(RoundTripTest, VerifyResponseError) {
TEST(RoundTripTest, VerifyRequestError) {
VerifyRequest msg;
msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID;
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
VerifyRequest deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID,
deserialized_msg.error);
}
@@ -239,10 +224,11 @@ TEST(RoundTripTest, VerifyRequestError) {
TEST(RoundTripTest, EnrollResponseError) {
EnrollResponse msg;
msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID;
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
EnrollResponse deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID,
deserialized_msg.error);
}
@@ -250,10 +236,11 @@ TEST(RoundTripTest, EnrollResponseError) {
TEST(RoundTripTest, EnrollRequestError) {
EnrollRequest msg;
msg.error = gatekeeper::gatekeeper_error_t::ERROR_INVALID;
- SizedBuffer serialized_msg(msg.GetSerializedSize());
- msg.Serialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ std::vector<uint8_t> serialized_msg(msg.GetSerializedSize());
+ ASSERT_EQ(serialized_msg.size(), msg.Serialize(&*serialized_msg.begin(), &*serialized_msg.end()));
EnrollRequest deserialized_msg;
- deserialized_msg.Deserialize(serialized_msg.buffer.get(), serialized_msg.buffer.get() + serialized_msg.length);
+ ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_NONE,
+ deserialized_msg.Deserialize(&*serialized_msg.begin(), &*serialized_msg.end()));
ASSERT_EQ(gatekeeper::gatekeeper_error_t::ERROR_INVALID,
deserialized_msg.error);
}