Pārlūkot izejas kodu

* Add cmd_encrypt_fish and cmd_decrypt_fish which uses eggdrop's blowfish (same as FiSH)

Bryan Drewery 16 gadi atpakaļ
vecāks
revīzija
df16caa9bf
2 mainītis faili ar 48 papildinājumiem un 0 dzēšanām
  1. 1 0
      doc/UPDATES
  2. 47 0
      src/cmds.c

+ 1 - 0
doc/UPDATES

@@ -1,4 +1,5 @@
 * Added SHA256 support (cmd_sha256, Auth cmd: sha256)
+* Add cmd_encrypt_fish and cmd_decrypt_fish which uses eggdrop's blowfish (same as FiSH)
 
 1.3 - http://wraith.botpack.net/milestone/1.3
 * Binary / shell / startup changes

+ 47 - 0
src/cmds.c

@@ -66,6 +66,7 @@
 #include <bdlib/src/String.h>
 #include <bdlib/src/Stream.h>
 #include <bdlib/src/Array.h>
+#include <bdlib/src/base64.h>
 
 #include <ctype.h>
 #include <stdlib.h>
@@ -1858,6 +1859,50 @@ static void cmd_encrypt(int idx, char *par)
   free(buf);
 }
 
+static void cmd_encrypt_fish(int idx, char *par)
+{
+  if (!par[0]) {
+    dprintf(idx, "Usage: encrypt_fish <key> <string>\n");
+    return;
+  }
+
+  putlog(LOG_CMDS, "*", "#%s# encrypt_fish ...", dcc[idx].nick);
+
+  char *key = newsplit(&par);
+
+  if (!par[0]) {
+    dprintf(idx, "Usage: encrypt_fish <key> <string>\n");
+    return;
+  }
+
+  const char salt2[] = SALT2;
+
+  bd::String bf_crypt = egg_bf_encrypt(bd::String(par), bd::String(key ? key : salt2));
+  dprintf(idx, "encrypt_fish(%s) = %s\n", par, bf_crypt.c_str());
+}
+
+static void cmd_decrypt_fish(int idx, char *par)
+{
+  if (!par[0]) {
+    dprintf(idx, "Usage: decrypt_fish <key> <string>\n");
+    return;
+  }
+
+  putlog(LOG_CMDS, "*", "#%s# decrypt_fish ...", dcc[idx].nick);
+
+  char *key = newsplit(&par);
+
+  if (!par[0]) {
+    dprintf(idx, "Usage: decrypt_fish <key> <string>\n");
+    return;
+  }
+
+  const char salt2[] = SALT2;
+
+  bd::String bf_decrypt = egg_bf_decrypt(bd::String(par), bd::String(key ? key : salt2));
+  dprintf(idx, "decrypt_fish(%s) = %s\n", par, bf_decrypt.c_str());
+}
+
 static void cmd_decrypt(int idx, char *par)
 {
   if (!par[0]) {
@@ -4583,7 +4628,9 @@ cmd_t C_dcc[] =
   {"sha256",		"",	(Function) cmd_sha256,		NULL, AUTH_ALL},
   {"conf",		"a",	(Function) cmd_conf,		NULL, 0},
   {"encrypt",		"",	(Function) cmd_encrypt,		NULL, AUTH_ALL},
+  {"encrypt_fish",	"",	(Function) cmd_encrypt_fish,	NULL, AUTH_ALL},
   {"decrypt",		"",	(Function) cmd_decrypt,		NULL, AUTH_ALL},
+  {"decrypt_fish",	"",	(Function) cmd_decrypt_fish,	NULL, AUTH_ALL},
   {"botcmd",		"i",	(Function) cmd_botcmd, 		NULL, HUB},
   {"hublevel", 		"a", 	(Function) cmd_hublevel, 	NULL, HUB},
   {"lagged", 		"m", 	(Function) cmd_lagged, 		NULL, HUB},