Fix up OpenSSL/BoringSSL forward declarations.
There is no need to redefine SSL_CTX. base.h/ossl_typ.h defines it
already. Additionally, switch the base.h includes to the
OpenSSL-compatible ossl_typ.h spelling. That just got landed in
https://webrtc-review.googlesource.com/c/104120, so I'm guessing
OpenSSL consumers just didn't notice yet.
While getting the current BoringSSL name mangling scheme working with
WebRTC is a ways off, one of the requirements will almost certainly be
that WebRTC never forward-declare any BoringSSL types itself, instead
leaving it to openssl/base.h (or openssl/ossl_typ.h, the
OpenSSL-compatible alias). This is because we'd need to rename the
struct names themselves where they participate in C++ name mangling.
E.g. std::pair<RSA*, int> would mangle as rsa_st.
Bug: webrtc:5664
Change-Id: Ib9695d4ae4bc07d2bc54c9fdfb8600f44b5ec7bb
Reviewed-on: https://webrtc-review.googlesource.com/c/106675
Commit-Queue: David Benjamin <davidben@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25257}
diff --git a/rtc_base/opensslcertificate.h b/rtc_base/opensslcertificate.h
index 3b49f93..ef416a1 100644
--- a/rtc_base/opensslcertificate.h
+++ b/rtc_base/opensslcertificate.h
@@ -11,7 +11,7 @@
#ifndef RTC_BASE_OPENSSLCERTIFICATE_H_
#define RTC_BASE_OPENSSLCERTIFICATE_H_
-#include <openssl/base.h> // for X509, ssl_ctx_st
+#include <openssl/ossl_typ.h> // for X509, SSL_CTX
#include <stddef.h> // for size_t
#include <stdint.h> // for int64_t
@@ -22,8 +22,6 @@
#include "rtc_base/sslcertificate.h" // for SSLCertificate
#include "rtc_base/sslidentity.h" // for SSLIdentityParams
-typedef struct ssl_ctx_st SSL_CTX;
-
namespace rtc {
class OpenSSLKeyPair;
diff --git a/rtc_base/openssldigest.h b/rtc_base/openssldigest.h
index 1427a94..78d28d7 100644
--- a/rtc_base/openssldigest.h
+++ b/rtc_base/openssldigest.h
@@ -11,7 +11,7 @@
#ifndef RTC_BASE_OPENSSLDIGEST_H_
#define RTC_BASE_OPENSSLDIGEST_H_
-#include <openssl/base.h> // for EVP_MD, EVP_MD_CTX
+#include <openssl/ossl_typ.h> // for EVP_MD, EVP_MD_CTX
#include <string>
#include "rtc_base/messagedigest.h"
diff --git a/rtc_base/opensslidentity.h b/rtc_base/opensslidentity.h
index b72a4c2..d0e87a0 100644
--- a/rtc_base/opensslidentity.h
+++ b/rtc_base/opensslidentity.h
@@ -11,7 +11,7 @@
#ifndef RTC_BASE_OPENSSLIDENTITY_H_
#define RTC_BASE_OPENSSLIDENTITY_H_
-#include <openssl/base.h> // for EVP_PKEY, ssl_ctx_st
+#include <openssl/ossl_typ.h> // for EVP_PKEY, SSL_CTX
#include <ctime> // for time_t
#include <memory> // for unique_ptr
@@ -23,8 +23,6 @@
#include "rtc_base/sslcertificate.h" // for SSLCertChain
#include "rtc_base/sslidentity.h" // for SSLIdentity, KeyParams, SSL...
-typedef struct ssl_ctx_st SSL_CTX;
-
namespace rtc {
// OpenSSLKeyPair encapsulates an OpenSSL EVP_PKEY* keypair object,