Hello Openssl dev team,

Currently we are using openssl 0.9.8q version. Earlier we have used openssl
0.9.8k.
We have seen change in the return value handling of ssl_verify_cert_chain()
at function ssl3_get_client_certificate().

At openssl 0.9.8k, ssl_verify_cert_chain() is handled like this

 else                  {
i=ssl_verify_cert_chain(s,sc->cert_chain);                 if (i < 0)
                       {                         ret = i;
          goto err;                        }                 else if
(i == 0)                         {
al=ssl_verify_alarm_type(s->verify_result);
                                                      * \*
SSLerr(SSL_F_SSL3_GET_CLIENT_CERTIFICATE,SSL_R_NO_CERTIFICATE_RETURNED);
                        goto f_err;                         }
        }

But at  openssl 0.9.8q, same code is changed as

else

                {

                 i=ssl_verify_cert_chain(s,sk);

                if (i <= 0)

                      {

                      al=ssl_verify_alarm_type(s->verify_result);


SSLerr(SSL_F_SSL3_GET_CLIENT_CERTIFICATE,SSL_R_NO_CERTIFICATE_RETURNED);

                        goto f_err;

                       }

                }

Is there any reason behind this change?

Currently we have registered with our callback functions to perform
verification of certificates. In our code, we return negative values
if CRL fetch//certificate verifitication is in progress. Due to this,
current openssl0.9.8q, is treating the negative values as error and
sending an alert and clearing its session.

Same code worked with openssl0.9.8k because OPENSSL is not treating
negative value as error.

Is there any way we can get out of this situation with openssl0.9.8q?


Thanks & Regards,

Rajeswari.

Reply via email to