Skip to content

Commit b33e73f

Browse files
committed
bump websocket
1 parent 549df19 commit b33e73f

File tree

4 files changed

+249
-202
lines changed

4 files changed

+249
-202
lines changed

Source/SSLSecurity.swift

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public class SSLSecurity : NSObject {
5454
public var validatedDN = true //should the domain name be validated?
5555

5656
var isReady = false //is the key processing done?
57-
var certificates: [NSData]? //the certificates
58-
@nonobjc var pubKeys: [SecKey]? //the public keys
57+
var certificates: [Data]? //the certificates
58+
var pubKeys: [SecKey]? //the public keys
5959
var usePublicKeys = false //use public keys or certificate validation?
6060

6161
/**
@@ -116,7 +116,7 @@ public class SSLSecurity : NSObject {
116116
}
117117
return certificates
118118
}
119-
self.certificates = certificates as [NSData]
119+
self.certificates = certificates
120120
self.isReady = true
121121
}
122122
}
@@ -132,7 +132,7 @@ public class SSLSecurity : NSObject {
132132
public func isValid(_ trust: SecTrust, domain: String?) -> Bool {
133133

134134
var tries = 0
135-
while(!self.isReady) {
135+
while !self.isReady {
136136
usleep(1000)
137137
tries += 1
138138
if tries > 5 {
@@ -141,37 +141,36 @@ public class SSLSecurity : NSObject {
141141
}
142142
var policy: SecPolicy
143143
if self.validatedDN {
144-
policy = SecPolicyCreateSSL(true, domain as CFString?)
144+
policy = SecPolicyCreateSSL(true, domain as NSString?)
145145
} else {
146146
policy = SecPolicyCreateBasicX509()
147147
}
148148
SecTrustSetPolicies(trust,policy)
149149
if self.usePublicKeys {
150150
if let keys = self.pubKeys {
151-
let serverPubKeys = publicKeyChainForTrust(trust: trust)
152-
for serverKey in serverPubKeys {
153-
for key in keys {
154-
if CFEqual(serverKey, key) {
151+
let serverPubKeys = publicKeyChain(trust)
152+
for serverKey in serverPubKeys as [AnyObject] {
153+
for key in keys as [AnyObject] {
154+
if serverKey.isEqual(key) {
155155
return true
156156
}
157157
}
158158
}
159159
}
160160
} else if let certs = self.certificates {
161-
let serverCerts = certificateChainForTrust(trust)
161+
let serverCerts = certificateChain(trust)
162162
var collect = [SecCertificate]()
163163
for cert in certs {
164-
collect.append(SecCertificateCreateWithData(nil,cert)!)
164+
collect.append(SecCertificateCreateWithData(nil,cert as CFData)!)
165165
}
166-
SecTrustSetAnchorCertificates(trust,collect as CFArray)
167-
var result = SecTrustResultType(rawValue: 0)!
166+
SecTrustSetAnchorCertificates(trust,collect as NSArray)
167+
var result: SecTrustResultType = .unspecified
168168
SecTrustEvaluate(trust,&result)
169-
let r = Int(result.rawValue)
170-
if r == Int(SecTrustResultType.unspecified.rawValue) || r == Int(SecTrustResultType.proceed.rawValue) {
169+
if result == .unspecified || result == .proceed {
171170
var trustedCount = 0
172171
for serverCert in serverCerts {
173172
for cert in certs {
174-
if cert as Data == serverCert {
173+
if cert == serverCert {
175174
trustedCount += 1
176175
break
177176
}
@@ -195,7 +194,7 @@ public class SSLSecurity : NSObject {
195194
func extractPublicKey(_ data: Data) -> SecKey? {
196195
guard let cert = SecCertificateCreateWithData(nil, data as CFData) else { return nil }
197196

198-
return extractPublicKeyFromCert(cert, policy: SecPolicyCreateBasicX509())
197+
return extractPublicKey(cert, policy: SecPolicyCreateBasicX509())
199198
}
200199

201200
/**
@@ -205,13 +204,12 @@ public class SSLSecurity : NSObject {
205204

206205
- returns: a public key
207206
*/
208-
func extractPublicKeyFromCert(_ cert: SecCertificate, policy: SecPolicy) -> SecKey? {
207+
func extractPublicKey(_ cert: SecCertificate, policy: SecPolicy) -> SecKey? {
209208
var possibleTrust: SecTrust?
210209
SecTrustCreateWithCertificates(cert, policy, &possibleTrust)
211210

212211
guard let trust = possibleTrust else { return nil }
213-
214-
var result = SecTrustResultType(rawValue: 0)!
212+
var result: SecTrustResultType = .unspecified
215213
SecTrustEvaluate(trust, &result)
216214
return SecTrustCopyPublicKey(trust)
217215
}
@@ -223,7 +221,7 @@ public class SSLSecurity : NSObject {
223221

224222
- returns: the certificate chain for the trust
225223
*/
226-
func certificateChainForTrust(_ trust: SecTrust) -> [Data] {
224+
func certificateChain(_ trust: SecTrust) -> [Data] {
227225
let certificates = (0..<SecTrustGetCertificateCount(trust)).reduce([Data]()) { (certificates: [Data], index: Int) -> [Data] in
228226
var certificates = certificates
229227
let cert = SecTrustGetCertificateAtIndex(trust, index)
@@ -241,12 +239,12 @@ public class SSLSecurity : NSObject {
241239

242240
- returns: the public keys from the certifcate chain for the trust
243241
*/
244-
@nonobjc func publicKeyChainForTrust(trust: SecTrust) -> [SecKey] {
242+
func publicKeyChain(_ trust: SecTrust) -> [SecKey] {
245243
let policy = SecPolicyCreateBasicX509()
246244
let keys = (0..<SecTrustGetCertificateCount(trust)).reduce([SecKey]()) { (keys: [SecKey], index: Int) -> [SecKey] in
247245
var keys = keys
248246
let cert = SecTrustGetCertificateAtIndex(trust, index)
249-
if let key = extractPublicKeyFromCert(cert!, policy: policy) {
247+
if let key = extractPublicKey(cert!, policy: policy) {
250248
keys.append(key)
251249
}
252250

Source/SocketEngine.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
243243
}
244244

245245
private func createWebsocketAndConnect() {
246-
ws = WebSocket(url: urlWebSocketWithSid as NSURL)
246+
ws = WebSocket(url: urlWebSocketWithSid as URL)
247247

248248
if cookies != nil {
249249
let headers = HTTPCookie.requestHeaderFields(with: cookies!)
@@ -261,7 +261,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
261261
ws?.callbackQueue = handleQueue
262262
ws?.voipEnabled = voipEnabled
263263
ws?.delegate = self
264-
ws?.selfSignedSSL = selfSigned
264+
ws?.disableSSLCertValidation = selfSigned
265265
ws?.security = security
266266

267267
ws?.connect()
@@ -337,7 +337,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
337337
guard let ws = self.ws else { return }
338338

339339
for msg in postWait {
340-
ws.writeString(msg)
340+
ws.write(string: msg)
341341
}
342342

343343
postWait.removeAll(keepingCapacity: false)
@@ -515,7 +515,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
515515
}
516516

517517
// Delegate methods
518-
public func websocketDidConnect(_ socket: WebSocket) {
518+
public func websocketDidConnect(socket: WebSocket) {
519519
if !forceWebsockets {
520520
probing = true
521521
probeWebSocket()
@@ -526,7 +526,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
526526
}
527527
}
528528

529-
public func websocketDidDisconnect(_ socket: WebSocket, error: NSError?) {
529+
public func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
530530
probing = false
531531

532532
if closed {

Source/SocketEngineWebsocket.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,22 @@ extension SocketEngineWebsocket {
4141
/// Send message on WebSockets
4242
/// Only call on emitQueue
4343
public func sendWebSocketMessage(_ str: String, withType type: SocketEnginePacketType, withData datas: [Data]) {
44-
DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: "SocketEngine", args: str, type.rawValue)
45-
46-
ws?.writeString("\(type.rawValue)\(str)")
47-
48-
for data in datas {
49-
if case let .left(bin) = createBinaryDataForSend(using: data) {
50-
ws?.writeData(bin)
51-
}
44+
DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: "SocketEngine", args: str, type.rawValue)
45+
46+
ws?.write(string: "\(type.rawValue)\(str)")
47+
48+
for data in datas {
49+
if case let .left(bin) = createBinaryDataForSend(using: data) {
50+
ws?.write(data: bin)
5251
}
52+
}
5353
}
5454

55-
public func websocketDidReceiveMessage(_ socket: WebSocket, text: String) {
55+
public func websocketDidReceiveMessage(socket: WebSocket, text: String) {
5656
parseEngineMessage(text, fromPolling: false)
5757
}
5858

59-
public func websocketDidReceiveData(_ socket: WebSocket, data: Data) {
59+
public func websocketDidReceiveData(socket: WebSocket, data: Data) {
6060
parseEngineData(data)
6161
}
6262
}

0 commit comments

Comments
 (0)