Non-copying interface to BIO pairs.
[openssl.git] / ssl / ssl_lib.c
index 0b30ccf9183860d17d367c832bbfbd99d34137cb..e192fc4cac3a2f29d503f30d23bc7a8d1f264f8e 100644 (file)
@@ -575,6 +575,11 @@ int SSL_check_private_key(SSL *ssl)
                SSLerr(SSL_F_SSL_CHECK_PRIVATE_KEY,ERR_R_PASSED_NULL_PARAMETER);
                return(0);
                }
+       if (ssl->cert == NULL)
+               {
+                SSLerr(SSL_F_SSL_CHECK_PRIVATE_KEY,SSL_R_NO_CERTIFICATE_ASSIGNED);
+               return 0;
+               }
        if (ssl->cert->key->x509 == NULL)
                {
                SSLerr(SSL_F_SSL_CHECK_PRIVATE_KEY,SSL_R_NO_CERTIFICATE_ASSIGNED);
@@ -1137,8 +1142,13 @@ void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx,void *u)
 
 void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx,int (*cb)(),char *arg)
        {
+       /* now
+        *     int (*cb)(X509_STORE_CTX *),
+        * but should be
+        *     int (*cb)(X509_STORE_CTX *, void *arg)
+        */
        ctx->app_verify_callback=cb;
-       ctx->app_verify_arg=arg;
+       ctx->app_verify_arg=arg; /* never used */
        }
 
 void SSL_CTX_set_verify(SSL_CTX *ctx,int mode,int (*cb)(int, X509_STORE_CTX *))