summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2024-07-15 18:42:54 +0200
committerJulian Andres Klode <julian.klode@canonical.com>2024-07-15 19:17:20 +0200
commit29dd6c45bc2579d012ac78ba3100a2485c78ff1d (patch)
tree4dbd536e41e9f6ec318f5b02fcc03e5eebe9141b /test
parent04cb5104a018184fe1fac114cbc212a9395d6845 (diff)
gpgv: Add IsAssertedPubKeyAlgo() function
This checks whether a public key algorithm is asserted.
Diffstat (limited to 'test')
-rw-r--r--test/libapt/assert_pubkeyalgo_test.cc56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/libapt/assert_pubkeyalgo_test.cc b/test/libapt/assert_pubkeyalgo_test.cc
new file mode 100644
index 000000000..88a070bbe
--- /dev/null
+++ b/test/libapt/assert_pubkeyalgo_test.cc
@@ -0,0 +1,56 @@
+#include <config.h>
+
+#include <apt-pkg/error.h>
+#include <apt-pkg/gpgv.h>
+
+#include "common.h"
+
+TEST(AssertPubKeyAlgo_Test, test)
+{
+ EXPECT_TRUE(IsAssertedPubKeyAlgo("rsa2048", ">=rsa2048"));
+ _error->DumpErrors();
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_TRUE(IsAssertedPubKeyAlgo("rsa2048", "another,>=rsa2048"));
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("rsa2048", ">=rsa2049"));
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_TRUE(IsAssertedPubKeyAlgo("ed25519", ">=rsa2048,ed25519"));
+ EXPECT_TRUE(_error->empty());
+}
+
+TEST(AssertPubKeyAlgo_Test, CanOnlyCompareRSA)
+{
+ std::string msg;
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ">=ed25519"));
+ EXPECT_TRUE(_error->PopMessage(msg));
+ EXPECT_EQ("Unrecognized public key specification '>=ed25519' in option >=ed25519", msg);
+ EXPECT_TRUE(_error->empty());
+}
+
+TEST(AssertPubKeyAlgo_Test, EmptyOption)
+{
+ std::string msg;
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ""));
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ","));
+ EXPECT_TRUE(_error->PopMessage(msg));
+ EXPECT_EQ("Empty item in public key assertion string option ,", msg);
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", "moo,"));
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", "moo,,"));
+ EXPECT_TRUE(_error->PopMessage(msg));
+ EXPECT_EQ("Empty item in public key assertion string option moo,,", msg);
+ EXPECT_TRUE(_error->empty());
+
+ EXPECT_FALSE(IsAssertedPubKeyAlgo("ed25519", ",moo"));
+ EXPECT_TRUE(_error->PopMessage(msg));
+ EXPECT_EQ("Empty item in public key assertion string option ,moo", msg);
+ EXPECT_TRUE(_error->empty());
+}