X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/2af20fa2d3a7a9106c372ad308b1d3ef34d72bdc..80be023065ced106a4078a36371c135a60d2bd6c:/ofb-def.h diff --git a/ofb-def.h b/ofb-def.h index d09e51f..8f21a87 100644 --- a/ofb-def.h +++ b/ofb-def.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: ofb-def.h,v 1.3 2000/06/17 11:48:02 mdw Exp $ + * $Id: ofb-def.h,v 1.7 2004/04/08 01:36:15 mdw Exp $ * * Definitions for output feedback mode * @@ -27,20 +27,6 @@ * MA 02111-1307, USA. */ -/*----- Revision history --------------------------------------------------* - * - * $Log: ofb-def.h,v $ - * Revision 1.3 2000/06/17 11:48:02 mdw - * Use secure arena for memory allocation. Rearrange setiv slightly. - * - * Revision 1.2 1999/12/13 15:34:01 mdw - * Add support for seeding from a generic pseudorandom source. - * - * Revision 1.1 1999/12/10 23:16:40 mdw - * Split mode macros into interface and implementation. - * - */ - #ifndef CATACOMB_OFB_DEF_H #define CATACOMB_OFB_DEF_H @@ -86,7 +72,7 @@ /* --- @pre_ofbgetiv@ --- * \ * \ * Arguments: @const pre_ofbctx *ctx@ = pointer to OFB context block \ - * @void *iv#@ = pointer to output data block \ + * @void *iv@ = pointer to output data block \ * \ * Returns: --- \ * \ @@ -176,7 +162,7 @@ void pre##_ofbinit(pre##_ofbctx *ctx, \ const void *key, size_t sz, \ const void *iv) \ { \ - static octet zero[PRE##_BLKSZ] = { 0 }; \ + static const octet zero[PRE##_BLKSZ] = { 0 }; \ pre##_init(&ctx->ctx, key, sz); \ pre##_ofbsetiv(ctx, iv ? iv : zero); \ } \ @@ -345,6 +331,7 @@ static int grmisc(grand *r, unsigned op, ...) \ grctx *g = (grctx *)r; \ va_list ap; \ int rc = 0; \ + uint32 i; \ octet buf[PRE##_BLKSZ]; \ va_start(ap, op); \ \ @@ -365,12 +352,14 @@ static int grmisc(grand *r, unsigned op, ...) \ break; \ case GRAND_SEEDINT: \ memset(buf, 0, sizeof(buf)); \ - STORE32(buf, va_arg(ap, unsigned)); \ + i = va_arg(ap, unsigned); \ + STORE32(buf, i); \ pre##_ofbsetiv(&g->k, buf); \ break; \ case GRAND_SEEDUINT32: \ memset(buf, 0, sizeof(buf)); \ - STORE32(buf, va_arg(ap, uint32)); \ + i = va_arg(ap, uint32); \ + STORE32(buf, i); \ pre##_ofbsetiv(&g->k, buf); \ break; \ case GRAND_SEEDBLOCK: { \