Cargo Features

[dependencies]
rustls-rustcrypto = { version = "0.0.2-alpha", default-features = false, features = ["logging", "tls12", "std", "alloc", "zeroize"] }
default = std, tls12, zeroize

These default features are set whenever rustls-rustcrypto is added without default-features = false somewhere in the dependency tree.

logging

Enables logging of rustls

tls12 default

Enables tls12 of rustls

Affects rustls-rustcrypto::TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, rustls-rustcrypto::TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, rustls-rustcrypto::TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, rustls-rustcrypto::TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, rustls-rustcrypto::TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, rustls-rustcrypto::TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256

std default = alloc

Only enable feature in upstream if there is an overall effect e.g. aead/alloc in-place zeroize is another typical that can be turned off

TODO: go through all of these that what gets exposed re: std error type

Enables std of ed25519-dalek, rustls-pki-types, rustls, and rustls-webpki

alloc std

TODO: go through all of these to ensure to_vec etc. impls are exposed

Enables alloc of aead, ed25519-dalek, rustls-pki-types, and rustls-webpki

zeroize default

Enables zeroize of ed25519-dalek and x25519-dalek

Features from optional dependencies

Ensure all dependencies + feats are mapped to crate features for correct usage default features often have std breaking no_std and potentially other unwanted