| Index: rtc_base/opensslidentity.h
|
| diff --git a/rtc_base/opensslidentity.h b/rtc_base/opensslidentity.h
|
| index e4a790e48e89c49cebefa68781f114c07fdf333b..a294d9d144558243d6ef2988d0e6f6d902a8026d 100644
|
| --- a/rtc_base/opensslidentity.h
|
| +++ b/rtc_base/opensslidentity.h
|
| @@ -16,6 +16,7 @@
|
|
|
| #include <memory>
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "rtc_base/checks.h"
|
| #include "rtc_base/constructormagic.h"
|
| @@ -36,8 +37,7 @@ class OpenSSLKeyPair {
|
| static OpenSSLKeyPair* Generate(const KeyParams& key_params);
|
| // Constructs a key pair from the private key PEM string. This must not result
|
| // in missing public key parameters. Returns null on error.
|
| - static OpenSSLKeyPair* FromPrivateKeyPEMString(
|
| - const std::string& pem_string);
|
| + static OpenSSLKeyPair* FromPrivateKeyPEMString(const std::string& pem_string);
|
|
|
| virtual ~OpenSSLKeyPair();
|
|
|
| @@ -62,9 +62,10 @@ class OpenSSLKeyPair {
|
| class OpenSSLCertificate : public SSLCertificate {
|
| public:
|
| // Caller retains ownership of the X509 object.
|
| - explicit OpenSSLCertificate(X509* x509) : x509_(x509) {
|
| - AddReference();
|
| - }
|
| + explicit OpenSSLCertificate(X509* x509);
|
| +
|
| + // Caller retains owership of STACK_OF(X509).
|
| + explicit OpenSSLCertificate(STACK_OF(X509) * chain);
|
|
|
| static OpenSSLCertificate* Generate(OpenSSLKeyPair* key_pair,
|
| const SSLIdentityParams& params);
|
| @@ -75,6 +76,7 @@ class OpenSSLCertificate : public SSLCertificate {
|
| OpenSSLCertificate* GetReference() const override;
|
|
|
| X509* x509() const { return x509_; }
|
| + X509* GetX509Reference() const;
|
|
|
| std::string ToPEMString() const override;
|
| void ToDER(Buffer* der_buffer) const override;
|
| @@ -100,9 +102,11 @@ class OpenSSLCertificate : public SSLCertificate {
|
| int64_t CertificateExpirationTime() const override;
|
|
|
| private:
|
| - void AddReference() const;
|
| + void AddReference(X509* x509) const;
|
|
|
| X509* x509_;
|
| + // Non-leaf certificate chain.
|
| + std::vector<SSLCertificate*> cert_chain_;
|
|
|
| RTC_DISALLOW_COPY_AND_ASSIGN(OpenSSLCertificate);
|
| };
|
| @@ -141,7 +145,6 @@ class OpenSSLIdentity : public SSLIdentity {
|
| RTC_DISALLOW_COPY_AND_ASSIGN(OpenSSLIdentity);
|
| };
|
|
|
| -
|
| } // namespace rtc
|
|
|
| #endif // RTC_BASE_OPENSSLIDENTITY_H_
|
|
|