You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This crate provides integration for using rust-symcrypt cryptographic functionalities with rustls, by implementing the required traits specified by rustls.
Supported Configurations
Operating Environment
Architecture
Dynamic Linking
Windows user mode
AMD64, ARM64
✅
Ubuntu (Tested via WSL)
AMD64, ARM64
✅
Azure Linux 3
AMD64, ARM64
✅
Azure Linux 2
AMD64, ARM64
❌
Dependencies
This crate depends on the symcrypt crate and requires you have the necessary symcrypt binaries for your architecture.
Refer to the rust-symcrypt Quick Start Guide to download the required binaries.
Usage
Add rustls-symcrypt to your Cargo.toml:
Note: If you wish to enable x25519 or chacha you may add it as a feature at this time.
[dependencies]
rustls = { version = "0.23.0", features = ["tls12", "std", "custom-provider"], default-features = false }
rustls_symcrypt = "0.2.1"# To enable the chacha feature:# rustls_symcrypt = {version = "0.2.1", features = ["chacha"]}
Supported Ciphers
Supported cipher suites are listed below, ordered by preference. IE: The default configuration prioritizes TLS13_AES_256_GCM_SHA384 over TLS13_AES_128_GCM_SHA256.
Note:X25519 is disabled by default. To enable, add x25519 feature in your Cargo.toml.
Example Code
The examples directory showcases how to use the rustls-symcrypt provider with rustls for both a client configuration and a server configuration by taking advantage of rustls::ClientConfig::builder_with_provider().