Expose RTCSSLCertificateVerifier from iOS SDK.
Bug: webrtc:11710 Change-Id: I825c6350a71b2ff180520f8643cbd4d6febdc883 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/254821 Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Yura Yaroshevich <yura.yaroshevich@gmail.com> Cr-Commit-Position: refs/heads/main@{#36284}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
df59e53818
commit
19a6e9438b
@ -68,6 +68,8 @@ class PeerConnectionDelegateAdapter : public PeerConnectionObserver {
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
@protocol RTC_OBJC_TYPE
|
||||
(RTCSSLCertificateVerifier);
|
||||
|
||||
@interface RTC_OBJC_TYPE (RTCPeerConnection)
|
||||
()
|
||||
@ -83,11 +85,12 @@ class PeerConnectionDelegateAdapter : public PeerConnectionObserver {
|
||||
/** Initialize an RTCPeerConnection with a configuration, constraints, and
|
||||
* delegate.
|
||||
*/
|
||||
- (nullable instancetype)initWithFactory:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory
|
||||
configuration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration
|
||||
constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints
|
||||
delegate:
|
||||
(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>)delegate;
|
||||
- (nullable instancetype)
|
||||
initWithFactory:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory
|
||||
configuration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration
|
||||
constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints
|
||||
certificateVerifier:(nullable id<RTC_OBJC_TYPE(RTCSSLCertificateVerifier)>)certificateVerifier
|
||||
delegate:(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>)delegate;
|
||||
|
||||
/** Initialize an RTCPeerConnection with a configuration, constraints,
|
||||
* delegate and PeerConnectionDependencies.
|
||||
|
||||
@ -34,6 +34,7 @@
|
||||
#include "api/set_remote_description_observer_interface.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "rtc_base/numerics/safe_conversions.h"
|
||||
#include "sdk/objc/native/api/ssl_certificate_verifier.h"
|
||||
|
||||
NSString *const kRTCPeerConnectionErrorDomain = @"org.webrtc.RTC_OBJC_TYPE(RTCPeerConnection)";
|
||||
int const kRTCPeerConnnectionSessionDescriptionError = -1;
|
||||
@ -336,10 +337,15 @@ void PeerConnectionDelegateAdapter::OnRemoveTrack(
|
||||
- (nullable instancetype)initWithFactory:(RTC_OBJC_TYPE(RTCPeerConnectionFactory) *)factory
|
||||
configuration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration
|
||||
constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints
|
||||
certificateVerifier:
|
||||
(nullable id<RTC_OBJC_TYPE(RTCSSLCertificateVerifier)>)certificateVerifier
|
||||
delegate:(id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>)delegate {
|
||||
NSParameterAssert(factory);
|
||||
std::unique_ptr<webrtc::PeerConnectionDependencies> dependencies =
|
||||
std::make_unique<webrtc::PeerConnectionDependencies>(nullptr);
|
||||
if (certificateVerifier != nil) {
|
||||
dependencies->tls_cert_verifier = webrtc::ObjCToNativeCertificateVerifier(certificateVerifier);
|
||||
}
|
||||
return [self initWithDependencies:factory
|
||||
configuration:configuration
|
||||
constraints:constraints
|
||||
|
||||
@ -29,6 +29,8 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
(RTCVideoDecoderFactory);
|
||||
@protocol RTC_OBJC_TYPE
|
||||
(RTCVideoEncoderFactory);
|
||||
@protocol RTC_OBJC_TYPE
|
||||
(RTCSSLCertificateVerifier);
|
||||
|
||||
RTC_OBJC_EXPORT
|
||||
@interface RTC_OBJC_TYPE (RTCPeerConnectionFactory) : NSObject
|
||||
@ -82,6 +84,13 @@ RTC_OBJC_EXPORT
|
||||
constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints
|
||||
delegate:(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>)delegate;
|
||||
|
||||
- (nullable RTC_OBJC_TYPE(RTCPeerConnection) *)
|
||||
peerConnectionWithConfiguration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration
|
||||
constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints
|
||||
certificateVerifier:
|
||||
(id<RTC_OBJC_TYPE(RTCSSLCertificateVerifier)>)certificateVerifier
|
||||
delegate:(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>)delegate;
|
||||
|
||||
/** Set the options to be used for subsequently created RTCPeerConnections */
|
||||
- (void)setOptions:(nonnull RTC_OBJC_TYPE(RTCPeerConnectionFactoryOptions) *)options;
|
||||
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
#import "helpers/NSString+StdString.h"
|
||||
#include "rtc_base/checks.h"
|
||||
#include "sdk/objc/native/api/network_monitor_factory.h"
|
||||
#include "sdk/objc/native/api/ssl_certificate_verifier.h"
|
||||
#include "system_wrappers/include/field_trial.h"
|
||||
|
||||
#ifndef HAVE_NO_MEDIA
|
||||
@ -272,6 +273,21 @@
|
||||
return [[RTC_OBJC_TYPE(RTCPeerConnection) alloc] initWithFactory:self
|
||||
configuration:configuration
|
||||
constraints:constraints
|
||||
certificateVerifier:nil
|
||||
delegate:delegate];
|
||||
}
|
||||
|
||||
- (nullable RTC_OBJC_TYPE(RTCPeerConnection) *)
|
||||
peerConnectionWithConfiguration:(RTC_OBJC_TYPE(RTCConfiguration) *)configuration
|
||||
constraints:(RTC_OBJC_TYPE(RTCMediaConstraints) *)constraints
|
||||
certificateVerifier:
|
||||
(id<RTC_OBJC_TYPE(RTCSSLCertificateVerifier)>)certificateVerifier
|
||||
delegate:
|
||||
(nullable id<RTC_OBJC_TYPE(RTCPeerConnectionDelegate)>)delegate {
|
||||
return [[RTC_OBJC_TYPE(RTCPeerConnection) alloc] initWithFactory:self
|
||||
configuration:configuration
|
||||
constraints:constraints
|
||||
certificateVerifier:certificateVerifier
|
||||
delegate:delegate];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user