summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdriaan de Jong <dejong@fox-it.com>2011-06-29 14:28:44 +0200
committerDavid Sommerseth <davids@redhat.com>2011-10-22 11:32:40 +0200
commita4c926bb5939d95d9e7c0dfd4b83e61a11f86c90 (patch)
tree72a3d6cb0cb70bcdc9d65ca4d7c065c35c2d2672
parent587f419b714d283ad6d5c861d6f1ecf12345b89d (diff)
downloadopenvpn-a4c926bb5939d95d9e7c0dfd4b83e61a11f86c90.tar.gz
openvpn-a4c926bb5939d95d9e7c0dfd4b83e61a11f86c90.tar.xz
openvpn-a4c926bb5939d95d9e7c0dfd4b83e61a11f86c90.zip
Refactored tls-remote checking
Signed-off-by: Adriaan de Jong <dejong@fox-it.com> Acked-by: James Yonan <james@openvpn.net> Signed-off-by: David Sommerseth <davids@redhat.com>
-rw-r--r--ssl.c14
-rw-r--r--ssl_verify.c15
2 files changed, 15 insertions, 14 deletions
diff --git a/ssl.c b/ssl.c
index d7cdd75..8d1fd73 100644
--- a/ssl.c
+++ b/ssl.c
@@ -431,20 +431,6 @@ verify_cert(struct tls_session *session, x509_cert_t *cert, int cert_depth)
if (cert_depth == 0 && verify_peer_cert(opt, cert, subject, common_name))
goto err;
- /* verify X509 name or common name against --tls-remote */
- if (opt->verify_x509name && strlen (opt->verify_x509name) > 0 && cert_depth == 0)
- {
- if (strcmp (opt->verify_x509name, subject) == 0
- || strncmp (opt->verify_x509name, common_name, strlen (opt->verify_x509name)) == 0)
- msg (D_HANDSHAKE, "VERIFY X509NAME OK: %s", subject);
- else
- {
- msg (D_HANDSHAKE, "VERIFY X509NAME ERROR: %s, must be %s",
- subject, opt->verify_x509name);
- goto err; /* Reject connection */
- }
- }
-
/* call --tls-verify plug-in(s) */
if (plugin_defined (opt->plugins, OPENVPN_PLUGIN_TLS_VERIFY))
{
diff --git a/ssl_verify.c b/ssl_verify.c
index 7c263f8..9eda092 100644
--- a/ssl_verify.c
+++ b/ssl_verify.c
@@ -382,6 +382,21 @@ verify_peer_cert(const struct tls_options *opt, x509_cert_t *peer_cert,
}
#endif /* OPENSSL_VERSION_NUMBER */
+
+ /* verify X509 name or common name against --tls-remote */
+ if (opt->verify_x509name && strlen (opt->verify_x509name) > 0)
+ {
+ if (strcmp (opt->verify_x509name, subject) == 0
+ || strncmp (opt->verify_x509name, common_name, strlen (opt->verify_x509name)) == 0)
+ msg (D_HANDSHAKE, "VERIFY X509NAME OK: %s", subject);
+ else
+ {
+ msg (D_HANDSHAKE, "VERIFY X509NAME ERROR: %s, must be %s",
+ subject, opt->verify_x509name);
+ return 1; /* Reject connection */
+ }
+ }
+
return 0;
}