Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/FFDHE.cpp10
-rw-r--r--src/FFDHE.h4
-rw-r--r--src/tests/TestFFDHE/TestFFDHE.cpp20
3 files changed, 29 insertions, 5 deletions
diff --git a/src/FFDHE.cpp b/src/FFDHE.cpp
index 15f91b13c..eeb726cfc 100644
--- a/src/FFDHE.cpp
+++ b/src/FFDHE.cpp
@@ -8,6 +8,16 @@
#include "FFDHE.h"
#include "FFDHETable.h"
+QStringList FFDHE::NamedGroups() {
+ QStringList ng;
+ ng << QLatin1String("ffdhe2048");
+ ng << QLatin1String("ffdhe3072");
+ ng << QLatin1String("ffdhe4096");
+ ng << QLatin1String("ffdhe6144");
+ ng << QLatin1String("ffdhe8192");
+ return ng;
+}
+
QByteArray FFDHE::PEMForNamedGroup(QString name) {
name = name.toLower();
diff --git a/src/FFDHE.h b/src/FFDHE.h
index df3a1b0cd..bde244b18 100644
--- a/src/FFDHE.h
+++ b/src/FFDHE.h
@@ -9,6 +9,10 @@
/// FFDHE provides access to the Diffie-Hellman parameters from RFC 7919.
class FFDHE {
public:
+ /// NamedGroups returns a list of the supported named
+ /// groups for PEMForNamedGroup.
+ static QStringList NamedGroups();
+
/// PEMForNamedGroup returns the PEM-encoded
/// Diffie-Hellman parameters for the RFC 7919
/// group with the given name, such as "ffdhe2048",
diff --git a/src/tests/TestFFDHE/TestFFDHE.cpp b/src/tests/TestFFDHE/TestFFDHE.cpp
index d5dcd286d..0a8fa8ef5 100644
--- a/src/tests/TestFFDHE/TestFFDHE.cpp
+++ b/src/tests/TestFFDHE/TestFFDHE.cpp
@@ -22,6 +22,7 @@ class TestFFDHE : public QObject {
#if defined(USE_QSSLDIFFIEHELLMANPARAMETERS)
void exercise_data();
void exercise();
+ void namedGroupsMethod();
#endif
};
@@ -51,10 +52,7 @@ void TestFFDHE::exercise_data() {
QTest::newRow("trailingspace") << QString(QLatin1String("ffdhe2048 ")) << false;
}
-void TestFFDHE::exercise() {
- QFETCH(QString, name);
- QFETCH(bool, expectedToWork);
-
+static bool tryFFDHELookupByName(QString name) {
bool ok = true;
QByteArray pem = FFDHE::PEMForNamedGroup(name);
@@ -69,7 +67,19 @@ void TestFFDHE::exercise() {
}
}
- QCOMPARE(ok, expectedToWork);
+ return ok;
+}
+
+void TestFFDHE::exercise() {
+ QFETCH(QString, name);
+ QFETCH(bool, expectedToWork);
+ QCOMPARE(tryFFDHELookupByName(name), expectedToWork);
+}
+
+void TestFFDHE::namedGroupsMethod() {
+ foreach (QString name, FFDHE::NamedGroups()) {
+ QCOMPARE(tryFFDHELookupByName(name), true);
+ }
}
#endif