]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Refactored tls-remote checking
authorAdriaan de Jong <dejong@fox-it.com>
Wed, 29 Jun 2011 12:28:44 +0000 (14:28 +0200)
committerDavid Sommerseth <davids@redhat.com>
Sat, 22 Oct 2011 09:32:40 +0000 (11:32 +0200)
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>
ssl.c
ssl_verify.c

diff --git a/ssl.c b/ssl.c
index d7cdd754f0da9ac719ba34a2a482c7993022a808..8d1fd73384a1f7e2b6aa6a009afe3c890b2ba167 100644 (file)
--- 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))
     {
index 7c263f8c3ebca062e947335b9d619e7c85243aee..9eda092d28a7c620b4a17628d743b67978756313 100644 (file)
@@ -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;
 }