blob: 71ff8c5b5461c16862a3f8ac352247f0c56ae8e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
//
// RESTURLSession.swift
// MullvadREST
//
// Created by pronebird on 18/04/2022.
// Copyright © 2025 Mullvad VPN AB. All rights reserved.
//
import Foundation
import Network
extension REST {
public static func makeURLSession(addressCache: AddressCache) -> URLSession {
let certificatePath = Bundle(for: SSLPinningURLSessionDelegate.self)
.path(forResource: "le_root_cert", ofType: "cer")!
let data = FileManager.default.contents(atPath: certificatePath)!
let secCertificate = SecCertificateCreateWithData(nil, data as CFData)!
let sessionDelegate = SSLPinningURLSessionDelegate(
sslHostname: defaultAPIHostname,
trustedRootCertificates: [secCertificate],
addressCache: addressCache
)
let sessionConfiguration = URLSessionConfiguration.ephemeral
let session = URLSession(
configuration: sessionConfiguration,
delegate: sessionDelegate,
delegateQueue: nil
)
return session
}
}
|