Fix openssl ca, to correctly make output file binary when using -spkac
authorRichard Levitte <levitte@openssl.org>
Mon, 23 Apr 2018 08:22:56 +0000 (10:22 +0200)
committerRichard Levitte <levitte@openssl.org>
Mon, 23 Apr 2018 09:09:34 +0000 (11:09 +0200)
On Unix, this doesn't matter, but on other platforms, it may.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6050)

(cherry picked from commit 25642ad29e6a2c15c10ceb5e4f029638f73a879e)

apps/ca.c

index d474a2b69a64fb79ba282f024ad2e09f8c40fc93..eb093d0e0b3cd3dc08868caec13104962f81d26e 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -725,8 +725,12 @@ end_of_options:
 
     /*****************************************************************/
     if (req || gencrl) {
-        /* FIXME: Is it really always text? */
-        Sout = bio_open_default(outfile, 'w', FORMAT_TEXT);
+        if (spkac_file != NULL) {
+            output_der = 1;
+            batch = 1;
+        }
+        Sout = bio_open_default(outfile, 'w',
+                                output_der ? FORMAT_ASN1 : FORMAT_TEXT);
         if (Sout == NULL)
             goto end;
     }
@@ -872,10 +876,6 @@ end_of_options:
                     BIO_printf(bio_err, "Memory allocation failure\n");
                     goto end;
                 }
-                if (outfile) {
-                    output_der = 1;
-                    batch = 1;
-                }
             }
         }
         if (ss_cert_file != NULL) {