Index: webrtc/api/objc/RTCConfiguration.mm |
diff --git a/webrtc/api/objc/RTCConfiguration.mm b/webrtc/api/objc/RTCConfiguration.mm |
index ec59ca2d53400c4d738b506f0f70a3691e0681e4..2c391187523663b7219db19eb511366a3ddbd636 100644 |
--- a/webrtc/api/objc/RTCConfiguration.mm |
+++ b/webrtc/api/objc/RTCConfiguration.mm |
@@ -10,8 +10,11 @@ |
#import "RTCConfiguration.h" |
+#include "webrtc/base/sslidentity.h" |
+ |
#import "webrtc/api/objc/RTCConfiguration+Private.h" |
#import "webrtc/api/objc/RTCIceServer+Private.h" |
+#import "webrtc/base/objc/RTCLogging.h" |
@implementation RTCConfiguration |
@@ -24,6 +27,7 @@ |
@synthesize iceConnectionReceivingTimeout = _iceConnectionReceivingTimeout; |
@synthesize iceBackupCandidatePairPingInterval = |
_iceBackupCandidatePairPingInterval; |
+@synthesize keyType = _keyType; |
- (instancetype)init { |
if (self = [super init]) { |
@@ -42,29 +46,7 @@ |
_iceConnectionReceivingTimeout = config.ice_connection_receiving_timeout; |
_iceBackupCandidatePairPingInterval = |
config.ice_backup_candidate_pair_ping_interval; |
- } |
- return self; |
-} |
- |
-- (instancetype)initWithIceServers:(NSArray<RTCIceServer *> *)iceServers |
- iceTransportPolicy:(RTCIceTransportPolicy)iceTransportPolicy |
- bundlePolicy:(RTCBundlePolicy)bundlePolicy |
- rtcpMuxPolicy:(RTCRtcpMuxPolicy)rtcpMuxPolicy |
- tcpCandidatePolicy:(RTCTcpCandidatePolicy)tcpCandidatePolicy |
- audioJitterBufferMaxPackets:(int)audioJitterBufferMaxPackets |
- iceConnectionReceivingTimeout:(int)iceConnectionReceivingTimeout |
- iceBackupCandidatePairPingInterval:(int)iceBackupCandidatePairPingInterval { |
- if (self = [self init]) { |
- if (iceServers) { |
- _iceServers = [iceServers copy]; |
- } |
- _iceTransportPolicy = iceTransportPolicy; |
- _bundlePolicy = bundlePolicy; |
- _rtcpMuxPolicy = rtcpMuxPolicy; |
- _tcpCandidatePolicy = tcpCandidatePolicy; |
- _audioJitterBufferMaxPackets = audioJitterBufferMaxPackets; |
- _iceConnectionReceivingTimeout = iceConnectionReceivingTimeout; |
- _iceBackupCandidatePairPingInterval = iceBackupCandidatePairPingInterval; |
+ _keyType = RTCEncryptionKeyTypeECDSA; |
} |
return self; |
} |
@@ -103,40 +85,18 @@ |
_iceConnectionReceivingTimeout; |
nativeConfig.ice_backup_candidate_pair_ping_interval = |
_iceBackupCandidatePairPingInterval; |
- |
- return nativeConfig; |
-} |
- |
-- (instancetype)initWithNativeConfiguration: |
- (webrtc::PeerConnectionInterface::RTCConfiguration)nativeConfig { |
- NSMutableArray *iceServers = |
- [NSMutableArray arrayWithCapacity:nativeConfig.servers.size()]; |
- for (auto const &server : nativeConfig.servers) { |
- RTCIceServer *iceServer = |
- [[RTCIceServer alloc] initWithNativeServer:server]; |
- [iceServers addObject:iceServer]; |
- } |
- |
- if (self = [self init]) { |
- if (iceServers) { |
- _iceServers = [iceServers copy]; |
+ if (_keyType == RTCEncryptionKeyTypeECDSA) { |
+ rtc::scoped_ptr<rtc::SSLIdentity> identity( |
+ rtc::SSLIdentity::Generate(webrtc::kIdentityName, rtc::KT_ECDSA)); |
+ if (identity) { |
+ nativeConfig.certificates.push_back( |
+ rtc::RTCCertificate::Create(std::move(identity))); |
+ } else { |
+ RTCLogWarning(@"Failed to generate ECDSA identity. RSA will be used."); |
} |
- _iceTransportPolicy = |
- [[self class] transportPolicyForTransportsType:nativeConfig.type]; |
- _bundlePolicy = |
- [[self class] bundlePolicyForNativePolicy:nativeConfig.bundle_policy]; |
- _rtcpMuxPolicy = [[self class] rtcpMuxPolicyForNativePolicy: |
- nativeConfig.rtcp_mux_policy]; |
- _tcpCandidatePolicy = [[self class] tcpCandidatePolicyForNativePolicy: |
- nativeConfig.tcp_candidate_policy]; |
- _audioJitterBufferMaxPackets = nativeConfig.audio_jitter_buffer_max_packets; |
- _iceConnectionReceivingTimeout = |
- nativeConfig.ice_connection_receiving_timeout; |
- _iceBackupCandidatePairPingInterval = |
- nativeConfig.ice_backup_candidate_pair_ping_interval; |
} |
- return self; |
+ return nativeConfig; |
} |
+ (webrtc::PeerConnectionInterface::IceTransportsType) |