mirror of
https://github.com/curl/curl.git
synced 2026-08-26 07:43:33 +03:00
tests: add SNI and peer name checks
- connect to DNS names with trailing dot - connect to DNS names with double trailing dot - rustls, always give `peer->hostname` and let it figure out SNI itself - add SNI tests for ip address and localhost - document in code and TODO that QUIC with ngtcp2+wolfssl does not do proper peer verification of the certificate - mbedtls, skip tests with ip address verification as not supported by the library Closes #13486
This commit is contained in:
parent
c04664ad35
commit
b06619d0a3
6 changed files with 88 additions and 9 deletions
|
|
@ -324,7 +324,11 @@ CURLcode Curl_vquic_tls_verify_peer(struct curl_tls_ctx *ctx,
|
|||
#elif defined(USE_WOLFSSL)
|
||||
(void)data;
|
||||
if(conn_config->verifyhost) {
|
||||
if(!peer->sni ||
|
||||
/* TODO: this does not really verify the peer certificate.
|
||||
* On TCP connection this works as it is wired into the wolfSSL
|
||||
* connect() implementation and gives a special return code on
|
||||
* such a fail. */
|
||||
if(peer->sni &&
|
||||
wolfSSL_check_domain_name(ctx->ssl, peer->sni) == SSL_FAILURE)
|
||||
return CURLE_PEER_FAILED_VERIFICATION;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -479,13 +479,8 @@ cr_init_backend(struct Curl_cfilter *cf, struct Curl_easy *data,
|
|||
|
||||
backend->config = rustls_client_config_builder_build(config_builder);
|
||||
DEBUGASSERT(rconn == NULL);
|
||||
{
|
||||
/* rustls claims to manage ip address hostnames as well here. So,
|
||||
* if we have an SNI, we use it, otherwise we pass the hostname */
|
||||
char *server = connssl->peer.sni?
|
||||
connssl->peer.sni : connssl->peer.hostname;
|
||||
result = rustls_client_connection_new(backend->config, server, &rconn);
|
||||
}
|
||||
result = rustls_client_connection_new(backend->config,
|
||||
connssl->peer.hostname, &rconn);
|
||||
if(result != RUSTLS_RESULT_OK) {
|
||||
rustls_error(result, errorbuf, sizeof(errorbuf), &errorlen);
|
||||
failf(data, "rustls_client_connection_new: %.*s", (int)errorlen, errorbuf);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue