aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/core/GpgCoreTestKeygen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/core/GpgCoreTestKeygen.cpp')
-rw-r--r--src/test/core/GpgCoreTestKeygen.cpp316
1 files changed, 197 insertions, 119 deletions
diff --git a/src/test/core/GpgCoreTestKeygen.cpp b/src/test/core/GpgCoreTestKeygen.cpp
index 9197e18e..aa4de244 100644
--- a/src/test/core/GpgCoreTestKeygen.cpp
+++ b/src/test/core/GpgCoreTestKeygen.cpp
@@ -37,18 +37,41 @@
namespace GpgFrontend::Test {
+TEST_F(GpgCoreTest, SearchPrimaryKeyAlgoTest) {
+ auto [find, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("rsa2048");
+ ASSERT_TRUE(find);
+ ASSERT_EQ(algo.Id(), "rsa2048");
+ ASSERT_EQ(algo.Id(), "rsa2048");
+ ASSERT_EQ(algo.Name(), "RSA");
+ ASSERT_EQ(algo.Type(), "RSA");
+ ASSERT_EQ(algo.KeyLength(), 2048);
+}
+
+TEST_F(GpgCoreTest, SearchSubKeyAlgoTest) {
+ auto [find, algo] = GenKeyInfo::SearchSubKeyAlgo("rsa2048");
+ ASSERT_TRUE(find);
+ ASSERT_EQ(algo.Id(), "rsa2048");
+ ASSERT_EQ(algo.Name(), "RSA");
+ ASSERT_EQ(algo.Type(), "RSA");
+ ASSERT_EQ(algo.KeyLength(), 2048);
+}
+
TEST_F(GpgCoreTest, GenerateKeyRSA2048Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_0");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("foobar");
- keygen_info->SetAlgo("rsa");
- keygen_info->SetKeyLength(2048);
- keygen_info->SetNonExpired(true);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_0");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("foobar");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("rsa2048");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "rsa2048");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(true);
+ p_info->SetNonPassPhrase(true);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
@@ -84,22 +107,26 @@ TEST_F(GpgCoreTest, GenerateKeyRSA2048Test) {
}
TEST_F(GpgCoreTest, GenerateKeyRSA4096Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_1");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("hello gpgfrontend");
- keygen_info->SetAlgo("rsa");
- keygen_info->SetKeyLength(4096);
- keygen_info->SetNonExpired(false);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_1");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("hello gpgfrontend");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("rsa4096");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "rsa4096");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(false);
+ p_info->SetNonPassPhrase(true);
auto expire_time =
QDateTime::currentDateTime().addSecs(static_cast<qint64>(24 * 3600));
- keygen_info->SetExpireTime(expire_time);
- keygen_info->SetNonPassPhrase(false);
+ p_info->SetExpireTime(expire_time);
+ p_info->SetNonPassPhrase(false);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
@@ -119,22 +146,26 @@ TEST_F(GpgCoreTest, GenerateKeyRSA4096Test) {
}
TEST_F(GpgCoreTest, GenerateKeyDSA2048Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_1");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("hello gpgfrontend");
- keygen_info->SetAlgo("dsa");
- keygen_info->SetKeyLength(2048);
- keygen_info->SetNonExpired(false);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_1");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("hello gpgfrontend");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("dsa2048");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "dsa2048");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(false);
+ p_info->SetNonPassPhrase(true);
auto expire_time =
QDateTime::currentDateTime().addSecs(static_cast<qint64>(24 * 3600));
- keygen_info->SetExpireTime(expire_time);
- keygen_info->SetNonPassPhrase(false);
+ p_info->SetExpireTime(expire_time);
+ p_info->SetNonPassPhrase(false);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
ASSERT_TRUE(data_object->Check<GpgGenerateKeyResult>());
@@ -169,21 +200,26 @@ TEST_F(GpgCoreTest, GenerateKeyDSA2048Test) {
}
TEST_F(GpgCoreTest, GenerateKeyED25519Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_4");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("hello gpgfrontend");
- keygen_info->SetAlgo("ed25519");
- keygen_info->SetNonExpired(false);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_4");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("hello gpgfrontend");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("ed25519");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "ed25519");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(false);
+ p_info->SetNonPassPhrase(true);
auto expire_time =
QDateTime::currentDateTime().addSecs(static_cast<qint64>(24 * 3600));
- keygen_info->SetExpireTime(expire_time);
- keygen_info->SetNonPassPhrase(false);
+ p_info->SetExpireTime(expire_time);
+ p_info->SetNonPassPhrase(false);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
ASSERT_TRUE(data_object->Check<GpgGenerateKeyResult>());
@@ -218,22 +254,31 @@ TEST_F(GpgCoreTest, GenerateKeyED25519Test) {
}
TEST_F(GpgCoreTest, GenerateKeyED25519CV25519Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_ec");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("ecccc");
- keygen_info->SetAlgo("ed25519");
- keygen_info->SetNonExpired(true);
- keygen_info->SetNonPassPhrase(true);
-
- auto subkeygen_info = SecureCreateSharedObject<GenKeyInfo>(true);
- subkeygen_info->SetAlgo("cv25519");
- subkeygen_info->SetNonExpired(true);
- subkeygen_info->SetNonPassPhrase(true);
-
- auto [err, data_object] =
- GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeyWithSubkeySync(keygen_info, subkeygen_info);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_ec");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("ecccc");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("ed25519");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "ed25519");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(true);
+ p_info->SetNonPassPhrase(true);
+
+ auto s_info = QSharedPointer<GenKeyInfo>::create(true);
+
+ std::tie(found, algo) = GenKeyInfo::SearchSubKeyAlgo("cv25519");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "cv25519");
+ s_info->SetAlgo(algo);
+
+ s_info->SetNonExpired(true);
+ s_info->SetNonPassPhrase(true);
+
+ auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
+ .GenerateKeyWithSubkeySync(p_info, s_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_TRUE(
@@ -284,22 +329,31 @@ TEST_F(GpgCoreTest, GenerateKeyED25519CV25519Test) {
}
TEST_F(GpgCoreTest, GenerateKeyED25519NISTP256Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_ec2");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("ecccc");
- keygen_info->SetAlgo("ed25519");
- keygen_info->SetNonExpired(true);
- keygen_info->SetNonPassPhrase(true);
-
- auto subkeygen_info = SecureCreateSharedObject<GenKeyInfo>(true);
- subkeygen_info->SetAlgo("nistp256");
- subkeygen_info->SetNonExpired(true);
- subkeygen_info->SetNonPassPhrase(true);
-
- auto [err, data_object] =
- GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeyWithSubkeySync(keygen_info, subkeygen_info);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_ec2");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("ecccc");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("ed25519");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "ed25519");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(true);
+ p_info->SetNonPassPhrase(true);
+
+ auto s_info = QSharedPointer<GenKeyInfo>::create(true);
+
+ std::tie(found, algo) = GenKeyInfo::SearchSubKeyAlgo("nistp256");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "nistp256");
+ s_info->SetAlgo(algo);
+
+ s_info->SetNonExpired(true);
+ s_info->SetNonPassPhrase(true);
+
+ auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
+ .GenerateKeyWithSubkeySync(p_info, s_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_TRUE(
@@ -350,22 +404,31 @@ TEST_F(GpgCoreTest, GenerateKeyED25519NISTP256Test) {
}
TEST_F(GpgCoreTest, GenerateKeyED25519BRAINPOOLP256R1Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_ec3");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("ecccc3");
- keygen_info->SetAlgo("ed25519");
- keygen_info->SetNonExpired(true);
- keygen_info->SetNonPassPhrase(true);
-
- auto subkeygen_info = SecureCreateSharedObject<GenKeyInfo>(true);
- subkeygen_info->SetAlgo("brainpoolp256r1");
- subkeygen_info->SetNonExpired(true);
- subkeygen_info->SetNonPassPhrase(true);
-
- auto [err, data_object] =
- GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeyWithSubkeySync(keygen_info, subkeygen_info);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_ec3");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("ecccc3");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("ed25519");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "ed25519");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(true);
+ p_info->SetNonPassPhrase(true);
+
+ auto s_info = QSharedPointer<GenKeyInfo>::create(true);
+
+ std::tie(found, algo) = GenKeyInfo::SearchSubKeyAlgo("brainpoolp256r1");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "brainpoolp256r1");
+ s_info->SetAlgo(algo);
+
+ s_info->SetNonExpired(true);
+ s_info->SetNonPassPhrase(true);
+
+ auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
+ .GenerateKeyWithSubkeySync(p_info, s_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_TRUE(
@@ -416,21 +479,26 @@ TEST_F(GpgCoreTest, GenerateKeyED25519BRAINPOOLP256R1Test) {
}
TEST_F(GpgCoreTest, GenerateKeyNISTP256Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_4");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("hello gpgfrontend");
- keygen_info->SetAlgo("nistp256");
- keygen_info->SetNonExpired(false);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_4");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("hello gpgfrontend");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("nistp256");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "nistp256");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(false);
+ p_info->SetNonPassPhrase(true);
auto expire_time =
QDateTime::currentDateTime().addSecs(static_cast<qint64>(24 * 3600));
- keygen_info->SetExpireTime(expire_time);
- keygen_info->SetNonPassPhrase(false);
+ p_info->SetExpireTime(expire_time);
+ p_info->SetNonPassPhrase(false);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
ASSERT_TRUE(data_object->Check<GpgGenerateKeyResult>());
@@ -466,21 +534,26 @@ TEST_F(GpgCoreTest, GenerateKeyNISTP256Test) {
}
TEST_F(GpgCoreTest, GenerateKeyED448Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_4");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("hello gpgfrontend");
- keygen_info->SetAlgo("ed448");
- keygen_info->SetNonExpired(false);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_4");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("hello gpgfrontend");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("ed448");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "ed448");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(false);
+ p_info->SetNonPassPhrase(true);
auto expire_time =
QDateTime::currentDateTime().addSecs(static_cast<qint64>(24 * 3600));
- keygen_info->SetExpireTime(expire_time);
- keygen_info->SetNonPassPhrase(false);
+ p_info->SetExpireTime(expire_time);
+ p_info->SetNonPassPhrase(false);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
ASSERT_TRUE(data_object->Check<GpgGenerateKeyResult>());
@@ -516,21 +589,26 @@ TEST_F(GpgCoreTest, GenerateKeyED448Test) {
}
TEST_F(GpgCoreTest, GenerateKeySECP256K1Test) {
- auto keygen_info = SecureCreateSharedObject<GenKeyInfo>();
- keygen_info->SetName("foo_4");
- keygen_info->SetEmail("[email protected]");
- keygen_info->SetComment("hello gpgfrontend");
- keygen_info->SetAlgo("secp256k1");
- keygen_info->SetNonExpired(false);
- keygen_info->SetNonPassPhrase(true);
+ auto p_info = QSharedPointer<GenKeyInfo>::create();
+ p_info->SetName("foo_4");
+ p_info->SetEmail("[email protected]");
+ p_info->SetComment("hello gpgfrontend");
+
+ auto [found, algo] = GenKeyInfo::SearchPrimaryKeyAlgo("secp256k1");
+ ASSERT_TRUE(found);
+ ASSERT_EQ(algo.Id(), "secp256k1");
+ p_info->SetAlgo(algo);
+
+ p_info->SetNonExpired(false);
+ p_info->SetNonPassPhrase(true);
auto expire_time =
QDateTime::currentDateTime().addSecs(static_cast<qint64>(24 * 3600));
- keygen_info->SetExpireTime(expire_time);
- keygen_info->SetNonPassPhrase(false);
+ p_info->SetExpireTime(expire_time);
+ p_info->SetNonPassPhrase(false);
auto [err, data_object] = GpgKeyOpera::GetInstance(kGpgFrontendDefaultChannel)
- .GenerateKeySync(keygen_info);
+ .GenerateKeySync(p_info);
ASSERT_EQ(CheckGpgError(err), GPG_ERR_NO_ERROR);
ASSERT_EQ(data_object->GetObjectSize(), 1);
ASSERT_TRUE(data_object->Check<GpgGenerateKeyResult>());