]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Final ticketauth support.
authorChris Porter <redacted>
Sat, 23 Feb 2008 18:25:09 +0000 (18:25 +0000)
committerChris Porter <redacted>
Sat, 23 Feb 2008 18:25:09 +0000 (18:25 +0000)
lib/hmac.c
ticketauth/ticketauth.c

index d3b558625e75a1e3199bd59d9e0e881c4518c8c8..54fbb5b43d05896f2c3a284797e80c5aeb4d8c9f 100644 (file)
@@ -1,4 +1,5 @@
 #include "hmac.h"
+#include <string.h>
 
 void hmacsha256_init(hmacsha256 *c, unsigned char *key, int keylen) {
   unsigned char realkey[64], outerkey[64], innerkey[64];
@@ -32,3 +33,9 @@ void hmacsha256_update(hmacsha256 *c, unsigned char *message, int messagelen) {
   SHA256_Update(&c->inner, message, messagelen);
 }
 
+void hmacsha256_final(hmacsha256 *c, unsigned char *digest) {
+  SHA256_Final(digest, &c->inner);
+  SHA256_Update(&c->outer, digest, 32);
+  SHA256_Final(digest, &c->outer);
+}
+
index 9f2a2a1f527e021259d9f3bde74a0486ac6cdc33..b06fceddea0739591cf0ebdb2ea7dc872dcc0203 100644 (file)
@@ -14,7 +14,7 @@
 #include "../core/hooks.h"
 #include "../irc/irc.h"
 
-#define WARN_CHANNEL "#fishcowcow"
+#define WARN_CHANNEL "#twilightzone"
 
 MODULE_VERSION("");
 
@@ -33,11 +33,11 @@ int ta_ticketauth(void *source, int cargc, char **cargv) {
     return CMD_ERROR;
   }
 
-  if(cargc != 3)
+  if(cargc != 5)
     return CMD_USAGE;
 
   acc = cargv[0];
-  expiry = atoi(cargv[1]) + 30;
+  expiry = atoi(cargv[1]);
   id = atoi(cargv[2]);
   acclen = strlen(acc);
   junk = cargv[3];
@@ -48,14 +48,14 @@ int ta_ticketauth(void *source, int cargc, char **cargv) {
     return CMD_ERROR;
   }
 
-  if(time(NULL) > expiry) {
+  if(time(NULL) > expiry + 30) {
     controlwall(NO_OPER, NL_MISC, "%s!%s@%s attempted to TICKETAUTH as %s (expired)", np->nick, np->ident, np->host->name->content, acc);
     controlreply(np, "Ticket time is bad or has expired.");
     return CMD_ERROR;
   }
 
   hmacsha256_init(&hmac, (unsigned char *)sharedsecret->content, sharedsecret->length);
-  snprintf(buffer, sizeof(buffer), "%s %d %d %s", acc, id, expiry, junk);
+  snprintf(buffer, sizeof(buffer), "%s %d %d %s", acc, expiry, id, junk);
   hmacsha256_update(&hmac, (unsigned char *)buffer, strlen(buffer));
   hmacsha256_final(&hmac, digest);
   
@@ -94,7 +94,7 @@ void _init() {
     return;
   }
 
-  registercontrolhelpcmd("ticketauth", NO_OPERED, 3, ta_ticketauth, "Usage: ticketauth <ticket>");
+  registercontrolhelpcmd("ticketauth", NO_OPERED, 5, ta_ticketauth, "Usage: ticketauth <ticket>");
 }
 
 void _fini() {