]> jfr.im git - irc/quakenet/newserv.git/commitdiff
LIB: move cbc support into lib
authorChris Porter <redacted>
Sun, 29 Jan 2012 21:29:59 +0000 (21:29 +0000)
committerChris Porter <redacted>
Sun, 29 Jan 2012 21:29:59 +0000 (21:29 +0000)
lib/Makefile.in
lib/cbc.c [new file with mode: 0644]
lib/cbc.h [new file with mode: 0644]
nterfacer/esockets.h
nterfacer/library.c
nterfacer/library.h

index e5a5e54ce6cedb3c47a1ea231bb7f8052a639161..c69a24f7a7ae9857fec7a98383d3ff121022a256 100644 (file)
@@ -4,4 +4,4 @@
 
 default: all
 
-all: sstring-${SSTRING_ENGINE}.o array.o splitline.o base64.o flags.o irc_string.o strlfunc.o sha1.o irc_ipv6.o rijndael.o sha2.o hmac.o prng.o md5.o stringbuf.o sstring-lib.o
+all: sstring-${SSTRING_ENGINE}.o array.o splitline.o base64.o flags.o irc_string.o strlfunc.o sha1.o irc_ipv6.o rijndael.o sha2.o hmac.o prng.o md5.o stringbuf.o sstring-lib.o cbc.o
diff --git a/lib/cbc.c b/lib/cbc.c
new file mode 100644 (file)
index 0000000..3d22619
--- /dev/null
+++ b/lib/cbc.c
@@ -0,0 +1,49 @@
+#include <stdlib.h>
+#include <string.h>
+
+#include "cbc.h"
+#include "rijndael.h"
+
+rijndaelcbc *rijndaelcbc_init(unsigned char *key, int keybits, unsigned char *iv, int decrypt) {
+  rijndaelcbc *ret = (rijndaelcbc *)malloc(sizeof(rijndaelcbc) + RKLENGTH(keybits) * sizeof(unsigned long));
+  if(!ret)
+    return NULL;
+
+  memcpy(ret->prevblock, iv, 16);
+
+  if(decrypt) {
+    ret->nrounds = rijndaelSetupDecrypt(ret->rk, key, keybits);
+  } else {
+    ret->nrounds = rijndaelSetupEncrypt(ret->rk, key, keybits);
+  }
+
+  return ret;
+}
+
+void rijndaelcbc_free(rijndaelcbc *c) {
+  free(c);
+}
+
+unsigned char *rijndaelcbc_encrypt(rijndaelcbc *c, unsigned char *ptblock) {
+  int i;
+  unsigned char *p = c->prevblock, *p2 = c->scratch;
+  for(i=0;i<16;i++)
+    *p2++ = *p++ ^ *ptblock++;
+
+  rijndaelEncrypt(c->rk, c->nrounds, c->scratch, c->prevblock);
+  return c->prevblock;
+}
+
+unsigned char *rijndaelcbc_decrypt(rijndaelcbc *c, unsigned char *ctblock) {
+  int i;
+  unsigned char *p = c->prevblock, *p2 = c->scratch;
+
+  rijndaelDecrypt(c->rk, c->nrounds, ctblock, c->scratch);
+
+  for(i=0;i<16;i++)
+    *p2++^=*p++;
+
+  memcpy(c->prevblock, ctblock, 16);
+  return c->scratch;
+}
+
diff --git a/lib/cbc.h b/lib/cbc.h
new file mode 100644 (file)
index 0000000..6fa59f6
--- /dev/null
+++ b/lib/cbc.h
@@ -0,0 +1,16 @@
+#ifndef __LIB_CBC_H
+#define __LIB_CBC_H
+
+typedef struct {
+  unsigned char prevblock[16];
+  unsigned char scratch[16];
+  int nrounds;
+  unsigned long rk[0];
+} rijndaelcbc;
+
+unsigned char *rijndaelcbc_decrypt(rijndaelcbc *c, unsigned char *ctblock);
+unsigned char *rijndaelcbc_encrypt(rijndaelcbc *c, unsigned char *ptblock);
+void rijndaelcbc_free(rijndaelcbc *c);
+rijndaelcbc *rijndaelcbc_init(unsigned char *key, int keybits, unsigned char *iv, int decrypt);
+
+#endif
index aa25610ce2e6bd57938f0993946343f31850f0ff..fad52bb4f6d4caa745198ba09ac90f420114a14c 100644 (file)
@@ -9,6 +9,7 @@
 #include "../lib/rijndael.h"
 #include "../lib/sha2.h"
 #include "../lib/hmac.h"
+#include "../lib/cbc.h"
 #include "library.h"
 #include <sys/types.h>
 #include <ctype.h>
index 089965406351731643249a6d3d5193987ffca559..5721f4fe3af0d71b13b49fddfb77df6ea4602ed4 100644 (file)
@@ -206,47 +206,3 @@ char *request_error(int errn) {
 
   return err;
 }
-
-rijndaelcbc *rijndaelcbc_init(unsigned char *key, int keybits, unsigned char *iv, int decrypt) {
-  rijndaelcbc *ret = (rijndaelcbc *)ntmalloc(sizeof(rijndaelcbc) + RKLENGTH(keybits) * sizeof(unsigned long));
-  if(!ret)
-    return NULL;
-
-  ret->rk = (unsigned long *)(ret + 1);
-
-  memcpy(ret->prevblock, iv, 16);
-
-  if(decrypt) {
-    ret->nrounds = rijndaelSetupDecrypt(ret->rk, key, keybits);
-  } else {
-    ret->nrounds = rijndaelSetupEncrypt(ret->rk, key, keybits);
-  }
-  return ret;
-}
-
-void rijndaelcbc_free(rijndaelcbc *c) {
-  ntfree(c);
-}
-
-unsigned char *rijndaelcbc_encrypt(rijndaelcbc *c, unsigned char *ptblock) {
-  int i;
-  unsigned char *p = c->prevblock, *p2 = c->scratch;
-  for(i=0;i<16;i++)
-    *p2++ = *p++ ^ *ptblock++;
-
-  rijndaelEncrypt(c->rk, c->nrounds, c->scratch, c->prevblock);
-  return c->prevblock;
-}
-
-unsigned char *rijndaelcbc_decrypt(rijndaelcbc *c, unsigned char *ctblock) {
-  int i;
-  unsigned char *p = c->prevblock, *p2 = c->scratch;
-
-  rijndaelDecrypt(c->rk, c->nrounds, ctblock, c->scratch);
-
-  for(i=0;i<16;i++)
-    *p2++^=*p++;
-
-  memcpy(c->prevblock, ctblock, 16);
-  return c->scratch;
-}
index 7922e81f83c2ebb7b94e93df288030da61fd7ae6..3c9316414c0c3fec6057966814ae73d0165928d3 100644 (file)
@@ -56,18 +56,6 @@ int generate_nonce(unsigned char *nonce, int nterfacer);
 char *int_to_hex(unsigned char *input, char *buf, int len);
 int hex_to_int(char *input, unsigned char *buf, int buflen);
 
-typedef struct {
-  unsigned char prevblock[16];
-  unsigned char scratch[16];
-  int nrounds;
-  unsigned long *rk;
-} rijndaelcbc;
-
-unsigned char *rijndaelcbc_decrypt(rijndaelcbc *c, unsigned char *ctblock);
-unsigned char *rijndaelcbc_encrypt(rijndaelcbc *c, unsigned char *ptblock);
-void rijndaelcbc_free(rijndaelcbc *c);
-rijndaelcbc *rijndaelcbc_init(unsigned char *key, int keybits, unsigned char *iv, int decrypt);
-
 #define ntmalloc(x)  nsmalloc(POOL_NTERFACER, x)
 #define ntfree(x)    nsfree(POOL_NTERFACER, x)
 #define ntrealloc(x, y) nsrealloc(POOL_NTERFACER, x, y)