diff options
Diffstat (limited to 'src/test/core/GpgCoreTestKeygen.cpp')
-rw-r--r-- | src/test/core/GpgCoreTestKeygen.cpp | 316 |
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>()); |