Merge pull request #5242 from SKlimaRA/SKlimaRA/strict-verification

zd14249
This commit is contained in:
Sean Parkinson
2022-06-30 08:19:42 +10:00
committed by GitHub

View File

@ -72,6 +72,10 @@
* less). On the other hand, if a valid SessionID is collected, forged
* clientHello messages will consume resources on the server.
* This define is turned off by default.
* WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY
* Verify hostname/ip address using alternate name (SAN) only and do not
* use the common name. Forces use of the alternate name, so certificates
* missing SAN will be rejected during the handshake
*/
@ -10897,6 +10901,7 @@ int CheckHostName(DecodedCert* dCert, const char *domainName, size_t domainNameL
ret = 0;
}
#ifndef WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY
if (checkCN == 1) {
if (MatchDomainName(dCert->subjectCN, dCert->subjectCNLen,
domainName) == 1) {
@ -10906,6 +10911,7 @@ int CheckHostName(DecodedCert* dCert, const char *domainName, size_t domainNameL
WOLFSSL_MSG("DomainName match on common name failed");
}
}
#endif /* !WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY */
return ret;
}
@ -11730,6 +11736,7 @@ int DoVerifyCallback(WOLFSSL_CERT_MANAGER* cm, WOLFSSL* ssl, int ret,
}
}
}
#ifndef WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY
else {
if (args->dCert->subjectCN) {
if (MatchDomainName(args->dCert->subjectCN,
@ -11741,6 +11748,13 @@ int DoVerifyCallback(WOLFSSL_CERT_MANAGER* cm, WOLFSSL* ssl, int ret,
}
}
}
#else
else {
if (ret == 0) {
ret = DOMAIN_NAME_MISMATCH;
}
}
#endif /* !WOLFSSL_HOSTNAME_VERIFY_ALT_NAME_ONLY */
}
/* perform IP address check on the peer certificate */