summaryrefslogtreecommitdiff
path: root/src/misc.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-11-30 02:49:09 -0500
committerAdam <Adam@anope.org>2012-11-30 02:53:03 -0500
commita4468dd56e96ea915d40627f3cb067084238e34a (patch)
treea8a497965346e55eeb79fc56797da6bea81bf841 /src/misc.cpp
parent337f3615264f30d4c9f06653d2dd2a21805546ce (diff)
Allow modules to use the encryption modules to encrypt arbitrary things.
Made enc_old depend on enc_md5. Allow not loading any encryption modules if you want to only use an external mechanism. Removed ns_sendpass since it's just a bad idea.
Diffstat (limited to 'src/misc.cpp')
-rw-r--r--src/misc.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/misc.cpp b/src/misc.cpp
index 7196a1534..417849df4 100644
--- a/src/misc.cpp
+++ b/src/misc.cpp
@@ -450,6 +450,30 @@ bool Anope::Match(const Anope::string &str, const Anope::string &mask, bool case
return m == mask_len;
}
+void Anope::Encrypt(const Anope::string &src, Anope::string &dest)
+{
+ EventReturn MOD_RESULT;
+ FOREACH_RESULT(I_OnEncrypt, OnEncrypt(src, dest));
+}
+
+bool Anope::Decrypt(const Anope::string &src, Anope::string &dest)
+{
+ size_t pos = src.find(':');
+ if (pos == Anope::string::npos)
+ {
+ Log() << "Error: Anope::Decrypt() called with invalid password string (" << src << ")";
+ return false;
+ }
+ Anope::string hashm(src.begin(), src.begin() + pos);
+
+ EventReturn MOD_RESULT;
+ FOREACH_RESULT(I_OnDecrypt, OnDecrypt(hashm, src, dest));
+ if (MOD_RESULT == EVENT_ALLOW)
+ return true;
+
+ return false;
+}
+
Anope::string Anope::printf(const char *fmt, ...)
{
va_list args;