mturk       2005/06/11 11:24:17

  Modified:    jni/native/src sslutils.c
  Log:
  Temporary enable verification if client CA was not found.
  
  Revision  Changes    Path
  1.25      +16 -19    jakarta-tomcat-connectors/jni/native/src/sslutils.c
  
  Index: sslutils.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/sslutils.c,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- sslutils.c        11 Jun 2005 07:02:15 -0000      1.24
  +++ sslutils.c        11 Jun 2005 18:24:17 -0000      1.25
  @@ -464,7 +464,7 @@
       return n;
   }
   
  -static int SSL_X509_STORE_lookup(X509_STORE *store, int yype,
  +static int ssl_X509_STORE_lookup(X509_STORE *store, int yype,
                                    X509_NAME *name, X509_OBJECT *obj)
   {
       X509_STORE_CTX ctx;
  @@ -476,7 +476,7 @@
       return rc;
   }
   
  -int SSL_callback_SSL_verify_CRL(int ok, X509_STORE_CTX *ctx, tcn_ssl_conn_t 
*con)
  +static int ssl_verify_CRL(int ok, X509_STORE_CTX *ctx, tcn_ssl_conn_t *con)
   {
       X509_OBJECT obj;
       X509_NAME *subject, *issuer;
  @@ -486,14 +486,6 @@
       int i, n, rc;
   
       /*
  -     * Unless a revocation store for CRLs was created we
  -     * cannot do any CRL-based verification, of course.
  -     */
  -    if (!con->ctx->crl) {
  -        return ok;
  -    }
  -
  -    /*
        * Determine certificate ingredients in advance
        */
       cert    = X509_STORE_CTX_get_current_cert(ctx);
  @@ -536,7 +528,7 @@
        * the current certificate in order to verify it's integrity.
        */
       memset((char *)&obj, 0, sizeof(obj));
  -    rc = SSL_X509_STORE_lookup(con->ctx->crl,
  +    rc = ssl_X509_STORE_lookup(con->ctx->crl,
                                  X509_LU_CRL, subject, &obj);
       crl = obj.data.crl;
   
  @@ -590,7 +582,7 @@
        * the current certificate in order to check for revocation.
        */
       memset((char *)&obj, 0, sizeof(obj));
  -    rc = SSL_X509_STORE_lookup(con->ctx->crl,
  +    rc = ssl_X509_STORE_lookup(con->ctx->crl,
                                  X509_LU_CRL, issuer, &obj);
   
       crl = obj.data.crl;
  @@ -641,15 +633,17 @@
           return 1;
   
       if (SSL_VERIFY_ERROR_IS_OPTIONAL(errnum) &&
  -        (verify == SSL_CVERIFY_OPTIONAL_NO_CA))
  -        ok = TRUE;
  -
  +        (verify == SSL_CVERIFY_OPTIONAL_NO_CA)) {
  +        ok = 1;
  +        SSL_set_verify_result(ssl, X509_V_OK);
  +    }
       /*
        * Additionally perform CRL-based revocation checks
        */
  -    if (ok) {
  -        if (!(ok = SSL_callback_SSL_verify_CRL(ok, ctx, con))) {
  +    if (ok && con->ctx->crl) {
  +        if (!(ok = ssl_verify_CRL(ok, ctx, con))) {
               errnum = X509_STORE_CTX_get_error(ctx);
  +            /* TODO: Log something */
           }
       }
       /*
  @@ -670,7 +664,10 @@
            */
           ok = 0;
       }
  -
  +#if 1
  +    else if (!ok)
  +        ok = 1;
  +#endif
       return ok;
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to