Remove some dead code from SSL_CTX_use_certificate_chain_file

SSL_CTX_use_certificate_chain_file has some extra logic where, if
SSL_CTX_use_certificate succeeds but leaves an error in the error queue,
it fails anyway.

The comment claims it's because, on cert/key mismatch, it succeeds and
leaves an error. When the function was added in upstream's
b3ca645f479b1f0bcfa1d1a65c955e8b7ff33de6, this appears to have been
true.

However, years later upstream's 6049399bafac74bd809ffac2108e8d5d284cd720
added an ERR_clear_error and made SSL_CTX_use_certificate behave more
consistently. Now the behavior is that installing a certificate silently
clears any pre-existing mismatched keys, so this case no longer exists.
The recently-added tests also demonstrate this behavior.

Change-Id: I4c7de44046f10bc653f8f1fd86aff0d6956b2b1a
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/79009
Auto-Submit: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/ssl/ssl_file.cc b/ssl/ssl_file.cc
index 0b55a9d..1fe01ab 100644
--- a/ssl/ssl_file.cc
+++ b/ssl/ssl_file.cc
@@ -384,8 +384,6 @@
   int ret = 0;
   X509 *x = NULL;
 
-  ERR_clear_error();  // clear error stack for SSL_CTX_use_certificate()
-
   in = BIO_new(BIO_s_file());
   if (in == NULL) {
     OPENSSL_PUT_ERROR(SSL, ERR_R_BUF_LIB);
@@ -405,11 +403,6 @@
   }
 
   ret = SSL_CTX_use_certificate(ctx, x);
-
-  if (ERR_peek_error() != 0) {
-    ret = 0;  // Key/certificate mismatch doesn't imply ret==0 ...
-  }
-
   if (ret) {
     // If we could set up our certificate, now proceed to the CA
     // certificates.