Hi,

is it recommended to apply the below patch to 0.9.6i as well?  We're
still releasing both versions, 0.9.6i and 0.9.7a in the Cygwin net distro.

Corinna

On Mon, Mar 17, 2003 at 08:47:01AM +0000, Ben Laurie wrote:
> I expect a release to follow shortly.
> 
> -- 
> http://www.apache-ssl.org/ben.html       http://www.thebunker.net/
> 
> "There is no limit to what a man can do or how far he can go if he
> doesn't mind who gets the credit." - Robert Woodruff

> OpenSSL v0.9.7a and 0.9.6i vulnerability
> ----------------------------------------
> [...]
> We strongly advise upgrading OpenSSL in all cases, as a precaution.

> Index: crypto/rsa/rsa_eay.c
> ===================================================================
> RCS file: /e/openssl/cvs/openssl/crypto/rsa/rsa_eay.c,v
> retrieving revision 1.28.2.3
> diff -u -r1.28.2.3 rsa_eay.c
> --- crypto/rsa/rsa_eay.c      30 Jan 2003 17:37:46 -0000      1.28.2.3
> +++ crypto/rsa/rsa_eay.c      16 Mar 2003 10:34:13 -0000
> @@ -195,6 +195,25 @@
>       return(r);
>       }
>  
> +static int rsa_eay_blinding(RSA *rsa, BN_CTX *ctx)
> +     {
> +     int ret = 1;
> +     CRYPTO_w_lock(CRYPTO_LOCK_RSA);
> +     /* Check again inside the lock - the macro's check is racey */
> +     if(rsa->blinding == NULL)
> +             ret = RSA_blinding_on(rsa, ctx);
> +     CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
> +     return ret;
> +     }
> +
> +#define BLINDING_HELPER(rsa, ctx, err_instr) \
> +     do { \
> +             if(((rsa)->flags & RSA_FLAG_BLINDING) && \
> +                             ((rsa)->blinding == NULL) && \
> +                             !rsa_eay_blinding(rsa, ctx)) \
> +                     err_instr \
> +     } while(0)
> +
>  /* signing */
>  static int RSA_eay_private_encrypt(int flen, const unsigned char *from,
>            unsigned char *to, RSA *rsa, int padding)
> @@ -239,8 +258,8 @@
>               goto err;
>               }
>  
> -     if ((rsa->flags & RSA_FLAG_BLINDING) && (rsa->blinding == NULL))
> -             RSA_blinding_on(rsa,ctx);
> +     BLINDING_HELPER(rsa, ctx, goto err;);
> +
>       if (rsa->flags & RSA_FLAG_BLINDING)
>               if (!BN_BLINDING_convert(&f,rsa->blinding,ctx)) goto err;
>  
> @@ -318,8 +337,8 @@
>               goto err;
>               }
>  
> -     if ((rsa->flags & RSA_FLAG_BLINDING) && (rsa->blinding == NULL))
> -             RSA_blinding_on(rsa,ctx);
> +     BLINDING_HELPER(rsa, ctx, goto err;);
> +
>       if (rsa->flags & RSA_FLAG_BLINDING)
>               if (!BN_BLINDING_convert(&f,rsa->blinding,ctx)) goto err;
>  
> Index: crypto/rsa/rsa_lib.c
> ===================================================================
> RCS file: /e/openssl/cvs/openssl/crypto/rsa/rsa_lib.c,v
> retrieving revision 1.30.2.2
> diff -u -r1.30.2.2 rsa_lib.c
> --- crypto/rsa/rsa_lib.c      30 Jan 2003 17:37:46 -0000      1.30.2.2
> +++ crypto/rsa/rsa_lib.c      16 Mar 2003 10:34:13 -0000
> @@ -72,7 +72,13 @@
>  
>  RSA *RSA_new(void)
>       {
> -     return(RSA_new_method(NULL));
> +     RSA *r=RSA_new_method(NULL);
> +
> +#ifndef OPENSSL_NO_FORCE_RSA_BLINDING
> +     r->flags|=RSA_FLAG_BLINDING;
> +#endif
> +
> +     return r;
>       }
>  
>  void RSA_set_default_method(const RSA_METHOD *meth)


-- 
Corinna Vinschen
Cygwin Developer
Red Hat, Inc.
mailto:[EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to