Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
Binary releases:
.zip
s for: Windows (x86_64
MSVC), Linux (x86_64
GNU libc), and Apple (ARM64
andx86_64
) and a.deb
for Debian/Ubuntux86_64
. These can be used to build software usingrustls-ffi
without needingcargo
/cargo-c
/rustc
.API documentation is now available online at https://ffi.rustls.dev
Post-quantum key exchange with
X25519MLKEM768
.prefer-post-quantum
feature flag to change this behavior.New opt-in feature flags:
X25519MLKEM768
the most-preferred key exchange by enabling theprefer-post-quantum
feature flag. Requires theaws-lc-rs
crypto provider.cert_compression
feature when buildingrustls-ffi
. When enabled connections will transparently use certificate compression with Brotli or ZLib based on peer compatibility.aws-lc-rs
provider. Enabled with thefips
feature when buildingrustls-ffi
. When enabled theaws-lc-rs
crypto provider is used in its FIPS compatible mode. See the Rustls project documentation for more information on FIPS status.Encrypted Client Hello (ECH) support for client connections.
rustls_hpke
struct for representing supported HPKE suites.rustls_supported_hpke()
function for returning a const pointer to arustls_hpke
instance if available. Only theaws-lc-rs
backend returns a non-NULL
value at this time.rustls_client_config_builder_enable_ech_grease()
client config builder function for configuring ECH GREASE using arustls_hpke
. This chooses a supported HPKE suite at random and is an anti-ossification measure clients may opt-in to when not performing "real" ECH.rustls_client_config_builder_enable_ech()
client config builder function for configuring ECH using arustls_hpke
and a TLS encoded ECH config list. The encoded ECH config list should be retrieved from DNS using a secure transport, such as DNS-over-HTTPS. See thelibrustls/tests/client.c
example, and theech-fetch.rs
tool, for example usage.Additional connection information APIs:
rustls_connection_get_negotiated_key_exchange_group()
for the IANA registered identifier, andrustls_connection_get_negotiated_key_exchange_group_name()
for the name as arustls_str
.rustls_connection_handshake_kind()
. This returns arustls_handshake_kind
enum variant, which can be translated to arustls_str
usingrustls_handshake_kind_str()
.Support for checking whether a
rustls_certified_key
's certificate matches the corresponding private key usingrustls_certified_key_keys_match()
.Support for queuing TLS 1.3 key updates using
rustls_connection_refresh_traffic_keys()
.Support for strict handling of CRL expiry using
rustls_web_pki_server_cert_verifier_enforce_revocation_expiry()
to customize arustls_web_pki_server_cert_verifier_builder
builder instance to reject CRLs with a next update in the past.Support for building
rustls-ffi
without any built in cryptography providers. This is mainly helpful for users that don't intend to useaws-lc-rs
or*ring*
but instead will bring their own FFI-readyrustls_crypto_provider
.SSLKEYLOG support:
rustls_server_config_builder_set_key_log_file()
orrustls_client_config_builder_set_key_log_file()
with a client/server config builder to have theSSLKEYLOGFILE
env var used to log an NSS formatted key log file appropriate for use with Wireshark and other tools.rustls_server_config_builder_set_key_log()
orrustls_client_config_builder_set_key_log()
to configure C callbacks to be invoked to decide which secrets are logged and to do the logging.librustls/tests/client.c
andlibrustls/tests/server.c
for example usage.FIPS-140-3 APIs:
rustls_default_fips_provider()
for instantiating a FIPS compatiblerustls_crypto_provider
(requires "fips" feature enabled).rustls_crypto_provider_fips()
for determining if arustls_crypto_provider
is FIPS compatible or not.rustls_client_config_fips()
for determining if arustls_client_config
was built with a FIPS compatiblerustls_crypto_provider
.rustls_server_config_fips()
for determining if arustls_server_config
was built with a FIPS compatiblerustls_crypto_provider
.rustls_connection_fips()
for determining if arustls_connection
was created from arustls_client_config
orrustls_server_config
that was built with a FIPS compatiblerustls_crypto_provider
.Additional
rustls_result
error variants:RUSTLS_RESULT_CERT_EXPIRED_REVOCATION_LIST
,RUSTLS_RESULT_MESSAGE_CERTIFICATE_PAYLOAD_TOO_LARGE
,RUSTLS_RESULT_INCONSISTENT_KEYS_KEYS_MISMATCH
,RUSTLS_RESULT_INCONSISTENT_KEYS_UNKNOWN
,RUSTLS_RESULT_INVALID_ENCRYPTED_CLIENT_HELLO_INVALID_CONFIG_LIST
,RUSTLS_RESULT_INVALID_ENCRYPTED_CLIENT_HELLO_NO_COMPATIBLE_CONFIG
,RUSTLS_RESULT_INVALID_ENCRYPTED_CLIENT_HELLO_SNI_REQUIRED
.Changed
Calling
rustls_server_config_builder_build()
with no certificate/key configured previously returnedRUSTLS_RESULT_GENERAL
, it now returnsRUSTLS_RESULT_NO_CERT_RESOLVER
.The
rustls_server_connection_get_server_name()
function now returns arustls_str
instead of writing to a user provided buffer with outparameters.
The
rustls_server_config_builder_set_persistence()
function is nowvoid
instead of returning arustls_error
.cargo-c is now the only supported method for building
rustls-ffi
. It supports building both static and shared libraries as well as making.pc
pkg-config files per-platform. The pre-existing GNUMakefile
has been removed in favour ofcargo-c
. See our README for more information.Building the client/server examples now requires
cmake
. The GNU Makefile has been removed in favour of unifying the example build system withcmake
. Users only interested in buildingrustls-ffi
(not the example applications) do not requirecmake
unless it is a requirement of their chosen cryptography provider (e.g.aws-lc-rs
in fips mode).Removed
What's Changed
rustls_error
: correct output buffer length handling by @ctz inrustls_error
: correct output buffer length handling rustls/rustls-ffi#551New Contributors
Full Changelog: rustls/rustls-ffi@v0.14.0...v0.15.0