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

Add SSL Pinning NSURLSession #43

Open
gfontenot opened this issue Nov 29, 2015 · 4 comments
Open

Add SSL Pinning NSURLSession #43

gfontenot opened this issue Nov 29, 2015 · 4 comments

Comments

@gfontenot
Copy link
Collaborator

This seems like it's going to get real hairy real quick (and I know nothing about this stuff) but it's definitely something we should look into.

I'm thinking that we could maybe provide an NSURL session subclass that uses SSL pinning. It wouldn't be the default, but it'd be part of the public API. The idea would be that you can then instantiate your API Client with the pinned session object like so:

let cert: NSData // fetch from the bundle or whatever
let session = PinnedSession(cert: cert)
let client = APIClient(session: session)
@paulyoung
Copy link
Contributor

@gfontenot did you mean like this instead?

let cert: NSData
let session = PinnedSession(cert: cert)
let requestPerformer = NetworkRequestPerformer(session: session)
let client = APIClient(requestPerformer: requestPerformer)

@gfontenot
Copy link
Collaborator Author

@paulyoung Ha, yes.

Maybe we could expose a performer instead, to simplify that API?

let cert: Data
let performer = PinnedRequestPerformer(cert: cert)
let client = APIClient(requestPerformer: performer)

@paulyoung
Copy link
Contributor

👍

@martias
Copy link

martias commented Feb 26, 2018

What solution do you have for SSL Pinning when using Swish?. I have tried with TrustKit, but it seems to not swizzle the calls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants