Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9ce1b9e
Implemented SPKIPinningConfiguration
o-nnerb Feb 1, 2026
eeb3726
Added Hashable conformance
o-nnerb Feb 1, 2026
8c6e782
Fix tlsPinning usage
o-nnerb Feb 2, 2026
5f1dfd9
Fix hash digestion
o-nnerb Feb 2, 2026
a224e7e
Lint code
o-nnerb Feb 2, 2026
32a4100
Provide support for various algorithms for comparing SPKI
o-nnerb Feb 2, 2026
26675d1
Improved properties names and applications
o-nnerb Feb 2, 2026
6c585a6
Implemented tests
o-nnerb Feb 2, 2026
8c673f6
Added back removed code
o-nnerb Feb 2, 2026
1e56600
Add SPKI pinning with runtime safety checks and explicit TLS requirement
o-nnerb Feb 4, 2026
c5c0198
Included length difference in the diff
o-nnerb Feb 4, 2026
b71085f
Merge branch 'main' into main
o-nnerb Feb 6, 2026
51b3015
Removed Executor, fix `constantTimeAnyMatch(_:_:)` and update context…
o-nnerb Feb 10, 2026
87fd63f
Updated `SPKIPinningPolicy` and adjust documentation
o-nnerb Feb 10, 2026
885a2bd
Merge branch 'main' into main
o-nnerb Feb 10, 2026
e3d0b27
Merge branch 'main' into main
o-nnerb Feb 18, 2026
d8d9767
Merge branch 'main' into main
o-nnerb Feb 21, 2026
e0baecb
Applied swift format
o-nnerb Mar 12, 2026
6cb7f2c
Merge branch 'main' into main
o-nnerb Mar 12, 2026
39f6b77
Added new init for HTTPHandler and undo some changes
o-nnerb Mar 12, 2026
8d6ec8a
Revert the modifications made to the method documentation
o-nnerb Mar 12, 2026
c599656
Added support for the old version of Swift Package configuration
o-nnerb Mar 12, 2026
362dc7d
Revert the modifications made to the method documentation
o-nnerb Mar 12, 2026
b73d62a
Added a new initializer for HTTPHandler that accepts a String url and…
o-nnerb Mar 12, 2026
3fd423f
Merge branch 'main' into main
o-nnerb Mar 15, 2026
9ffdfd7
Change code to import FoundationEssentials
o-nnerb Mar 15, 2026
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
2 changes: 2 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ let package = Package(
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.0.2"),
.package(url: "https://github.com/apple/swift-algorithms.git", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "1.3.0"),
.package(url: "https://github.com/apple/swift-crypto.git", from: "4.2.0"),
// Disable all traits to prevent linking Foundation
.package(url: "https://github.com/apple/swift-configuration.git", from: "1.0.0", traits: []),
.package(url: "https://github.com/apple/swift-service-context.git", from: "1.1.0"),
Expand Down Expand Up @@ -76,6 +77,7 @@ let package = Package(
),
.product(name: "Atomics", package: "swift-atomics"),
.product(name: "Algorithms", package: "swift-algorithms"),
.product(name: "Crypto", package: "swift-crypto"),
.product(name: "Configuration", package: "swift-configuration"),
// Observability support
.product(name: "Logging", package: "swift-log"),
Expand Down
2 changes: 2 additions & 0 deletions Package@swift-6.0.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ let package = Package(
.package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.24.0"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.7.1"),
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.0.2"),
.package(url: "https://github.com/apple/swift-crypto.git", from: "4.2.0"),
.package(url: "https://github.com/apple/swift-algorithms.git", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "1.3.0"),
],
Expand Down Expand Up @@ -69,6 +70,7 @@ let package = Package(
.product(name: "NIOTransportServices", package: "swift-nio-transport-services"),
.product(name: "Atomics", package: "swift-atomics"),
.product(name: "Algorithms", package: "swift-algorithms"),
.product(name: "Crypto", package: "swift-crypto"),
// Observability support
.product(name: "Logging", package: "swift-log"),
.product(name: "Tracing", package: "swift-distributed-tracing"),
Expand Down
2 changes: 2 additions & 0 deletions Package@swift-6.1.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ let package = Package(
.package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.24.0"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.7.1"),
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.0.2"),
.package(url: "https://github.com/apple/swift-crypto.git", from: "4.2.0"),
.package(url: "https://github.com/apple/swift-algorithms.git", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "1.3.0"),
],
Expand Down Expand Up @@ -69,6 +70,7 @@ let package = Package(
.product(name: "NIOTransportServices", package: "swift-nio-transport-services"),
.product(name: "Atomics", package: "swift-atomics"),
.product(name: "Algorithms", package: "swift-algorithms"),
.product(name: "Crypto", package: "swift-crypto"),
// Observability support
.product(name: "Logging", package: "swift-log"),
.product(name: "Tracing", package: "swift-distributed-tracing"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ extension HTTPClientRequest {
var head: HTTPRequestHead
var body: Body?
var tlsConfiguration: TLSConfiguration?
var tlsPinning: SPKIPinningConfiguration?
}
}

Expand Down Expand Up @@ -86,7 +87,8 @@ extension HTTPClientRequest.Prepared {
headers: headers
),
body: request.body.map { .init($0) },
tlsConfiguration: request.tlsConfiguration
tlsConfiguration: request.tlsConfiguration,
tlsPinning: request.tlsPinning
)
}
}
Expand Down
3 changes: 3 additions & 0 deletions Sources/AsyncHTTPClient/AsyncAwait/HTTPClientRequest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ public struct HTTPClientRequest: Sendable {
/// Request-specific TLS configuration, defaults to no request-specific TLS configuration.
public var tlsConfiguration: TLSConfiguration?

/// Optional SPKI pinning configuration for TLS certificate validation.
public var tlsPinning: SPKIPinningConfiguration?

public init(url: String) {
self.url = url
self.method = .GET
Expand Down
1 change: 1 addition & 0 deletions Sources/AsyncHTTPClient/AsyncAwait/Transaction.swift
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ final class Transaction:
extension Transaction: HTTPSchedulableRequest {
var poolKey: ConnectionPool.Key { self.request.poolKey }
var tlsConfiguration: TLSConfiguration? { self.request.tlsConfiguration }
var tlsPinning: SPKIPinningConfiguration? { self.request.tlsPinning }
var requiredEventLoop: EventLoop? { nil }

func requestWasQueued(_ scheduler: HTTPRequestScheduler) {
Expand Down
Loading