Undefine OPENSSL_NO_DEPRECATED inside openssl application code if we are
[openssl.git] / apps / x509.c
index a56f037b8993696ab75b3ae8e17c13018bedbe5a..9709628df35ac0c85f588ce5255bb0d0a157f8cd 100644 (file)
@@ -122,7 +122,7 @@ static char *x509_usage[]={
 " -CAkey arg      - set the CA key, must be PEM format\n",
 "                   missing, it is assumed to be in the CA file.\n",
 " -CAcreateserial - create serial number file if it does not exist\n",
-" -CAserial       - serial file\n",
+" -CAserial arg   - serial file\n",
 " -set_serial     - serial number to use\n",
 " -text           - print the certificate in text form\n",
 " -C              - print out C code forms\n",
@@ -191,6 +191,9 @@ int MAIN(int argc, char **argv)
 
        if (bio_err == NULL)
                bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
+
+       if (!load_config(bio_err, NULL))
+               goto end;
        STDout=BIO_new_fp(stdout,BIO_NOCLOSE);
 #ifdef OPENSSL_SYS_VMS
        {
@@ -242,7 +245,7 @@ int MAIN(int argc, char **argv)
                else if (strcmp(*argv,"-CAkeyform") == 0)
                        {
                        if (--argc < 1) goto bad;
-                       CAformat=str2fmt(*(++argv));
+                       CAkeyformat=str2fmt(*(++argv));
                        }
                else if (strcmp(*argv,"-days") == 0)
                        {
@@ -476,7 +479,7 @@ bad:
 
        if (extfile)
                {
-               long errorline;
+               long errorline = -1;
                X509V3_CTX ctx2;
                extconf = NCONF_new(NULL);
                if (!NCONF_load(extconf, extfile,&errorline))
@@ -767,10 +770,11 @@ bad:
                                int y,z;
 
                                X509_NAME_oneline(X509_get_subject_name(x),
-                                       buf,256);
+                                       buf,sizeof buf);
                                BIO_printf(STDout,"/* subject:%s */\n",buf);
                                m=X509_NAME_oneline(
-                                       X509_get_issuer_name(x),buf,256);
+                                       X509_get_issuer_name(x),buf,
+                                       sizeof buf);
                                BIO_printf(STDout,"/* issuer :%s */\n",buf);
 
                                z=i2d_X509(x,NULL);
@@ -858,8 +862,8 @@ bad:
                                if (Upkey == NULL)
                                        {
                                        Upkey=load_key(bio_err,
-                                               keyfile,keyformat, passin, e,
-                                               "Private key");
+                                               keyfile, keyformat, 0,
+                                               passin, e, "Private key");
                                        if (Upkey == NULL) goto end;
                                        }
 #ifndef OPENSSL_NO_DSA
@@ -867,7 +871,7 @@ bad:
                                        digest=EVP_dss1();
 #endif
 #ifndef OPENSSL_NO_ECDSA
-                               if (Upkey->type == EVP_PKEY_ECDSA)
+                               if (Upkey->type == EVP_PKEY_EC)
                                        digest=EVP_ecdsa();
 #endif
 
@@ -881,8 +885,9 @@ bad:
                                if (CAkeyfile != NULL)
                                        {
                                        CApkey=load_key(bio_err,
-                                               CAkeyfile,CAkeyformat, passin,
-                                               e, "CA Private Key");
+                                               CAkeyfile, CAkeyformat,
+                                               0, passin, e,
+                                               "CA Private Key");
                                        if (CApkey == NULL) goto end;
                                        }
 #ifndef OPENSSL_NO_DSA
@@ -890,7 +895,7 @@ bad:
                                        digest=EVP_dss1();
 #endif
 #ifndef OPENSSL_NO_ECDSA
-                               if (CApkey->type == EVP_PKEY_ECDSA)
+                               if (CApkey->type == EVP_PKEY_EC)
                                        digest = EVP_ecdsa();
 #endif
                                
@@ -913,17 +918,21 @@ bad:
                                else
                                        {
                                        pk=load_key(bio_err,
-                                               keyfile,FORMAT_PEM, passin, e,
-                                               "request key");
+                                               keyfile, FORMAT_PEM, 0,
+                                               passin, e, "request key");
                                        if (pk == NULL) goto end;
                                        }
 
                                BIO_printf(bio_err,"Generating certificate request\n");
 
+#ifndef OPENSSL_NO_DSA
                                if (pk->type == EVP_PKEY_DSA)
                                        digest=EVP_dss1();
-                               else if (pk->type == EVP_PKEY_ECDSA)
+#endif
+#ifndef OPENSSL_NO_ECDSA
+                               if (pk->type == EVP_PKEY_EC)
                                        digest=EVP_ecdsa();
+#endif
 
                                rq=X509_to_X509_REQ(x,pk,digest);
                                EVP_PKEY_free(pk);
@@ -1020,7 +1029,7 @@ end:
        sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free);
        if (passin) OPENSSL_free(passin);
        apps_shutdown();
-       EXIT(ret);
+       OPENSSL_EXIT(ret);
        }
 
 static ASN1_INTEGER *load_serial(char *CAfile, char *serialfile, int create)
@@ -1078,7 +1087,7 @@ static ASN1_INTEGER *load_serial(char *CAfile, char *serialfile, int create)
                }
        else 
                {
-               if (!a2i_ASN1_INTEGER(io,bs,buf2,1024))
+               if (!a2i_ASN1_INTEGER(io,bs,buf2,sizeof buf2))
                        {
                        BIO_printf(bio_err,"unable to load serial number from %s\n",buf);
                        ERR_print_errors(bio_err);