Remove buf bits which moved to mLib. Fix email addresses.
authormdw <mdw>
Fri, 23 Sep 2005 16:05:38 +0000 (16:05 +0000)
committermdw <mdw>
Fri, 23 Sep 2005 16:05:38 +0000 (16:05 +0000)
15 files changed:
Makefile.m4
buf.c
buf.h
catcrypt.1
catsign.1
catsign.c
cookie.1
dsig.1
ghash.h
hashsum.1
key-pack.c
key.1
keyring.5
mkphrase.1
pixie.1

index fb2591d..e317db9 100644 (file)
@@ -433,7 +433,7 @@ TESTS = serpent-check bittest testprogs
 
 CLEANFILES = \
        *.t$(EXEEXT) *.to \
 
 CLEANFILES = \
        *.t$(EXEEXT) *.to \
-       mptypes.h primetab.c primetab.h ectab.c \
+       mptypes.h primetab.c primetab.h ectab.c ptab.c bintab.c \
        addsuffix(`gen_tables', `-tab.h')
 
 ## --- Makefile building (haha!) ---
        addsuffix(`gen_tables', `-tab.h')
 
 ## --- Makefile building (haha!) ---
diff --git a/buf.c b/buf.c
index e34d876..0cdb91d 100644 (file)
--- a/buf.c
+++ b/buf.c
 
 /*----- Main code ---------------------------------------------------------*/
 
 
 /*----- Main code ---------------------------------------------------------*/
 
-/* --- @buf_init@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @void *p@ = pointer to a buffer
- *             @size_t sz@ = size of the buffer
- *
- * Returns:    ---
- *
- * Use:                Initializes the buffer block appropriately.
- */
-
-void buf_init(buf *b, void *p, size_t sz)
-{
-  b->base = b->p = p;
-  b->limit = b->p + sz;
-  b->f = 0;
-}
-
-/* --- @buf_break@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *
- * Returns:    Some negative value.
- *
- * Use:                Marks a buffer as broken.
- */
-
-int buf_break(buf *b) { b->f |= BF_BROKEN; return (-1); }
-
-/* --- @buf_flip@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *
- * Returns:    ---
- *
- * Use:                Flips a buffer so that if you've just been writing to it,
- *             you can now read from the bit you've written.
- */
-
-void buf_flip(buf *b)
-{
-  b->limit = b->p;
-  b->p = b->base;
-}
-
-/* --- @buf_ensure@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t sz@ = size of data wanted
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Ensures that there are @sz@ bytes still in the buffer.
- */
-
-int buf_ensure(buf *b, size_t sz) { return (BENSURE(b, sz)); }
-
-/* --- @buf_get@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t sz@ = size of the buffer
- *
- * Returns:    Pointer to the place in the buffer.
- *
- * Use:                Reserves a space in the buffer of the requested size, and
- *             returns its start address.
- */
-
-void *buf_get(buf *b, size_t sz)
-{
-  void *p;
-  if (BENSURE(b, sz))
-    return (0);
-  p = BCUR(b);
-  BSTEP(b, sz);
-  return (p);
-}
-
-/* --- @buf_put@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @const void *p@ = pointer to a buffer
- *             @size_t sz@ = size of the buffer
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Fetches data from some place and puts it in the buffer
- */
-
-int buf_put(buf *b, const void *p, size_t sz)
-{
-  if (BENSURE(b, sz))
-    return (-1);
-  memcpy(BCUR(b), p, sz);
-  BSTEP(b, sz);
-  return (0);
-}
-
-/* --- @buf_getbyte@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *
- * Returns:    A byte, or less than zero if there wasn't a byte there.
- *
- * Use:                Gets a single byte from a buffer.
- */
-
-int buf_getbyte(buf *b)
-{
-  if (BENSURE(b, 1))
-    return (-1);
-  return (*b->p++);
-}
-
-/* --- @buf_putbyte@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @int ch@ = byte to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Puts a single byte in a buffer.
- */
-
-int buf_putbyte(buf *b, int ch)
-{
-  if (BENSURE(b, 1))
-    return (-1);
-  *b->p++ = ch;
-  return (0);
-}
-
-/* --- @buf_getu16@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint16 *w@ = where to put the word
- *
- * Returns:    Zero if OK, or nonzero if there wasn't a word there.
- *
- * Use:                Gets a 16-bit word from a buffer.
- */
-
-int buf_getu16(buf *b, uint16 *w)
-{
-  if (BENSURE(b, 2))
-    return (-1);
-  *w = LOAD16(b->p);
-  BSTEP(b, 2);
-  return (0);
-}
-
-/* --- @buf_putu16@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint16 w@ = word to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Puts a 16-but word in a buffer.
- */
-
-int buf_putu16(buf *b, uint16 w)
-{
-  if (BENSURE(b, 2))
-    return (-1);
-  STORE16(b->p, w);
-  BSTEP(b, 2);
-  return (0);
-}
-
-/* --- @buf_getu32@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint32 *w@ = where to put the word
- *
- * Returns:    Zero if OK, or nonzero if there wasn't a word there.
- *
- * Use:                Gets a 32-bit word from a buffer.
- */
-
-int buf_getu32(buf *b, uint32 *w)
-{
-  if (BENSURE(b, 4))
-    return (-1);
-  *w = LOAD32(b->p);
-  BSTEP(b, 4);
-  return (0);
-}
-
-/* --- @buf_putu32@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint32 w@ = word to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Puts a 32-but word in a buffer.
- */
-
-int buf_putu32(buf *b, uint32 w)
-{
-  if (BENSURE(b, 4))
-    return (-1);
-  STORE32(b->p, w);
-  BSTEP(b, 4);
-  return (0);
-}
-
-/* --- @findz@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t *nn@ = where to put the length
- *
- * Returns:    Zero if OK, nonzero if there wasn't a null byte to be found.
- *
- * Use:                Finds a terminating null byte.
- */
-
-static int findz(buf *b, size_t *nn)
-{
-  octet *p;
-
-  if ((p = memchr(BCUR(b), 0, BLEN(b))) == 0) {
-    buf_break(b);
-    return (-1);
-  }
-  *nn = p - BCUR(b);
-  return (0);
-}
-
-#define DOSUFFIXES(DO) DO(8) DO(16) DO(32) DO(z)
-
-/* --- @buf_getmem{8,16,32,z} --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t *nn@ = where to put the length
- *
- * Returns:    Pointer to the buffer data, or null.
- *
- * Use:                Gets a chunk of memory from a buffer.  The number, @16@ or
- *             @32@, is the width of the length; @z@ means null-terminated.
- */
-
-void *buf_getmem8(buf *b, size_t *nn)
-{
-  int n;
-
-  if ((n = buf_getbyte(b)) < 0) return (0);
-  *nn = n;
-  return (buf_get(b, n));
-}
-
-void *buf_getmem16(buf *b, size_t *nn)
-{
-  uint16 n;
-
-  if (buf_getu16(b, &n)) return (0);
-  *nn = n;
-  return (buf_get(b, n));
-}
-
-void *buf_getmem32(buf *b, size_t *nn)
-{
-  uint32 n;
-
-  if (buf_getu32(b, &n)) return (0);
-  *nn = n;
-  return (buf_get(b, n));
-}
-  
-void *buf_getmemz(buf *b, size_t *nn)
-{
-  if (findz(b, nn)) return (0);
-  return (buf_get(b, *nn));
-}
-
-/* --- @buf_putmem{8,16,32,z} --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @const void *p@ = pointer to data to write
- *             @size_t n@ = length to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Writes a chunk of data to a buffer.  The number, @16@ or
- *             @32@, is the width of the length; @z@ means null-terminated.
- */
-
-int buf_putmem8(buf *b, const void *p, size_t n)
-{
-  assert(n <= 0xfful);
-  if (buf_putbyte(b, n) || buf_put(b, p, n))
-    return (-1);
-  return (0);
-}
-
-int buf_putmem16(buf *b, const void *p, size_t n)
-{
-  assert(n <= 0xfffful);
-  if (buf_putu16(b, n) || buf_put(b, p, n))
-    return (-1);
-  return (0);
-}
-
-int buf_putmem32(buf *b, const void *p, size_t n)
-{
-  assert(n <= 0xfffffffful);
-  if (buf_putu32(b, n) || buf_put(b, p, n))
-    return (-1);
-  return (0);
-}
-
-int buf_putmemz(buf *b, const void *p, size_t n)
-{
-  octet *q;
-
-  assert(!memchr(p, 0, n));
-  if ((q = buf_get(b, n + 1)) == 0)
-    return (-1);
-  memcpy(q, p, n);
-  q[n] = 0;
-  return (0);
-}
-
-/* --- @buf_getbuf{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @buf *bb@ = where to put the result
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Gets a block of data from a buffer, and writes its bounds to
- *             another buffer.  The number, @16@ or @32@, is the width of
- *             the length; @z@ means null-terminated.
- */
-
-#define GETBUF(suff) int buf_getbuf##suff(buf *b, buf *bb)             \
-{                                                                      \
-  void *p;                                                             \
-  size_t n;                                                            \
-                                                                       \
-  if ((p = buf_getmem##suff(b, &n)) == 0)                              \
-    return (-1);                                                       \
-  buf_init(bb, p, n);                                                  \
-  return (0);                                                          \
-}
-DOSUFFIXES(GETBUF)
-
-/* --- @buf_putbuf{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @buf *bb@ = buffer to write
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Puts the contents of a buffer to a buffer.  The number, @16@
- *             or @32@, is the width of the length; @z@ means null-
- *             terminated.
- */
-
-#define PUTBUF(suff) int buf_putbuf##suff(buf *b, buf *bb)             \
-  { return (buf_putmem##suff(b, BBASE(bb), BLEN(bb))); }
-DOSUFFIXES(PUTBUF)  
-
-/* --- @buf_getstr{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @dstr *d@ = where to put the result
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Gets a block of data from a buffer, and writes its contents
- *             to a string.  The number, @16@ or @32@, is the width of the
- *             length; @z@ means null-terminated.
- */
-
-#define GETSTR(suff) int buf_getstr##suff(buf *b, dstr *d)             \
-{                                                                      \
-  void *p;                                                             \
-  size_t n;                                                            \
-                                                                       \
-  if ((p = buf_getmem##suff(b, &n)) == 0)                              \
-    return (-1);                                                       \
-  DPUTM(d, p, n);                                                      \
-  return (0);                                                          \
-}
-DOSUFFIXES(GETSTR)
-
-/* --- @buf_putstr{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @dstr *d@ = string to write
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Puts a string to a buffer, and writes its bounds to
- *             another buffer.  The number, @16@ or @32@, is the width of
- *             the length; @z@ means null-terminated.
- */
-
-#define PUTSTR(suff) int buf_putstr##suff(buf *b, dstr *d)             \
-  { return (buf_putmem##suff(b, d->buf, d->len)); }
-DOSUFFIXES(PUTSTR)
-
 /* --- @buf_getmp@ --- *
  *
  * Arguments:  @buf *b@ = pointer to a buffer block
 /* --- @buf_getmp@ --- *
  *
  * Arguments:  @buf *b@ = pointer to a buffer block
diff --git a/buf.h b/buf.h
index 84c4121..9b8e340 100644 (file)
--- a/buf.h
+++ b/buf.h
@@ -36,9 +36,8 @@
 
 /*----- Header files ------------------------------------------------------*/
 
 
 /*----- Header files ------------------------------------------------------*/
 
-#include <stddef.h>
-
 #include <mLib/bits.h>
 #include <mLib/bits.h>
+#include <mLib/buf.h>
 
 #ifndef CATACOMB_MP_H
 #  include "mp.h"
 
 #ifndef CATACOMB_MP_H
 #  include "mp.h"
 #  include "ec.h"
 #endif
 
 #  include "ec.h"
 #endif
 
-/*----- Data structures ---------------------------------------------------*/
-
-/* --- Buffers --- *
- *
- * Buffers provide a simple stream-like interface for building and parsing
- * packets.
- */
-
-typedef struct buf {
-  octet *base, *p, *limit;             /* Pointers to the buffer */
-  unsigned f;                          /* Various flags */
-} buf;
-
-#define BF_BROKEN 1u                   /* Buffer is broken */
-
-/*----- Useful macros -----------------------------------------------------*/
-
-#define BBASE(b) ((b)->base)
-#define BLIM(b) ((b)->limit)
-#define BCUR(b) ((b)->p)
-#define BSZ(b) ((b)->limit - (b)->base)
-#define BLEN(b) ((b)->p - (b)->base)
-#define BLEFT(b) ((b)->limit - (b)->p)
-#define BSTEP(b, sz) ((b)->p += (sz))
-#define BBAD(b) ((b)->f & BF_BROKEN)
-#define BOK(b) (!BBAD(b))
-
-#define BENSURE(b, sz)                                                 \
-  (BBAD(b) ? -1 : (sz) > BLEFT(b) ? (b)->f |= BF_BROKEN, -1 : 0)
-
 /*----- Functions provided ------------------------------------------------*/
 
 /*----- Functions provided ------------------------------------------------*/
 
-/* --- @buf_init@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @void *p@ = pointer to a buffer
- *             @size_t sz@ = size of the buffer
- *
- * Returns:    ---
- *
- * Use:                Initializes the buffer block appropriately.
- */
-
-extern void buf_init(buf */*b*/, void */*p*/, size_t /*sz*/);
-
-/* --- @buf_break@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *
- * Returns:    Some negative value.
- *
- * Use:                Marks a buffer as broken.
- */
-
-extern int buf_break(buf */*b*/);
-
-/* --- @buf_flip@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *
- * Returns:    ---
- *
- * Use:                Flips a buffer so that if you've just been writing to it,
- *             you can now read from the bit you've written.
- */
-
-extern void buf_flip(buf */*b*/);
-
-/* --- @buf_ensure@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t sz@ = size of data wanted
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Ensures that there are @sz@ bytes still in the buffer.
- */
-
-extern int buf_ensure(buf */*b*/, size_t /*sz*/);
-
-/* --- @buf_get@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t sz@ = size of the buffer
- *
- * Returns:    Pointer to the place in the buffer.
- *
- * Use:                Reserves a space in the buffer of the requested size, and
- *             returns its start address.
- */
-
-extern void *buf_get(buf */*b*/, size_t /*sz*/);
-
-/* --- @buf_put@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @const void *p@ = pointer to a buffer
- *             @size_t sz@ = size of the buffer
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Fetches data from some place and puts it in the buffer
- */
-
-extern int buf_put(buf */*b*/, const void */*p*/, size_t /*sz*/);
-
-/* --- @buf_getbyte@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *
- * Returns:    A byte, or less than zero if there wasn't a byte there.
- *
- * Use:                Gets a single byte from a buffer.
- */
-
-extern int buf_getbyte(buf */*b*/);
-
-/* --- @buf_putbyte@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @int ch@ = byte to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Puts a single byte in a buffer.
- */
-
-extern int buf_putbyte(buf */*b*/, int /*ch*/);
-
-/* --- @buf_getu16@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint16 *w@ = where to put the word
- *
- * Returns:    Zero if OK, or nonzero if there wasn't a word there.
- *
- * Use:                Gets a 16-bit word from a buffer.
- */
-
-extern int buf_getu16(buf */*b*/, uint16 */*w*/);
-
-/* --- @buf_putu16@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint16 w@ = word to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Puts a 16-but word in a buffer.
- */
-
-extern int buf_putu16(buf */*b*/, uint16 /*w*/);
-
-/* --- @buf_getu32@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint32 *w@ = where to put the word
- *
- * Returns:    Zero if OK, or nonzero if there wasn't a word there.
- *
- * Use:                Gets a 32-bit word from a buffer.
- */
-
-extern int buf_getu32(buf */*b*/, uint32 */*w*/);
-
-/* --- @buf_putu32@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @uint32 w@ = word to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Puts a 32-but word in a buffer.
- */
-
-extern int buf_putu32(buf */*b*/, uint32 /*w*/);
-
-/* --- @buf_getmem{8,16,32,z} --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @size_t *nn@ = where to put the length
- *
- * Returns:    Pointer to the buffer data, or null.
- *
- * Use:                Gets a chunk of memory from a buffer.  The number, @16@ or
- *             @32@, is the width of the length; @z@ means null-terminated.
- */
-
-extern void *buf_getmem8(buf */*b*/, size_t */*nn*/);
-extern void *buf_getmem16(buf */*b*/, size_t */*nn*/);
-extern void *buf_getmem32(buf */*b*/, size_t */*nn*/);
-extern void *buf_getmemz(buf */*b*/, size_t */*nn*/);
-
-/* --- @buf_putmem{8,16,32,z} --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @const void *p@ = pointer to data to write
- *             @size_t n@ = length to write
- *
- * Returns:    Zero if OK, nonzero if there wasn't enough space.
- *
- * Use:                Writes a chunk of data to a buffer.  The number, @16@ or
- *             @32@, is the width of the length; @z@ means null-terminated.
- */
-
-extern int buf_putmem8(buf */*b*/, const void */*p*/, size_t /*n*/);
-extern int buf_putmem16(buf */*b*/, const void */*p*/, size_t /*n*/);
-extern int buf_putmem32(buf */*b*/, const void */*p*/, size_t /*n*/);
-extern int buf_putmemz(buf */*b*/, const void */*p*/, size_t /*n*/);
-
-/* --- @buf_getbuf{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @buf *bb@ = where to put the result
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Gets a block of data from a buffer, and writes its bounds to
- *             another buffer.  The number, @16@ or @32@, is the width of
- *             the length; @z@ means null-terminated.
- */
-
-extern int buf_getbuf8(buf */*b*/, buf */*bb*/);
-extern int buf_getbuf16(buf */*b*/, buf */*bb*/);
-extern int buf_getbuf32(buf */*b*/, buf */*bb*/);
-extern int buf_getbufz(buf */*b*/, buf */*bb*/);
-
-/* --- @buf_putbuf{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @buf *bb@ = buffer to write
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Puts the contents of a buffer to a buffer.  The number, @16@
- *             or @32@, is the width of the length; @z@ means null-
- *             terminated.
- */
-
-extern int buf_putbuf8(buf */*b*/, buf */*bb*/);
-extern int buf_putbuf16(buf */*b*/, buf */*bb*/);
-extern int buf_putbuf32(buf */*b*/, buf */*bb*/);
-extern int buf_putbufz(buf */*b*/, buf */*bb*/);
-
-/* --- @buf_getstr{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @dstr *d@ = where to put the result
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Gets a block of data from a buffer, and writes its contents
- *             to a string.  The number, @16@ or @32@, is the width of the
- *             length; @z@ means null-terminated.
- */
-
-extern int buf_getstr8(buf */*b*/, dstr */*d*/);
-extern int buf_getstr16(buf */*b*/, dstr */*d*/);
-extern int buf_getstr32(buf */*b*/, dstr */*d*/);
-extern int buf_getstrz(buf */*b*/, dstr */*d*/);
-
-/* --- @buf_putstr{8,16,32,z}@ --- *
- *
- * Arguments:  @buf *b@ = pointer to a buffer block
- *             @dstr *d@ = string to write
- *
- * Returns:    Zero if it worked, nonzero if there wasn't enough space.
- *
- * Use:                Puts a string to a buffer, and writes its bounds to
- *             another buffer.  The number, @16@ or @32@, is the width of
- *             the length; @z@ means null-terminated.
- */
-
-extern int buf_putstr8(buf */*b*/, dstr */*d*/);
-extern int buf_putstr16(buf */*b*/, dstr */*d*/);
-extern int buf_putstr32(buf */*b*/, dstr */*d*/);
-extern int buf_putstrz(buf */*b*/, dstr */*d*/);
-
 /* --- @buf_getmp@ --- *
  *
  * Arguments:  @buf *b@ = pointer to a buffer block
 /* --- @buf_getmp@ --- *
  *
  * Arguments:  @buf *b@ = pointer to a buffer block
index c89ff4e..56fe297 100644 (file)
@@ -696,4 +696,4 @@ That's it.  Nothing terribly controversial, really.
 .BR hashsum (1),
 .BR keyring (5).
 .SH AUTHOR
 .BR hashsum (1),
 .BR keyring (5).
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
index b4b7f5c..9eb2398 100644 (file)
--- a/catsign.1
+++ b/catsign.1
@@ -730,4 +730,4 @@ the same file.
 .BR hashsum (1),
 .BR keyring (5).
 .SH AUTHOR
 .BR hashsum (1),
 .BR keyring (5).
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
index 5b5d7d0..dc96e55 100644 (file)
--- a/catsign.c
+++ b/catsign.c
@@ -359,7 +359,7 @@ static void sigtobuffer(sigmsg *s, buf *b, int hashp)
   buf_putu32(b, s->keyid);
   buf_putu32(b, HI64(t));
   buf_putu32(b, LO64(t));
   buf_putu32(b, s->keyid);
   buf_putu32(b, HI64(t));
   buf_putu32(b, LO64(t));
-  buf_putstr16(b, &s->kh);
+  buf_putdstr16(b, &s->kh);
   assert(BOK(b));
 }
 
   assert(BOK(b));
 }
 
@@ -428,7 +428,7 @@ static void sig_readheader(enc *e, sigmsg *s,
   if (buf_getu32(&b, &x) || buf_getu32(&b, &y))
     choke("missing datestamp", p);
   SET64(t, x, y); s->t = GET64(time_t, t);
   if (buf_getu32(&b, &x) || buf_getu32(&b, &y))
     choke("missing datestamp", p);
   SET64(t, x, y); s->t = GET64(time_t, t);
-  if (buf_getstr16(&b, &s->kh))
+  if (buf_getdstr16(&b, &s->kh))
     choke("missing key hash", p);
   if (BLEFT(&b))
     choke("junk at end", p);
     choke("missing key hash", p);
   if (BLEFT(&b))
     choke("junk at end", p);
index 61d9726..4a635e6 100644 (file)
--- a/cookie.1
+++ b/cookie.1
@@ -266,4 +266,4 @@ The keyid and expiry date are stored in network (big-endian) byte order.
 .SH "SEE ALSO"
 .BR key (1).
 .SH "AUTHOR"
 .SH "SEE ALSO"
 .BR key (1).
 .SH "AUTHOR"
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
diff --git a/dsig.1 b/dsig.1
index 3b4223c..70a4ea8 100644 (file)
--- a/dsig.1
+++ b/dsig.1
@@ -510,4 +510,4 @@ blocks.
 .BR catsign (1),
 .BR keyring (5).
 .SH AUTHOR
 .BR catsign (1),
 .BR keyring (5).
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
diff --git a/ghash.h b/ghash.h
index d3a039b..4b8e6a3 100644 (file)
--- a/ghash.h
+++ b/ghash.h
@@ -61,9 +61,9 @@ typedef struct ghash_ops {
 #define GH_DESTROY(h)          (h)->ops->destroy((h))
 #define GH_COPY(h)             (h)->ops->copy((h))
 
 #define GH_DESTROY(h)          (h)->ops->destroy((h))
 #define GH_COPY(h)             (h)->ops->copy((h))
 
-#define GH_HASHU_(h, n, w)  do {                                       \
-  unsigned long n_ = (n); octet b_[SZ_##w];                            \
-  STORE##w(b_, n_); GH_HASH((h), b_, SZ_##w);                          \
+#define GH_HASHU_(h, n, W)  do {                                       \
+  TY_U##W n_ = (n); octet b_[SZ_##W];                                  \
+  STORE##W(b_, n_); GH_HASH((h), b_, SZ_##W);                          \
 } while (0)
 #define GH_HASHU8(h, n)         GH_HASHU_((h), (n), 8)
 #define GH_HASHU16(h, n) GH_HASHU_((h), (n), 16)
 } while (0)
 #define GH_HASHU8(h, n)         GH_HASHU_((h), (n), 8)
 #define GH_HASHU16(h, n) GH_HASHU_((h), (n), 16)
@@ -75,10 +75,15 @@ typedef struct ghash_ops {
 #define GH_HASHU32(h, n) GH_HASHU_((h), (n), 32)
 #define GH_HASHU32_B(h, n) GH_HASHU_((h), (n), 32_B)
 #define GH_HASHU32_L(h, n) GH_HASHU_((h), (n), 32_L)
 #define GH_HASHU32(h, n) GH_HASHU_((h), (n), 32)
 #define GH_HASHU32_B(h, n) GH_HASHU_((h), (n), 32_B)
 #define GH_HASHU32_L(h, n) GH_HASHU_((h), (n), 32_L)
+#ifdef HAVE_UINT64
+#  define GH_HASHU64(h, n) GH_HASHU_((h), (n), 64)
+#  define GH_HASHU64_B(h, n) GH_HASHU_((h), (n), 64_B)
+#  define GH_HASHU64_L(h, n) GH_HASHU_((h), (n), 64_L)
+#endif
 
 
-#define GH_HASHBUF_(h, p, sz, w) do {                                  \
-  size_t sz_ = (sz); assert(sz_ <= MASK##w);                           \
-  GH_HASHU_(h, sz_, w); GH_HASH(h, (p), sz_);                          \
+#define GH_HASHBUF_(h, p, sz, W) do {                                  \
+  size_t sz_ = (sz); assert(sz_ <= MASK##W);                           \
+  GH_HASHU_(h, sz_, W); GH_HASH(h, (p), sz_);                          \
 } while (0)
 #define GH_HASHBUF8(h, p, sz) GH_HASHBUF_((h), (p), (sz), 8)
 #define GH_HASHBUF16(h, p, sz) GH_HASHBUF_((h), (p), (sz), 16)
 } while (0)
 #define GH_HASHBUF8(h, p, sz) GH_HASHBUF_((h), (p), (sz), 8)
 #define GH_HASHBUF16(h, p, sz) GH_HASHBUF_((h), (p), (sz), 16)
@@ -90,9 +95,14 @@ typedef struct ghash_ops {
 #define GH_HASHBUF32(h, p, sz) GH_HASHBUF_((h), (p), (sz), 32)
 #define GH_HASHBUF32_L(h, p, sz) GH_HASHBUF_((h), (p), (sz), 32_L)
 #define GH_HASHBUF32_B(h, p, sz) GH_HASHBUF_((h), (p), (sz), 32_B)
 #define GH_HASHBUF32(h, p, sz) GH_HASHBUF_((h), (p), (sz), 32)
 #define GH_HASHBUF32_L(h, p, sz) GH_HASHBUF_((h), (p), (sz), 32_L)
 #define GH_HASHBUF32_B(h, p, sz) GH_HASHBUF_((h), (p), (sz), 32_B)
+#ifdef HAVE_UINT64
+#  define GH_HASHBUF64(h, p, sz) GH_HASHBUF_((h), (p), (sz), 64)
+#  define GH_HASHBUF64_L(h, p, sz) GH_HASHBUF_((h), (p), (sz), 64_L)
+#  define GH_HASHBUF64_B(h, p, sz) GH_HASHBUF_((h), (p), (sz), 64_B)
+#endif
 
 
-#define GH_HASHSTR_(h, p, w) do {                                      \
-  const char *p_ = (p); GH_HASHBUF_((h), p_, strlen(p_), w);           \
+#define GH_HASHSTR_(h, p, W) do {                                      \
+  const char *p_ = (p); GH_HASHBUF_((h), p_, strlen(p_), W);           \
 } while (0)
 #define GH_HASHSTR8(h, p) GH_HASHSTR_((h), (p), 8)
 #define GH_HASHSTR16(h, p) GH_HASHSTR_((h), (p), 16)
 } while (0)
 #define GH_HASHSTR8(h, p) GH_HASHSTR_((h), (p), 8)
 #define GH_HASHSTR16(h, p) GH_HASHSTR_((h), (p), 16)
@@ -104,6 +114,11 @@ typedef struct ghash_ops {
 #define GH_HASHSTR32(h, p) GH_HASHSTR_((h), (p), 32)
 #define GH_HASHSTR32_L(h, p) GH_HASHSTR_((h), (p), 32_L)
 #define GH_HASHSTR32_B(h, p) GH_HASHSTR_((h), (p), 32_B)
 #define GH_HASHSTR32(h, p) GH_HASHSTR_((h), (p), 32)
 #define GH_HASHSTR32_L(h, p) GH_HASHSTR_((h), (p), 32_L)
 #define GH_HASHSTR32_B(h, p) GH_HASHSTR_((h), (p), 32_B)
+#ifdef HAVE_UINT64
+#  define GH_HASHSTR32(h, p) GH_HASHSTR_((h), (p), 64)
+#  define GH_HASHSTR32_L(h, p) GH_HASHSTR_((h), (p), 64_L)
+#  define GH_HASHSTR32_B(h, p) GH_HASHSTR_((h), (p), 64_B)
+#endif
 
 #define GH_HASHSTRZ(h, p) do {                                         \
   const char *p_ = (p); GH_HASH((h), p_, strlen(p_) + 1);              \
 
 #define GH_HASHSTRZ(h, p) do {                                         \
   const char *p_ = (p); GH_HASH((h), p_, strlen(p_) + 1);              \
index 0084b04..dfbb2b1 100644 (file)
--- a/hashsum.1
+++ b/hashsum.1
@@ -297,4 +297,4 @@ directive in its output.
 .BR catsign (1),
 .BR catcrypt (1).
 .SH "AUTHOR"
 .BR catsign (1),
 .BR catcrypt (1).
 .SH "AUTHOR"
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
index 0303dbc..fed144a 100644 (file)
@@ -138,7 +138,7 @@ int key_unpack(key_packdef *kp, key_data *kd, dstr *d)
   /* --- Ensure that the key has the right type --- */
 
   if ((kd->e & KF_ENCMASK) != e) {
   /* --- Ensure that the key has the right type --- */
 
   if ((kd->e & KF_ENCMASK) != e) {
-    err = KERR_BADTYPE;
+    err = KERR_WRONGTYPE;
     goto fail;
   }
 
     goto fail;
   }
 
diff --git a/key.1 b/key.1
index 785021e..6aa3520 100644 (file)
--- a/key.1
+++ b/key.1
@@ -941,5 +941,5 @@ you want them to be replaced during the merge.
 .SH "SEE ALSO"
 .BR keyring (5).
 .SH AUTHOR
 .SH "SEE ALSO"
 .BR keyring (5).
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
 
 
index b4b5742..684f408 100644 (file)
--- a/keyring.5
+++ b/keyring.5
@@ -217,4 +217,4 @@ preceded by a single length octet, followed by the value preceded by a
 two-octet length.  The lengths do not include themselves; neither string
 has a terminator character; there is no padding.
 .SH AUTHOR
 two-octet length.  The lengths do not include themselves; neither string
 has a terminator character; there is no padding.
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>
index 56141f3..3f93ff2 100644 (file)
@@ -129,4 +129,4 @@ ones.
 Three letters work fairly well for English.  However, they may not work
 so well for other languages.
 .SH AUTHOR
 Three letters work fairly well for English.  However, they may not work
 so well for other languages.
 .SH AUTHOR
-Mark Wooding, <mdw@nsict.org>.
+Mark Wooding, <mdw@distorted.org.uk>.
diff --git a/pixie.1 b/pixie.1
index bdffd05..75bf0b7 100644 (file)
--- a/pixie.1
+++ b/pixie.1
@@ -327,4 +327,4 @@ noted in the
 .B auto-pgp
 documentation.
 .SH "AUTHOR"
 .B auto-pgp
 documentation.
 .SH "AUTHOR"
-Mark Wooding, <mdw@nsict.org>
+Mark Wooding, <mdw@distorted.org.uk>