X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_pbkdf2.cpp;h=daafa7f8c72e9fc8de2275de03d17905522b5576;hb=HEAD;hp=68f89ba157da1639351608408dd734eba1f021f1;hpb=aa692dc1039b63deef7886e914ec499abe7facaf;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_pbkdf2.cpp b/src/modules/m_pbkdf2.cpp index 68f89ba15..daafa7f8c 100644 --- a/src/modules/m_pbkdf2.cpp +++ b/src/modules/m_pbkdf2.cpp @@ -1,10 +1,10 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2018, 2020 Sadie Powell * Copyright (C) 2018 linuxdaemon - * Copyright (C) 2018 Sadie Powell + * Copyright (C) 2014, 2020 Daniel Vassdal * Copyright (C) 2014, 2016 Attila Molnar - * Copyright (C) 2014 Daniel Vassdal * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -126,7 +126,7 @@ class PBKDF2Provider : public HashProvider return false; std::string cmp = PBKDF2(input, hs.salt, hs.iterations, hs.length); - return (cmp == hs.hash); + return InspIRCd::TimingSafeCompare(cmp, hs.hash); } std::string ToPrintable(const std::string& raw) CXX11_OVERRIDE @@ -209,6 +209,14 @@ class ModulePBKDF2 : public Module stdalgo::delete_all(providers); } + void init() CXX11_OVERRIDE + { + // Let ourself know about any existing services. + const ModuleManager::DataProviderMap& dataproviders = ServerInstance->Modules->DataProviders; + for (ModuleManager::DataProviderMap::const_iterator it = dataproviders.begin(); it != dataproviders.end(); ++it) + OnServiceAdd(*it->second); + } + void OnServiceAdd(ServiceProvider& provider) CXX11_OVERRIDE { // Check if it's a hash provider @@ -248,7 +256,7 @@ class ModulePBKDF2 : public Module Version GetVersion() CXX11_OVERRIDE { - return Version("Implements PBKDF2 hashing", VF_VENDOR); + return Version("Allows other modules to generate PBKDF2 hashes.", VF_VENDOR); } };