@@ -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
0 commit comments