* yarrow.c (krb5int_yarrow_stretch): Delare local variable unsigned.
authorEzra Peisach <epeisach@mit.edu>
Wed, 5 Dec 2001 23:16:28 +0000 (23:16 +0000)
committerEzra Peisach <epeisach@mit.edu>
Wed, 5 Dec 2001 23:16:28 +0000 (23:16 +0000)
(krb5int_yarrow_init): Zero cipher context on init.

* yhash.h (HASH_Final): Use a variable other than out (shadow in
yarrow.c)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14047 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/crypto/yarrow/ChangeLog
src/lib/crypto/yarrow/yarrow.c
src/lib/crypto/yarrow/yhash.h

index d5f52f577b414226e6f2d6afaffe95a12044ece1..441e0046677f24f3b1ff7ec55f391d46873b5cbd 100644 (file)
@@ -1,3 +1,11 @@
+2001-12-05  Ezra Peisach  <epeisach@mit.edu>
+
+       * yarrow.c (krb5int_yarrow_stretch): Delare local variable unsigned. 
+       (krb5int_yarrow_init): Zero cipher context on init.
+
+       * yhash.h (HASH_Final): Use a variable other than out (shadow in
+       yarrow.c)
+
 2001-11-21  Sam Hartman  <hartmans@mit.edu>
 
        * yarrow.c (Yarrow_detect_fork): Reseed the number generator including the fork rather than throwing away state.
index b4e5a218e0b658fae1cbdd57ad68fae95ada6ce5..aee91ab68a9ab464d16ee3dceaacbde4fb56e437 100644 (file)
@@ -187,6 +187,8 @@ int krb5int_yarrow_init(Yarrow_CTX* y, const char *filename)
 
     mem_zero(y->K, sizeof(y->K));
 
+    mem_zero(&y->cipher, sizeof(y->cipher));
+
     TRY (krb5int_yarrow_cipher_init(&y->cipher, y->K));
     y->out_left = 0;
     y->out_count = 0;
@@ -757,7 +759,8 @@ int krb5int_yarrow_stretch(const byte* m, size_t size, byte* out, size_t out_siz
     EXCEP_DECL;
     const byte* s_i;
     byte* outp;
-    int left, use;
+    int left;
+    unsigned int use;
     HASH_CTX hash, save;
     byte digest[HASH_DIGEST_SIZE];
   
index 24208a6b5b0769115060cfc79ecd07a07c9840f0..aaa739fe1e2d415767568f98d9dfe86c4c704bd8 100644 (file)
 #define HASH_Update(x, buf, sz) shsUpdate(x, (const void*)buf, sz)
 #define HASH_Final(x, tdigest)  do { \
   int loopvar; \
-  unsigned char *out = (void *)(tdigest); \
+  unsigned char *out2 = (void *)(tdigest); \
   HASH_CTX  *ctx = (x); \
   shsFinal(ctx); \
 for (loopvar=0; loopvar<(sizeof(ctx->digest)/sizeof(ctx->digest[0])); loopvar++) { \
out[loopvar*4] = (ctx->digest[loopvar]>>24)&0xff; \
-  out[loopvar*4+1] = (ctx->digest[loopvar]>>16)&0xff; \
-  out[loopvar*4+2] = (ctx->digest[loopvar]>>8)&0xff; \
-  out[loopvar*4+3] = ctx->digest[loopvar]&0xff; \
 out2[loopvar*4] = (ctx->digest[loopvar]>>24)&0xff; \
+  out2[loopvar*4+1] = (ctx->digest[loopvar]>>16)&0xff; \
+  out2[loopvar*4+2] = (ctx->digest[loopvar]>>8)&0xff; \
+  out2[loopvar*4+3] = ctx->digest[loopvar]&0xff; \
 } \
   } while(0)