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:07:46 +0000 (11:07 +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)

apps/ca.c

index 1c053b57025602ecb08a5ac71bfd809fc3397f02..ea774ad557ebfef4db0e0de221d695b8e429ebc0 100644 (file)
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -722,8 +722,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;
     }
@@ -877,10 +881,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) {