instarobot/sslpinningmanager
1. File > Swift Packages > Add Package Dependency
Installation
Swift Package Manager
- File > Swift Packages > Add Package Dependency
- Add
https://github.com/InstaRobot/SSLPinningManager.git
OR
Update dependencies in Package.swift
dependencies: [
.package(url: "https://github.com/InstaRobot/SSLPinningManager.git", .upToNextMajor(from: "1.0.0"))
]
Usage
import SSLPinningManager
final class PinningSessionDelegate: NSObject {
let sslPinningManager: SSLPinningManager
override init() {
sslPinningManager = SSLPinningManager(
pinnedKeyHashes: [
"< sha256 hash from certificate >"
]
)
}
}
extension PinningSessionDelegate: URLSessionTaskDelegate {
func urlSession(
_: URLSession,
didReceive challenge: URLAuthenticationChallenge,
completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void
) {
sslPinningManager.validate(
challenge: challenge,
completionHandler: completionHandler
)
}
}
Add your custom delegate to URLSession
let session = URLSession(configuration: .default, delegate: PinningSessionDelegate(), delegateQueue: nil)
Package Metadata
Repository: instarobot/sslpinningmanager
Default branch: master
README: README.md