OpenPKG CVS Repository
  http://cvs.openpkg.org/
  ____________________________________________________________________________

  Server: cvs.openpkg.org                  Name:   Thomas Lotterer
  Root:   /e/openpkg/cvs                   Email:  [EMAIL PROTECTED]
  Module: openpkg-src openpkg-web          Date:   19-Feb-2003 16:21:01
  Branch: OPENPKG_1_1_SOLID HEAD           Handle: 2003021915205901

  Modified files:
    openpkg-web             news.txt
  Modified files:           (Branch: OPENPKG_1_1_SOLID)
    openpkg-src/openssl     openssl.patch openssl.spec

  Log:
    SA-2003.013-openssl; CAN-2003-0078

  Summary:
    Revision    Changes     Path
    1.6.2.1     +93 -0      openpkg-src/openssl/openssl.patch
    1.29.2.2    +4  -4      openpkg-src/openssl/openssl.spec
    1.3364      +1  -0      openpkg-web/news.txt
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-src/openssl/openssl.patch
  ============================================================================
  $ cvs diff -u -r1.6 -r1.6.2.1 openssl.patch
  --- openpkg-src/openssl/openssl.patch 9 Aug 2002 13:32:25 -0000       1.6
  +++ openpkg-src/openssl/openssl.patch 19 Feb 2003 15:21:00 -0000      1.6.2.1
  @@ -29,3 +29,96 @@
    "nextstep", "cc:-O -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:::",
    "nextstep3.3",      "cc:-O3 -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:::",
    # NCR MP-RAS UNIX ver 02.03.01
  +--- ssl/s3_pkt.c     6 May 2002 10:42:56 -0000       1.37.2.10
  ++++ ssl/s3_pkt.c     18 Feb 2003 16:38:22 -0000
  +@@ -238,6 +238,8 @@
  +     unsigned int mac_size;
  +     int clear=0;
  +     size_t extra;
  ++    int decryption_failed_or_bad_record_mac = 0;
  ++    unsigned char *mac = NULL;
  + 
  +     rr= &(s->s3->rrec);
  +     sess=s->session;
  +@@ -353,8 +355,11 @@
  +                     /* SSLerr() and ssl3_send_alert() have been called */
  +                     goto err;
  + 
  +-            /* otherwise enc_err == -1 */
  +-            goto decryption_failed_or_bad_record_mac;
  ++            /* Otherwise enc_err == -1, which indicates bad padding
  ++             * (rec->length has not been changed in this case).
  ++             * To minimize information leaked via timing, we will perform
  ++             * the MAC computation anyway. */
  ++            decryption_failed_or_bad_record_mac = 1;
  +             }
  + 
  + #ifdef TLS_DEBUG
  +@@ -380,28 +385,46 @@
  +                     SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_PRE_MAC_LENGTH_TOO_LONG);
  +                     goto f_err;
  + #else
  +-                    goto decryption_failed_or_bad_record_mac;
  ++                    decryption_failed_or_bad_record_mac = 1;
  + #endif                      
  +                     }
  +             /* check the MAC for rr->input (it's in mac_size bytes at the tail) */
  +-            if (rr->length < mac_size)
  ++            if (rr->length >= mac_size)
  +                     {
  ++                    rr->length -= mac_size;
  ++                    mac = &rr->data[rr->length];
  ++                    }
  ++            else
  ++                    {
  ++                    /* record (minus padding) is too short to contain a MAC */
  + #if 0 /* OK only for stream ciphers */
  +                     al=SSL_AD_DECODE_ERROR;
  +                     SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT);
  +                     goto f_err;
  + #else
  +-                    goto decryption_failed_or_bad_record_mac;
  ++                    decryption_failed_or_bad_record_mac = 1;
  ++                    rr->length = 0;
  + #endif
  +                     }
  +-            rr->length-=mac_size;
  +             i=s->method->ssl3_enc->mac(s,md,0);
  +-            if (memcmp(md,&(rr->data[rr->length]),mac_size) != 0)
  ++            if (mac == NULL || memcmp(md, mac, mac_size) != 0)
  +                     {
  +-                    goto decryption_failed_or_bad_record_mac;
  ++                    decryption_failed_or_bad_record_mac = 1;
  +                     }
  +             }
  + 
  ++    if (decryption_failed_or_bad_record_mac)
  ++            {
  ++            /* A separate 'decryption_failed' alert was introduced with TLS 1.0,
  ++             * SSL 3.0 only has 'bad_record_mac'.  But unless a decryption
  ++             * failure is directly visible from the ciphertext anyway,
  ++             * we should not reveal which kind of error occured -- this
  ++             * might become visible to an attacker (e.g. via a logfile) */
  ++            al=SSL_AD_BAD_RECORD_MAC;
  ++            
SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC);
  ++            goto f_err;
  ++            }
  ++
  +     /* r->length is now just compressed */
  +     if (s->expand != NULL)
  +             {
  +@@ -443,14 +466,6 @@
  + 
  +     return(1);
  + 
  +-decryption_failed_or_bad_record_mac:
  +-    /* Separate 'decryption_failed' alert was introduced with TLS 1.0,
  +-     * SSL 3.0 only has 'bad_record_mac'.  But unless a decryption
  +-     * failure is directly visible from the ciphertext anyway,
  +-     * we should not reveal which kind of error occured -- this
  +-     * might become visible to an attacker (e.g. via logfile) */
  +-    al=SSL_AD_BAD_RECORD_MAC;
  +-    SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC);
  + f_err:
  +     ssl3_send_alert(s,SSL3_AL_FATAL,al);
  + err:
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-src/openssl/openssl.spec
  ============================================================================
  $ cvs diff -u -r1.29.2.1 -r1.29.2.2 openssl.spec
  --- openpkg-src/openssl/openssl.spec  26 Aug 2002 19:54:27 -0000      1.29.2.1
  +++ openpkg-src/openssl/openssl.spec  19 Feb 2003 15:21:00 -0000      1.29.2.2
  @@ -1,8 +1,8 @@
   ##
   ##  openssl.spec -- OpenPKG RPM Specification
  -##  Copyright (c) 2000-2002 Cable & Wireless Deutschland GmbH
  -##  Copyright (c) 2000-2002 The OpenPKG Project <http://www.openpkg.org/>
  -##  Copyright (c) 2000-2002 Ralf S. Engelschall <[EMAIL PROTECTED]>
  +##  Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
  +##  Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  +##  Copyright (c) 2000-2003 Ralf S. Engelschall <[EMAIL PROTECTED]>
   ##
   ##  Permission to use, copy, modify, and distribute this software for
   ##  any purpose with or without fee is hereby granted, provided that
  @@ -33,7 +33,7 @@
   Group:        Cryptography
   License:      BSD-style
   Version:      0.9.6g
  -Release:      1.1.0
  +Release:      1.1.1
   
   #   list of sources
   Source0:      ftp://ftp.openssl.org/source/openssl-%{version}.tar.gz
  @@ .
  patch -p0 <<'@@ .'
  Index: openpkg-web/news.txt
  ============================================================================
  $ cvs diff -u -r1.3363 -r1.3364 news.txt
  --- openpkg-web/news.txt      19 Feb 2003 14:03:45 -0000      1.3363
  +++ openpkg-web/news.txt      19 Feb 2003 15:20:59 -0000      1.3364
  @@ -1,3 +1,4 @@
  +19-Feb-2003: Upgraded package: P<openssl-0.9.6g-1.1.1>
   19-Feb-2003: Upgraded package: P<openssl-0.9.7a-20030219>
   19-Feb-2003: Upgraded package: P<dhcpd-3.0.1rc9-1.1.2>
   19-Feb-2003: Upgraded package: P<dhcpd-3.0.1rc11-1.2.1>
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to