mirror of
https://github.com/ARMmbed/mbedtls.git
synced 2025-05-09 16:41:19 +08:00
Allow no authentication of the server in 1.3
See notes about optional two commits ago for why we're doing this. Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
parent
18dd213114
commit
6901504ddb
@ -684,6 +684,18 @@ static int ssl_tls13_validate_certificate(mbedtls_ssl_context *ssl)
|
|||||||
#endif /* MBEDTLS_SSL_CLI_C */
|
#endif /* MBEDTLS_SSL_CLI_C */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NONE means we skip all checks
|
||||||
|
*
|
||||||
|
* Note: we still check above that the server did send a certificate,
|
||||||
|
* because only a non-compliant server would fail to do so. NONE means we
|
||||||
|
* don't care about the server certificate being valid, but we still care
|
||||||
|
* about the server otherwise following the TLS standard.
|
||||||
|
*/
|
||||||
|
if (authmode == MBEDTLS_SSL_VERIFY_NONE) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
|
#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
|
||||||
if (ssl->handshake->sni_ca_chain != NULL) {
|
if (ssl->handshake->sni_ca_chain != NULL) {
|
||||||
ca_chain = ssl->handshake->sni_ca_chain;
|
ca_chain = ssl->handshake->sni_ca_chain;
|
||||||
|
@ -5861,6 +5861,17 @@ run_test "Authentication: server badcert, client optional (1.2)" \
|
|||||||
-C "X509 - Certificate verification failed"
|
-C "X509 - Certificate verification failed"
|
||||||
|
|
||||||
run_test "Authentication: server badcert, client none" \
|
run_test "Authentication: server badcert, client none" \
|
||||||
|
"$P_SRV crt_file=$DATA_FILES_PATH/server5-badsign.crt \
|
||||||
|
key_file=$DATA_FILES_PATH/server5.key" \
|
||||||
|
"$P_CLI debug_level=3 auth_mode=none" \
|
||||||
|
0 \
|
||||||
|
-C "x509_verify_cert() returned" \
|
||||||
|
-C "! The certificate is not correctly signed by the trusted CA" \
|
||||||
|
-C "! mbedtls_ssl_handshake returned" \
|
||||||
|
-C "send alert level=2 message=48" \
|
||||||
|
-C "X509 - Certificate verification failed"
|
||||||
|
|
||||||
|
run_test "Authentication: server badcert, client none (1.2)" \
|
||||||
"$P_SRV crt_file=$DATA_FILES_PATH/server5-badsign.crt \
|
"$P_SRV crt_file=$DATA_FILES_PATH/server5-badsign.crt \
|
||||||
key_file=$DATA_FILES_PATH/server5.key" \
|
key_file=$DATA_FILES_PATH/server5.key" \
|
||||||
"$P_CLI force_version=tls12 debug_level=3 auth_mode=none" \
|
"$P_CLI force_version=tls12 debug_level=3 auth_mode=none" \
|
||||||
@ -5917,7 +5928,29 @@ run_test "Authentication: server goodcert, client optional, no trusted CA (1.
|
|||||||
-C "X509 - Certificate verification failed" \
|
-C "X509 - Certificate verification failed" \
|
||||||
-C "SSL - No CA Chain is set, but required to operate"
|
-C "SSL - No CA Chain is set, but required to operate"
|
||||||
|
|
||||||
# TODO: server goodcert, client none, no trusted CA
|
requires_key_exchange_with_cert_in_tls12_or_tls13_enabled
|
||||||
|
run_test "Authentication: server goodcert, client none, no trusted CA" \
|
||||||
|
"$P_SRV" \
|
||||||
|
"$P_CLI debug_level=3 auth_mode=none ca_file=none ca_path=none" \
|
||||||
|
0 \
|
||||||
|
-C "x509_verify_cert() returned" \
|
||||||
|
-C "! The certificate is not correctly signed by the trusted CA" \
|
||||||
|
-C "! Certificate verification flags"\
|
||||||
|
-C "! mbedtls_ssl_handshake returned" \
|
||||||
|
-C "X509 - Certificate verification failed" \
|
||||||
|
-C "SSL - No CA Chain is set, but required to operate"
|
||||||
|
|
||||||
|
requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT
|
||||||
|
run_test "Authentication: server goodcert, client none, no trusted CA (1.2)" \
|
||||||
|
"$P_SRV" \
|
||||||
|
"$P_CLI force_version=tls12 debug_level=3 auth_mode=none ca_file=none ca_path=none" \
|
||||||
|
0 \
|
||||||
|
-C "x509_verify_cert() returned" \
|
||||||
|
-C "! The certificate is not correctly signed by the trusted CA" \
|
||||||
|
-C "! Certificate verification flags"\
|
||||||
|
-C "! mbedtls_ssl_handshake returned" \
|
||||||
|
-C "X509 - Certificate verification failed" \
|
||||||
|
-C "SSL - No CA Chain is set, but required to operate"
|
||||||
|
|
||||||
# The purpose of the next two tests is to test the client's behaviour when receiving a server
|
# The purpose of the next two tests is to test the client's behaviour when receiving a server
|
||||||
# certificate with an unsupported elliptic curve. This should usually not happen because
|
# certificate with an unsupported elliptic curve. This should usually not happen because
|
||||||
|
Loading…
x
Reference in New Issue
Block a user