Add SSLConfig object to IceServer.
This is a rollforward of https://webrtc-review.googlesource.com/c/src/+/96020, with the addition of setting the old tlsCertPolicy, tlsAlpnProtocols and tlsEllipticCurves in the RTCIceServer initializer, for backwards compatibility. Bug: webrtc:9662 Change-Id: I28706ed4ff5abe3f7f913f105779f0e5412aeac5 Reviewed-on: https://webrtc-review.googlesource.com/98762 Commit-Queue: Diogo Real <diogor@google.com> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Reviewed-by: Qingsi Wang <qingsi@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24696}
This commit is contained in:
@ -11,11 +11,7 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#import "RTCMacros.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, RTCTlsCertPolicy) {
|
||||
RTCTlsCertPolicySecure,
|
||||
RTCTlsCertPolicyInsecureNoCheck
|
||||
};
|
||||
#import "RTCSSLConfig.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@ -32,7 +28,8 @@ RTC_EXPORT
|
||||
@property(nonatomic, readonly, nullable) NSString *credential;
|
||||
|
||||
/**
|
||||
* TLS certificate policy to use if this RTCIceServer object is a TURN server.
|
||||
Deprecated. TODO(diogor, webrtc:9673): Remove from API.
|
||||
TLS certificate policy to use if this RTCIceServer object is a TURN server.
|
||||
*/
|
||||
@property(nonatomic, readonly) RTCTlsCertPolicy tlsCertPolicy;
|
||||
|
||||
@ -43,15 +40,24 @@ RTC_EXPORT
|
||||
*/
|
||||
@property(nonatomic, readonly, nullable) NSString *hostname;
|
||||
|
||||
/** List of protocols to be used in the TLS ALPN extension. */
|
||||
/**
|
||||
Deprecated. TODO(diogor, webrtc:9673): Remove from API.
|
||||
List of protocols to be used in the TLS ALPN extension.
|
||||
This field will be ignored if also set in RTCSSLConfig.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<NSString *> *tlsAlpnProtocols;
|
||||
|
||||
/**
|
||||
Deprecated. TODO(diogor, webrtc:9673): Remove from API.
|
||||
List elliptic curves to be used in the TLS elliptic curves extension.
|
||||
Only curve names supported by OpenSSL should be used (eg. "P-256","X25519").
|
||||
This field will be ignored if also set in RTCSSLConfig.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<NSString *> *tlsEllipticCurves;
|
||||
|
||||
/** SSL configuration options for any SSL/TLS connections to this IceServer. */
|
||||
@property(nonatomic, readonly) RTCSSLConfig *sslConfig;
|
||||
|
||||
- (nonnull instancetype)init NS_UNAVAILABLE;
|
||||
|
||||
/** Convenience initializer for a server with no authentication (e.g. STUN). */
|
||||
@ -106,8 +112,17 @@ RTC_EXPORT
|
||||
tlsCertPolicy:(RTCTlsCertPolicy)tlsCertPolicy
|
||||
hostname:(nullable NSString *)hostname
|
||||
tlsAlpnProtocols:(nullable NSArray<NSString *> *)tlsAlpnProtocols
|
||||
tlsEllipticCurves:(nullable NSArray<NSString *> *)tlsEllipticCurves
|
||||
NS_DESIGNATED_INITIALIZER;
|
||||
tlsEllipticCurves:(nullable NSArray<NSString *> *)tlsEllipticCurves;
|
||||
|
||||
/**
|
||||
* Initialize an RTCIceServer with its associated URLs, optional
|
||||
* username, optional credential, hostname and SSL config.
|
||||
*/
|
||||
- (instancetype)initWithURLStrings:(NSArray<NSString *> *)urlStrings
|
||||
username:(nullable NSString *)username
|
||||
credential:(nullable NSString *)credential
|
||||
hostname:(nullable NSString *)hostname
|
||||
sslConfig:(RTCSSLConfig *)sslConfig NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user