From e105bcdca303e12872e3a3a2e7033d75002a38d5 Mon Sep 17 00:00:00 2001 From: George Arama <50641385+gearama@users.noreply.github.com> Date: Tue, 29 Jun 2021 01:10:24 -0700 Subject: [PATCH] Keyvault unit tests for non standard key sizes. (#2495) * param tests * ooops * remove get suffix * uneeded define * remove define * update initi location to prevent multiple runs * formatting * added negative numbers and some above 2048 --- .../test/ut/key_client_base_test.hpp | 4 +-- .../ut/key_cryptographic_client_test_live.cpp | 34 +++++++++++++------ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp index a2c42a726..4a1a2df96 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_client_base_test.hpp @@ -6,7 +6,6 @@ * @brief The base class to construct and init a Key Vault client. * */ - #include #include @@ -19,7 +18,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { namespace Test { - class KeyVaultClientTest : public ::testing::Test { + class KeyVaultClientTest : public ::testing::TestWithParam { private: std::string GetEnv(const std::string& name) { @@ -121,5 +120,4 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys { nam } } }; - }}}}} // namespace Azure::Security::KeyVault::Keys::Test diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_cryptographic_client_test_live.cpp b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_cryptographic_client_test_live.cpp index 1b2788581..e4a888f92 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_cryptographic_client_test_live.cpp +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/key_cryptographic_client_test_live.cpp @@ -20,13 +20,13 @@ using namespace Azure::Security::KeyVault::Keys::Test; using namespace Azure::Security::KeyVault::Keys; using namespace Azure::Security::KeyVault::Keys::Cryptography; -TEST_F(KeyVaultClientTest, RemoteEncrypt) +TEST_P(KeyVaultClientTest, RemoteEncrypt) { KeyClient keyClient(m_keyVaultUrl, m_credential); std::string keyName(GetUniqueName()); CreateRsaKeyOptions rsaKeyOptions(keyName); - rsaKeyOptions.KeySize = 2048; + rsaKeyOptions.KeySize = GetParam(); auto rsaKey = keyClient.CreateRsaKey(rsaKeyOptions).Value; // init crypto client from key ID. The remote client will get the key and try to create a local @@ -49,13 +49,13 @@ TEST_F(KeyVaultClientTest, RemoteEncrypt) } } -TEST_F(KeyVaultClientTest, RemoteWrap) +TEST_P(KeyVaultClientTest, RemoteWrap) { KeyClient keyClient(m_keyVaultUrl, m_credential); std::string keyName(GetUniqueName()); CreateRsaKeyOptions rsaKeyOptions(keyName); - rsaKeyOptions.KeySize = 2048; + rsaKeyOptions.KeySize = GetParam(); auto rsaKey = keyClient.CreateRsaKey(rsaKeyOptions).Value; // init crypto client from key ID. The remote client will get the key and try to create a local @@ -78,13 +78,13 @@ TEST_F(KeyVaultClientTest, RemoteWrap) } } -TEST_F(KeyVaultClientTest, RemoteSignVerifyRSA256) +TEST_P(KeyVaultClientTest, RemoteSignVerifyRSA256) { KeyClient keyClient(m_keyVaultUrl, m_credential); std::string keyName(GetUniqueName()); CreateRsaKeyOptions rsaKeyOptions(keyName); - rsaKeyOptions.KeySize = 2048; + rsaKeyOptions.KeySize = GetParam(); auto rsaKey = keyClient.CreateRsaKey(rsaKeyOptions).Value; // init crypto client from key ID. The remote client will get the key and try to create a local @@ -182,13 +182,13 @@ TEST_F(KeyVaultClientTest, RemoteSignVerifyES256) } } -TEST_F(KeyVaultClientTest, RemoteSignVerifyRSA384) +TEST_P(KeyVaultClientTest, RemoteSignVerifyRSA384) { KeyClient keyClient(m_keyVaultUrl, m_credential); std::string keyName(GetUniqueName()); CreateRsaKeyOptions rsaKeyOptions(keyName); - rsaKeyOptions.KeySize = 2048; + rsaKeyOptions.KeySize = GetParam(); auto rsaKey = keyClient.CreateRsaKey(rsaKeyOptions).Value; // init crypto client from key ID. The remote client will get the key and try to create a local @@ -233,13 +233,13 @@ TEST_F(KeyVaultClientTest, RemoteSignVerifyRSA384) } } -TEST_F(KeyVaultClientTest, RemoteSignVerifyDataRSA256) +TEST_P(KeyVaultClientTest, RemoteSignVerifyDataRSA256) { KeyClient keyClient(m_keyVaultUrl, m_credential); std::string keyName(GetUniqueName()); CreateRsaKeyOptions rsaKeyOptions(keyName); - rsaKeyOptions.KeySize = 2048; + rsaKeyOptions.KeySize = GetParam(); auto rsaKey = keyClient.CreateRsaKey(rsaKeyOptions).Value; // init crypto client from key ID. The remote client will get the key and try to create a local @@ -276,3 +276,17 @@ TEST_F(KeyVaultClientTest, RemoteSignVerifyDataRSA256) EXPECT_TRUE(verifyResult.IsValid); } } + +namespace { +static std::string GetSuffix(const testing::TestParamInfo& info) +{ + auto stringValue = std::to_string(abs(info.param)); + return info.param < 0 ? "Minus" + stringValue : stringValue; +} +} // namespace + +INSTANTIATE_TEST_SUITE_P( + Parametrized, + KeyVaultClientTest, + ::testing::Values(-215, -100, 0, 13, 55, 233, 987, 1597, 2048, 3072, 4096), + GetSuffix);