From 323f19503630808c3085a80b53e2b23bf934efc3 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Tue, 21 May 2002 08:15:42 +0000
Subject: [PATCH] ASN1 files don't work for the *chain_file(), make them use
 the previous version

---
 lib/ssluse.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/ssluse.c b/lib/ssluse.c
index e1a6b3b5d..7a4d685a5 100644
--- a/lib/ssluse.c
+++ b/lib/ssluse.c
@@ -227,13 +227,25 @@ int cert_stuff(struct connectdata *conn,
 
     switch(file_type) {
     case SSL_FILETYPE_PEM:
-    case SSL_FILETYPE_ASN1:
+      /* SSL_CTX_use_certificate_chain_file() only works on PEM files */
       if (SSL_CTX_use_certificate_chain_file(conn->ssl.ctx,
                                              cert_file) != 1) {
         failf(data, "unable to set certificate file (wrong password?)");
         return 0;
       }
       break;
+
+    case SSL_FILETYPE_ASN1:
+      /* SSL_CTX_use_certificate_file() works with either PEM or ASN1, but
+         we use the case above for PEM so this can only be performed with
+         ASN1 files. */
+      if (SSL_CTX_use_certificate_file(conn->ssl.ctx,
+                                       cert_file,
+                                       file_type) != 1) {
+        failf(data, "unable to set certificate file (wrong password?)");
+        return 0;
+      }
+      break;
     case SSL_FILETYPE_ENGINE:
       failf(data, "file type ENG for certificate not implemented");
       return 0;