Files
codex/codex-rs/http-client/Cargo.toml
T
efrazer-oai d5bc4161b6 Add a Windows proxy authentication tunnel helper (#55994)
## What changed

Expose `connect_windows_proxy` for callers handling a CONNECT `407` response. Use libcurl with the signed-in Windows user's Negotiate or NTLM credentials, then return the authenticated connection with buffered data preserved.

Support HTTP and HTTPS proxies, with default or caller-provided TLS configuration. HTTPS proxies requiring authentication tokens bound to their TLS connection are unsupported.

Enable libcurl's NTLM support in Cargo and Bazel builds.

## Testing

Add a Windows-only test asserting that libcurl provides NTLM, SPNEGO, and SSPI support.

GitOrigin-RevId: 4ed7d2208766404b6125ce2f4b5f91de5616a37f
2026-10-21 21:50:55 +00:00

59 lines
1.7 KiB
TOML

[package]
edition.workspace = true
license.workspace = true
name = "codex-http-client"
version.workspace = true
[dependencies]
bytes = { workspace = true }
codex-utils-rustls-provider = { workspace = true }
futures = { workspace = true }
http = { workspace = true }
http-body = "1.0.1"
httpdate = { workspace = true }
native-tls = "0.2"
opentelemetry = { workspace = true }
reqwest = { workspace = true, features = ["json", "rustls-tls", "rustls-tls-native-roots", "stream"] }
rustls = { workspace = true }
rustls-native-certs = { workspace = true }
rustls-pki-types = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_urlencoded = "0.7"
sha2 = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt", "time", "sync"] }
tracing = { workspace = true }
tracing-opentelemetry = { workspace = true }
zstd = { workspace = true }
[target.'cfg(target_os = "macos")'.dependencies]
system-configuration = { workspace = true }
[target.'cfg(target_os = "windows")'.dependencies]
curl = { version = "0.4.50", features = ["static-curl", "ntlm"] }
rustls-platform-verifier = "0.7.0"
socket2 = "0.6"
tokio = { workspace = true, features = ["io-util", "net"] }
tokio-rustls = { workspace = true }
url = { workspace = true }
windows-sys = { workspace = true, features = [
"Win32_Foundation",
"Win32_Networking_WinHttp",
] }
[lints]
workspace = true
[dev-dependencies]
codex-utils-cargo-bin = { workspace = true }
opentelemetry_sdk = { workspace = true }
pretty_assertions = { workspace = true }
rcgen = { workspace = true }
tempfile = { workspace = true }
tokio = { workspace = true, features = ["test-util"] }
tracing-subscriber = { workspace = true }
[lib]
doctest = false