aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/hmac.cpp2
-rw-r--r--src/modules/m_spanningtree/utils.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/hmac.cpp b/src/modules/m_spanningtree/hmac.cpp
index ce4e02e5c..c3a7e92b3 100644
--- a/src/modules/m_spanningtree/hmac.cpp
+++ b/src/modules/m_spanningtree/hmac.cpp
@@ -77,7 +77,7 @@ bool TreeSocket::ComparePass(const Link& link, const std::string& theirs)
if (capab->auth_fingerprint)
{
/* Require fingerprint to exist and match */
- if (link.Fingerprint != fp)
+ if (!InspIRCd::TimingSafeCompare(link.Fingerprint, fp))
{
ServerInstance->SNO.WriteToSnoMask('l', "Invalid TLS certificate fingerprint on link {}: need \"{}\" got \"{}\"",
link.Name, link.Fingerprint, fp);
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 9f6565e34..c19fe32b0 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -321,7 +321,9 @@ void SpanningTreeUtilities::ReadConfiguration()
if (!L->Port && L->IPAddr.find('/') == std::string::npos)
ServerInstance->Logs.Warning(MODNAME, "Configuration warning: Link block '" + L->Name + "' has no port defined, you will not be able to /connect it.");
+ std::transform(L->Fingerprint.begin(), L->Fingerprint.end(), L->Fingerprint.begin(), ::tolower);
L->Fingerprint.erase(std::remove(L->Fingerprint.begin(), L->Fingerprint.end(), ':'), L->Fingerprint.end());
+
LinkBlocks.push_back(L);
}