Pass phrase reorganisation.
[openssl.git] / apps / ca.c
index 6a27a6de158702fdfb236fbe763792bf80a5844d..272b0e32bc48b8e3189d84aa1b0690c4e8916bf3 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -533,7 +533,7 @@ bad:
                BIO_printf(bio_err,"trying to load CA private key\n");
                goto err;
                }
-               pkey=PEM_read_bio_PrivateKey(in,NULL,PEM_cb,key);
+               pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,key);
                if(key) memset(key,0,strlen(key));
        if (pkey == NULL)
                {
@@ -587,17 +587,23 @@ bad:
                        BIO_printf(bio_err,"there needs to be defined a directory for new certificate to be placed in\n");
                        goto err;
                        }
-#ifdef VMS
-               /* For technical reasons, VMS misbehaves with X_OK */
-               if (access(outdir,R_OK|W_OK) != 0)
-#else
+#ifndef VMS /* outdir is a directory spec, but access() for VMS demands a
+              filename.  In any case, stat(), below, will catch the problem
+              if outdir is not a directory spec, and the fopen() or open()
+              will catch an error if there is no write access.
+
+              Presumably, this problem could also be solved by using the DEC
+              C routines to convert the directory syntax to Unixly, and give
+              that to access().  However, time's too short to do that just
+              now.
+            */
                if (access(outdir,R_OK|W_OK|X_OK) != 0)
-#endif
                        {
                        BIO_printf(bio_err,"I am unable to access the %s directory\n",outdir);
                        perror(outdir);
                        goto err;
                        }
+#endif
 
                if (stat(outdir,&sb) != 0)
                        {