diff options
author | Adam <Adam@anope.org> | 2012-11-30 02:49:09 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2012-11-30 02:53:03 -0500 |
commit | a4468dd56e96ea915d40627f3cb067084238e34a (patch) | |
tree | a8a497965346e55eeb79fc56797da6bea81bf841 /src/misc.cpp | |
parent | 337f3615264f30d4c9f06653d2dd2a21805546ce (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.cpp | 24 |
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; |