diff --git a/Sources/ScClient/client.swift b/Sources/ScClient/client.swift index e5d949a..0024aec 100644 --- a/Sources/ScClient/client.swift +++ b/Sources/ScClient/client.swift @@ -196,5 +196,33 @@ public class ScClient : Listener, WebSocketDelegate { public func disableSSLVerification(value : Bool) { socket.disableSSLCertValidation = value } + + /** + Uses the .cer files in your app's bundle + */ + public func useSSLCertificate() { + socket.security = SSLSecurity() + } + + /** + You load either a Data blob of your certificate or you can use a SecKeyRef if you have a public key you want to use. + - Parameters: + - data: Data blob of your certificate. + - usePublicKeys: The usePublicKeys bool is whether to use the certificates for validation or the public keys. + */ + public func loadSSLCertificateFromData(data : Data, usePublicKeys : Bool = false) { + socket.security = SSLSecurity(certs: [SSLCert(data: data)], usePublicKeys: usePublicKeys) + } + + /** + To use an SSL encrypted connection, you need to tell Starscream about the cipher suites your server supports. + If you don't know which cipher suites are supported by your server, you can try pointing SSL Labs at it and checking the results. + - Parameters: + - cipherSuites: list of ciphersuites that will be chosen by client to select encryption algorithm + */ + public func useCipherSuites(cipherSuites : [SSLCipherSuite]) { + socket.enabledSSLCipherSuites = cipherSuites; + } + }