Add set -e.
[u/mdw/catacomb] / hashsum.c
index 5776d93..11a5d37 100644 (file)
--- a/hashsum.c
+++ b/hashsum.c
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: hashsum.c,v 1.5 2000/12/06 20:33:27 mdw Exp $
+ * $Id: hashsum.c,v 1.9 2004/04/04 19:42:59 mdw Exp $
  *
  * Hash files using some secure hash function
  *
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: hashsum.c,v $
+ * Revision 1.9  2004/04/04 19:42:59  mdw
+ * Add set -e.
+ *
+ * Revision 1.8  2001/04/19 18:26:33  mdw
+ * Add CRC as another hash function.
+ *
+ * Revision 1.7  2001/02/21 20:03:22  mdw
+ * Added support for MD2 hash function.
+ *
+ * Revision 1.6  2001/01/25 21:40:14  mdw
+ * Support for new SHA variants added.
+ *
  * Revision 1.5  2000/12/06 20:33:27  mdw
  * Make flags be macros rather than enumerations, to ensure that they're
  * unsigned.
 
 #include "ghash.h"
 
-#include "md4.h"
-#include "md5.h"
-#include "rmd128.h"
-#include "rmd160.h"
-#include "rmd256.h"
-#include "rmd320.h"
-#include "sha.h"
-#include "tiger.h"
-
 /*----- Static variables --------------------------------------------------*/
 
-static const gchash *hashtab[] = {
-  &md5, &md4, &sha, &rmd128, &rmd160, &rmd256, &rmd320, &tiger,
-  0
-};
-
 #define f_binary 1u
 #define f_bogus 2u
 #define f_verbose 4u
@@ -195,9 +193,9 @@ static size_t gethex(const char *p, octet *q, size_t sz, char **pp)
 
 static const gchash *gethash(const char *name)
 {
-  const gchash **g, *gg = 0;
+  const gchash *const *g, *gg = 0;
   size_t sz = strlen(name);
-  for (g = hashtab; *g; g++) {
+  for (g = ghashtab; *g; g++) {
     if (strncmp(name, (*g)->name, sz) == 0) {
       if ((*g)->name[sz] == 0) {
        gg = *g;
@@ -601,7 +599,7 @@ int main(int argc, char *argv[])
       gch = gethash(q);
     }
     if (!gch)
-      gch = hashtab[0];
+      gch = gethash("md5");
     xfree(q);
   }
 
@@ -649,10 +647,10 @@ int main(int argc, char *argv[])
        break;
       case 'l': {
        unsigned j;
-       for (j = 0; hashtab[j]; j++) {
+       for (j = 0; ghashtab[j]; j++) {
          if (j)
            fputc(' ', stdout);
-         printf("%s", hashtab[j]->name);
+         printf("%s", ghashtab[j]->name);
        }
        fputc('\n', stdout);
        exit(0);