reorganize code a lot: create a lib-crypt with everything smime or gpg
[apps/madmutt.git] / pgppacket.c
diff --git a/pgppacket.c b/pgppacket.c
deleted file mode 100644 (file)
index 39ebdf2..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Copyright notice from original mutt:
- * Copyright (C) 2001 Thomas Roessler <roessler@does-not-exist.org>
- *
- * This file is part of mutt-ng, see http://www.muttng.org/.
- * It's licensed under the GNU General Public License,
- * please see the file GPL in the top level source directory.
- */
-
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-
-#include <lib-lib/mem.h>
-#include <lib-hash/hash.h>
-
-#include "lib.h"
-#include "pgplib.h"
-#include "pgppacket.h"
-
-#define CHUNKSIZE 1024
-
-static unsigned char *pbuf = NULL;
-static size_t plen = 0;
-
-static int read_material (size_t material, size_t * used, FILE * fp)
-{
-  if (*used + material >= plen) {
-    unsigned char *p;
-    size_t nplen;
-
-    nplen = *used + material + CHUNKSIZE;
-
-    if (!(p = realloc (pbuf, nplen))) { /* __MEM_CHECKED__ */
-      perror ("realloc");
-      return -1;
-    }
-    plen = nplen;
-    pbuf = p;
-  }
-
-  if (fread (pbuf + *used, 1, material, fp) < material) {
-    perror ("fread");
-    return -1;
-  }
-
-  *used += material;
-  return 0;
-}
-
-unsigned char *pgp_read_packet (FILE * fp, size_t * len)
-{
-  size_t used = 0;
-  off_t startpos;
-  unsigned char ctb;
-  unsigned char b;
-  size_t material;
-
-  startpos = ftello (fp);
-
-  if (!plen) {
-    pbuf = p_new(char, plen = CHUNKSIZE);
-  }
-
-  if (fread (&ctb, 1, 1, fp) < 1) {
-    if (!feof (fp))
-      perror ("fread");
-    goto bail;
-  }
-
-  if (!(ctb & 0x80)) {
-    goto bail;
-  }
-
-  if (ctb & 0x40) {             /* handle PGP 5.0 packets. */
-    int partial = 0;
-
-    pbuf[0] = ctb;
-    used++;
-
-    do {
-      if (fread (&b, 1, 1, fp) < 1) {
-        perror ("fread");
-        goto bail;
-      }
-
-      if (b < 192) {
-        material = b;
-        partial = 0;
-        /* material -= 1; */
-      }
-      else if (192 <= b && b <= 223) {
-        material = (b - 192) * 256;
-        if (fread (&b, 1, 1, fp) < 1) {
-          perror ("fread");
-          goto bail;
-        }
-        material += b + 192;
-        partial = 0;
-        /* material -= 2; */
-      }
-      else if (b < 255) {
-        material = 1 << (b & 0x1f);
-        partial = 1;
-        /* material -= 1; */
-      }
-      else
-        /* b == 255 */
-      {
-        unsigned char buf[4];
-
-        if (fread (buf, 4, 1, fp) < 1) {
-          perror ("fread");
-          goto bail;
-        }
-        /*assert( sizeof(material) >= 4 ); */
-        material = buf[0] << 24;
-        material |= buf[1] << 16;
-        material |= buf[2] << 8;
-        material |= buf[3];
-        partial = 0;
-        /* material -= 5; */
-      }
-
-      if (read_material (material, &used, fp) == -1)
-        goto bail;
-
-    }
-    while (partial);
-  }
-  else
-    /* Old-Style PGP */
-  {
-    int bytes = 0;
-
-    pbuf[0] = 0x80 | ((ctb >> 2) & 0x0f);
-    used++;
-
-    switch (ctb & 0x03) {
-    case 0:
-      {
-        if (fread (&b, 1, 1, fp) < 1) {
-          perror ("fread");
-          goto bail;
-        }
-
-        material = b;
-        break;
-      }
-
-    case 1:
-      bytes = 2;
-
-    case 2:
-      {
-        int i;
-
-        if (!bytes)
-          bytes = 4;
-
-        material = 0;
-
-        for (i = 0; i < bytes; i++) {
-          if (fread (&b, 1, 1, fp) < 1) {
-            perror ("fread");
-            goto bail;
-          }
-
-          material = (material << 8) + b;
-        }
-        break;
-      }
-
-    default:
-      goto bail;
-    }
-
-    if (read_material (material, &used, fp) == -1)
-      goto bail;
-  }
-
-  if (len)
-    *len = used;
-
-  return pbuf;
-
-bail:
-
-  fseeko (fp, startpos, SEEK_SET);
-  return NULL;
-}
-
-void pgp_release_packet (void)
-{
-  plen = 0;
-  p_delete(&pbuf);
-}