From: mdw Date: Fri, 23 Sep 2005 16:05:38 +0000 (+0000) Subject: Remove buf bits which moved to mLib. Fix email addresses. X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/commitdiff_plain/f387fcb17a980fe165218d217b0187a8c279508a?ds=sidebyside Remove buf bits which moved to mLib. Fix email addresses. --- diff --git a/Makefile.m4 b/Makefile.m4 index fb2591d..e317db9 100644 --- a/Makefile.m4 +++ b/Makefile.m4 @@ -433,7 +433,7 @@ TESTS = serpent-check bittest testprogs 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!) --- diff --git a/buf.c b/buf.c index e34d876..0cdb91d 100644 --- a/buf.c +++ b/buf.c @@ -37,410 +37,6 @@ /*----- 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 diff --git a/buf.h b/buf.h index 84c4121..9b8e340 100644 --- a/buf.h +++ b/buf.h @@ -36,9 +36,8 @@ /*----- Header files ------------------------------------------------------*/ -#include - #include +#include #ifndef CATACOMB_MP_H # include "mp.h" @@ -48,284 +47,8 @@ # 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 ------------------------------------------------*/ -/* --- @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 diff --git a/catcrypt.1 b/catcrypt.1 index c89ff4e..56fe297 100644 --- a/catcrypt.1 +++ b/catcrypt.1 @@ -696,4 +696,4 @@ That's it. Nothing terribly controversial, really. .BR hashsum (1), .BR keyring (5). .SH AUTHOR -Mark Wooding, +Mark Wooding, diff --git a/catsign.1 b/catsign.1 index b4b7f5c..9eb2398 100644 --- a/catsign.1 +++ b/catsign.1 @@ -730,4 +730,4 @@ the same file. .BR hashsum (1), .BR keyring (5). .SH AUTHOR -Mark Wooding, +Mark Wooding, diff --git a/catsign.c b/catsign.c index 5b5d7d0..dc96e55 100644 --- 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_putstr16(b, &s->kh); + buf_putdstr16(b, &s->kh); 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_getstr16(&b, &s->kh)) + if (buf_getdstr16(&b, &s->kh)) choke("missing key hash", p); if (BLEFT(&b)) choke("junk at end", p); diff --git a/cookie.1 b/cookie.1 index 61d9726..4a635e6 100644 --- 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" -Mark Wooding, +Mark Wooding, diff --git a/dsig.1 b/dsig.1 index 3b4223c..70a4ea8 100644 --- a/dsig.1 +++ b/dsig.1 @@ -510,4 +510,4 @@ blocks. .BR catsign (1), .BR keyring (5). .SH AUTHOR -Mark Wooding, +Mark Wooding, diff --git a/ghash.h b/ghash.h index d3a039b..4b8e6a3 100644 --- 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_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) @@ -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) +#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) @@ -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) +#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) @@ -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) +#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); \ diff --git a/hashsum.1 b/hashsum.1 index 0084b04..dfbb2b1 100644 --- a/hashsum.1 +++ b/hashsum.1 @@ -297,4 +297,4 @@ directive in its output. .BR catsign (1), .BR catcrypt (1). .SH "AUTHOR" -Mark Wooding, +Mark Wooding, diff --git a/key-pack.c b/key-pack.c index 0303dbc..fed144a 100644 --- a/key-pack.c +++ b/key-pack.c @@ -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) { - err = KERR_BADTYPE; + err = KERR_WRONGTYPE; goto fail; } diff --git a/key.1 b/key.1 index 785021e..6aa3520 100644 --- 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 -Mark Wooding, +Mark Wooding, diff --git a/keyring.5 b/keyring.5 index b4b5742..684f408 100644 --- 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 -Mark Wooding, +Mark Wooding, diff --git a/mkphrase.1 b/mkphrase.1 index 56141f3..3f93ff2 100644 --- a/mkphrase.1 +++ b/mkphrase.1 @@ -129,4 +129,4 @@ ones. Three letters work fairly well for English. However, they may not work so well for other languages. .SH AUTHOR -Mark Wooding, . +Mark Wooding, . diff --git a/pixie.1 b/pixie.1 index bdffd05..75bf0b7 100644 --- a/pixie.1 +++ b/pixie.1 @@ -327,4 +327,4 @@ noted in the .B auto-pgp documentation. .SH "AUTHOR" -Mark Wooding, +Mark Wooding,