* build-packet.c (do_plaintext), encode.c (encode_sesskey, encode_simple,
authorDavid Shaw <dshaw@jabberwocky.com>
Thu, 31 Oct 2002 15:40:42 +0000 (15:40 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Thu, 31 Oct 2002 15:40:42 +0000 (15:40 +0000)
encode_crypt), sign.c (write_plaintext_packet): Use wipememory() instead
of memset() to wipe sensitive memory as the memset() might be optimized
away.

g10/ChangeLog
g10/build-packet.c
g10/encode.c
g10/sign.c

index 1747227..c1d565d 100644 (file)
@@ -1,3 +1,10 @@
+2002-10-31  David Shaw  <dshaw@jabberwocky.com>
+
+       * build-packet.c (do_plaintext), encode.c (encode_sesskey,
+       encode_simple, encode_crypt), sign.c (write_plaintext_packet): Use
+       wipememory() instead of memset() to wipe sensitive memory as the
+       memset() might be optimized away.
+
 2002-10-30  David Shaw  <dshaw@jabberwocky.com>
 
        * trustdb.c (check_regexp): Modern regexps require REG_EXTENDED.
index da1cbbe..936cc90 100644 (file)
@@ -555,7 +555,7 @@ do_plaintext( IOBUF out, int ctb, PKT_plaintext *pt )
        }
        n += nbytes;
     }
-    memset(buf,0,1000); /* at least burn the buffer */
+    wipememory(buf,1000); /* burn the buffer */
     if( !pt->len )
        iobuf_set_block_mode(out, 0 ); /* write end marker */
     else if( n != pt->len )
index 7991ef6..6727c08 100644 (file)
@@ -98,7 +98,7 @@ encode_sesskey( DEK *dek, DEK **ret_dek, byte *enckey )
     cipher_close( hd );
 
     memcpy( enckey, buf, c->keylen + 1 );
-    memset( buf, 0, sizeof buf ); /* burn key */
+    wipememory( buf, sizeof buf ); /* burn key */
     *ret_dek = c;
 }
 
@@ -350,7 +350,7 @@ encode_simple( const char *filename, int mode, int compat )
                log_error("copying input to output failed: %s\n", g10_errstr(rc) );
                break;
            }
-       memset(copy_buffer, 0, 4096); /* burn buffer */
+       wipememory(copy_buffer, 4096); /* burn buffer */
     }
 
     /* finish the stuff */
@@ -589,7 +589,7 @@ encode_crypt( const char *filename, STRLIST remusr )
                           g10_errstr(rc) );
                break;
            }
-       memset(copy_buffer, 0, 4096); /* burn buffer */
+       wipememory(copy_buffer, 4096); /* burn buffer */
     }
 
     /* finish the stuff */
index b5314cc..2c85f23 100644 (file)
@@ -506,7 +506,7 @@ write_plaintext_packet (IOBUF out, IOBUF inp, const char *fname, int ptmode)
                            g10_errstr(rc));
                 break;
             }
-        memset(copy_buffer, 0, 4096); /* burn buffer */
+        wipememory(copy_buffer,4096); /* burn buffer */
     }
     /* fixme: it seems that we never freed pt/pkt */