// Copyright 2020 Google LLC. All Rights Reserved. #include #include "api/aead_whitebox.h" #include "api/test_data.h" #include "testing/include/gtest/gtest.h" namespace { class AeadWhiteboxCreateTest : public ::testing::Test { protected: void TearDown() override { WB_Aead_Delete(whitebox_); } WB_Aead_Whitebox* whitebox_ = nullptr; const std::vector init_data_ = GetValidAeadInitData(); const std::vector context_ = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; }; TEST_F(AeadWhiteboxCreateTest, Success) { ASSERT_EQ(WB_Aead_Create(init_data_.data(), init_data_.size(), context_.data(), context_.size(), &whitebox_), WB_RESULT_OK); ASSERT_TRUE(whitebox_); } TEST_F(AeadWhiteboxCreateTest, InvalidParameterForNullInitData) { ASSERT_EQ(WB_Aead_Create(nullptr, init_data_.size(), context_.data(), context_.size(), &whitebox_), WB_RESULT_INVALID_PARAMETER); ASSERT_FALSE(whitebox_); } TEST_F(AeadWhiteboxCreateTest, InvalidParameterForInvalidInitData) { const std::vector invalid_init_data = GetInvalidAeadInitData(); ASSERT_EQ(WB_Aead_Create(invalid_init_data.data(), invalid_init_data.size(), context_.data(), context_.size(), &whitebox_), WB_RESULT_INVALID_PARAMETER); ASSERT_FALSE(whitebox_); } TEST_F(AeadWhiteboxCreateTest, InvalidParameterForZeroInitDataSize) { ASSERT_EQ(WB_Aead_Create(init_data_.data(), 0, context_.data(), context_.size(), &whitebox_), WB_RESULT_INVALID_PARAMETER); ASSERT_FALSE(whitebox_); } TEST_F(AeadWhiteboxCreateTest, InvalidParameterForNullContext) { ASSERT_EQ(WB_Aead_Create(init_data_.data(), init_data_.size(), nullptr, context_.size(), &whitebox_), WB_RESULT_INVALID_PARAMETER); ASSERT_FALSE(whitebox_); } TEST_F(AeadWhiteboxCreateTest, InvalidParameterForZeroContextSize) { ASSERT_EQ(WB_Aead_Create(init_data_.data(), init_data_.size(), context_.data(), 0, &whitebox_), WB_RESULT_INVALID_PARAMETER); ASSERT_FALSE(whitebox_); } TEST_F(AeadWhiteboxCreateTest, InvalidParameterForNullWhitebox) { ASSERT_EQ(WB_Aead_Create(init_data_.data(), init_data_.size(), context_.data(), context_.size(), nullptr), WB_RESULT_INVALID_PARAMETER); ASSERT_FALSE(whitebox_); } } // namespace