Skip to content

Conversation

@avrabe
Copy link
Contributor

@avrabe avrabe commented Jan 31, 2026

Summary

Add certificate pinning support to the HTTP abstraction layer:

  • Extract create_pinned_rustls_config() as shared function for both sync (ureq) and async (reqwest) HTTP clients
  • Add PinnedHttpClient that enforces certificate pinning using the shared rustls config
  • Refactor transport.rs to use the shared TLS configuration
  • Update signer.rs to use check_pinning_requirement instead of deprecated check_pinning_enforcement
  • Clean up exports in keyless mod.rs

This enables consistent certificate pinning behavior across sync and async HTTP clients, preparing for async HTTP support when needed.

Test plan

  • All 551 tests pass (cargo test --package wsc --lib)
  • Code compiles with both sync (default) and async features

@avrabe avrabe force-pushed the feat/pinned-http-client branch 2 times, most recently from 2d6c95c to 62db2fd Compare January 31, 2026 06:02
Add certificate pinning support to the HTTP abstraction layer:

- Extract create_pinned_rustls_config() as shared function for both
  sync (ureq) and async (reqwest) HTTP clients
- Add PinnedHttpClient that enforces certificate pinning using the
  shared rustls config
- Refactor transport.rs to use the shared TLS configuration
- Update signer.rs to use check_pinning_requirement instead of
  deprecated check_pinning_enforcement
- Clean up exports in keyless mod.rs
- Fix cfg guards for WASM/WASI targets

This enables consistent certificate pinning behavior across sync and
async HTTP clients, preparing for async HTTP support when needed.
@avrabe avrabe force-pushed the feat/pinned-http-client branch from 62db2fd to c68e4fc Compare January 31, 2026 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants