Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSL Cipher suites #19

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Sources/ScClient/client.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

}