]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_sha256.cpp
We were already sending FMODE +nt after each channel creation to keep services happy...
[user/henk/code/inspircd.git] / src / modules / m_sha256.cpp
index c5df2aad37972cff4a7a7c5a484b78eace411b24..26c70346edd168b01fb30e52aedd141c351e488d 100644 (file)
@@ -2,12 +2,9 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- *                       E-mail:
- *                <brain@chatspike.net>
- *                <Craig@chatspike.net>
- *     
- * Written by Craig Edwards, Craig McLure, and others.
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
  * This program is free but copyrighted software; see
  *            the file COPYING for details.
  *
 /* $ModDesc: Allows for SHA-256 encrypted oper passwords */
 /* $ModDep: m_hash.h */
 
-#include "inspircd_config.h"
+#include "inspircd.h"
 #ifdef HAS_STDINT
 #include <stdint.h>
 #endif
 #include "users.h"
 #include "channels.h"
 #include "modules.h"
-#include "inspircd.h"
-
 #include "m_hash.h"
 
 #ifndef HAS_STDINT
@@ -142,7 +137,7 @@ uint32_t sha256_k[64] =
 
 class ModuleSHA256 : public Module
 {
-       void SHA256Init(struct SHA256Context *ctx, const unsigned int* key)
+       void SHA256Init(SHA256Context *ctx, const unsigned int* key)
        {
                if (key)
                {
@@ -158,7 +153,7 @@ class ModuleSHA256 : public Module
                ctx->tot_len = 0;
        }
 
-       void SHA256Transform(struct SHA256Context *ctx, unsigned char *message, unsigned int block_nb)
+       void SHA256Transform(SHA256Context *ctx, unsigned char *message, unsigned int block_nb)
        {
                uint32_t w[64];
                uint32_t wv[8];
@@ -192,7 +187,7 @@ class ModuleSHA256 : public Module
                }
        }
        
-       void SHA256Update(struct SHA256Context *ctx, unsigned char *message, unsigned int len)
+       void SHA256Update(SHA256Context *ctx, unsigned char *message, unsigned int len)
        {
                unsigned int rem_len = SHA256_BLOCK_SIZE - ctx->len;
                memcpy(&ctx->block[ctx->len], message, rem_len);
@@ -212,7 +207,7 @@ class ModuleSHA256 : public Module
                ctx->tot_len += (block_nb + 1) << 6;
        }
        
-       void SHA256Final(struct SHA256Context *ctx, unsigned char *digest)
+       void SHA256Final(SHA256Context *ctx, unsigned char *digest)
        {
                unsigned int block_nb = (1 + ((SHA256_BLOCK_SIZE - 9) < (ctx->len % SHA256_BLOCK_SIZE)));
                unsigned int len_b = (ctx->tot_len + ctx->len) << 3;
@@ -229,7 +224,7 @@ class ModuleSHA256 : public Module
        {
                // Generate the hash
                unsigned char bytehash[SHA256_DIGEST_SIZE];
-               struct SHA256Context ctx;
+               SHA256Context ctx;
                SHA256Init(&ctx, key);
                SHA256Update(&ctx, (unsigned char *)src, (unsigned int)len);
                SHA256Final(&ctx, bytehash);
@@ -247,7 +242,7 @@ class ModuleSHA256 : public Module
 
  public:
 
-       ModuleSHA256(InspIRCd* Me) : Module::Module(Me), key(NULL), chars(NULL)
+       ModuleSHA256(InspIRCd* Me) : Module(Me), key(NULL), chars(NULL)
        {
                ServerInstance->PublishInterface("HashRequest", this);
        }
@@ -279,6 +274,10 @@ class ModuleSHA256 : public Module
                        SHA256((const char*)SHA->GetHashData(), data, strlen(SHA->GetHashData()), chars ? chars : "0123456789abcdef", key);
                        return data;
                }
+               else if (strcmp("NAME", request->GetId()) == 0)
+               {
+                       return "sha256";
+               }
                else if (strcmp("RESET", request->GetId()) == 0)
                {
                        this->chars = NULL;
@@ -289,7 +288,7 @@ class ModuleSHA256 : public Module
 
        virtual Version GetVersion()
        {
-               return Version(1, 1, 0, 1, VF_VENDOR, API_VERSION);
+               return Version(1, 1, 0, 1, VF_VENDOR|VF_SERVICEPROVIDER, API_VERSION);
        }
 };
 
@@ -312,7 +311,7 @@ public:
 
 };
 
-extern "C" void * init_module( void )
+extern "C" DllExport void * init_module( void )
 {
        return new ModuleSHA256Factory;
 }