* compress.c (init_uncompress): Use a 15 bit window size so that
authorWerner Koch <wk@gnupg.org>
Mon, 10 Mar 2003 09:59:33 +0000 (09:59 +0000)
committerWerner Koch <wk@gnupg.org>
Mon, 10 Mar 2003 09:59:33 +0000 (09:59 +0000)
the output of implementations which don't run for PGP 2
compatibility won't get garbled.

g10/ChangeLog
g10/compress.c

index 4b6ea0c..f27f873 100644 (file)
@@ -1,3 +1,9 @@
+2003-03-10  Werner Koch  <wk@gnupg.org>
+
+       * compress.c (init_uncompress): Use a 15 bit window size so that
+       the output of implementations which don't run for PGP 2
+       compatibility won't get garbled.
+
 2003-03-04  David Shaw  <dshaw@jabberwocky.com>
 
        * trustdb.c (validate_keys): Mask the ownertrust when building the
index b11f148..8d9327c 100644 (file)
@@ -125,8 +125,13 @@ init_uncompress( compress_filter_context_t *zfx, z_stream *zs )
      * PGP uses a windowsize of 13 bits. Using a negative value for
      * it forces zlib not to expect a zlib header.  This is a
      * undocumented feature Peter Gutmann told me about.
+     *    
+     * We must use 15 bits for the inflator because CryptoEx uses 15
+     * bits thus the output would get scrambled w/o error indication
+     * if we would use 13 bits.  For the uncompressing this does not
+     * matter at all.
      */
-    if( (rc = zfx->algo == 1? inflateInit2( zs, -13)
+    if( (rc = zfx->algo == 1? inflateInit2( zs, -15)
                            : inflateInit( zs )) != Z_OK ) {
        log_fatal("zlib problem: %s\n", zs->msg? zs->msg :
                               rc == Z_MEM_ERROR ? "out of core" :