SSLPinningManager

master

InstaRobot/SSLPinningManager

SSLPinningManager

Installation

Swift Package Manager

  1. File > Swift Packages > Add Package Dependency
  2. 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)

Description

  • Swift Tools 5.10.0
View More Packages from this Author

Dependencies

  • None
Last updated: Wed May 14 2025 23:30:09 GMT-0900 (Hawaii-Aleutian Daylight Time)