0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 03:52:28 +02:00
OpenVPN is an open source VPN daemon
Go to file
Arne Schwabe c3746da7f0 Implement using --peer-fingerprint without CA certificates
This is implements --peer-fingerprint command to support OpenVPN
authentication without involving a PKI.

The current implementation in OpenVPN for peer fingerprint has been already
extensively rewritten from the original submission from Jason [1]. The
commit preserved the original author since it was based on Jason code/idea.

This commit is based on two previous commits that prepare the infrastructure
to use a simple to use --peer-fingerprint directive instead of using
a --tls-verify script like the v1 of the patch proposed.  The two commits
preparing this are:

 - Extend verify-hash to allow multiple hashes
 - Implement peer-fingerprint to check fingerprint of peer certificate

These preceding patches make this actual patch quite short. There are some
lines in this patch that bear some similarity to the ones like

    if (!preverify_ok && !session->opt->verify_hash_no_ca)

vs

    if (!preverify_ok && !session->opt->ca_file_none)

But these similarities are one line fragments and dictated by the
surrounding style and program flow, so even a complete black box
implementation will likely end up with the same lines.

[1] https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg16781.html

Change-Id: Ie74c3d606c5429455c293c367462244566a936e3
Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20230524132424.3098475-2-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26723.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
2023-07-18 15:05:40 +02:00
.github GHA: update to run-vcpkg@v11 2023-06-27 22:11:38 +02:00
build Remove all traces of the previous MSVC build system 2023-06-27 21:58:03 +02:00
contrib CMake: Add complete MinGW and MSVC build 2023-06-27 18:07:03 +02:00
debug build: standard directory layout 2012-03-22 22:07:08 +01:00
dev-tools Update copyright year to 2023 2023-01-10 17:24:37 +01:00
distro Update copyright year to 2023 2023-01-10 17:24:37 +01:00
doc fix typo: dhcp-options to dhcp-option in vpn-network-options.rst 2023-07-17 15:27:38 +02:00
include Update copyright year to 2023 2023-01-10 17:24:37 +01:00
m4 Remove support for non ISO C99 vararg support 2021-03-28 16:34:42 +02:00
sample sample-plugins: Fix memleak in client-connect example plugin 2023-05-16 12:18:32 +02:00
src Implement using --peer-fingerprint without CA certificates 2023-07-18 15:05:40 +02:00
tests Mock openvpn_exece on win32 also for test_tls_crypt 2023-07-17 19:04:14 +02:00
.git-blame-ignore-revs uncrustify: add sp_after_comma=add 2022-05-22 13:10:22 +02:00
.gitattributes cleanup: add .gitattributes to control eol style explicitly 2012-04-26 20:54:26 +02:00
.gitignore Remove all traces of the previous MSVC build system 2023-06-27 21:58:03 +02:00
.mailmap Update .mailmap to unify and clean up odd names and e-mail addresses 2016-10-18 13:46:04 +02:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ChangeLog Update copyright year to 2023 2023-01-10 17:24:37 +01:00
Changes.rst Refuse connection if server pushes an option contradicting allow-compress 2023-03-23 18:25:40 +01:00
CMakeLists.txt Check if the -wrap argument is actually supported by the platform's ld 2023-07-17 19:34:00 +02:00
CMakePresets.json CMake: Add complete MinGW and MSVC build 2023-06-27 18:07:03 +02:00
compat.m4 Remove checks for uint* types that are part of C99 2021-04-07 08:30:34 +02:00
config.h.cmake.in CMake: Add complete MinGW and MSVC build 2023-06-27 18:07:03 +02:00
configure.ac Remove all traces of the previous MSVC build system 2023-06-27 21:58:03 +02:00
CONTRIBUTING.rst Add git pre-commit hook script to uncrustify 2022-04-22 09:25:55 +02:00
COPYING Add Apache2 linking with for new commits 2023-05-03 18:09:46 +02:00
COPYRIGHT.GPL copyright: Update GPLv2 license texts 2017-06-16 10:38:03 +02:00
INSTALL GitHub Issues: add new links to INSTALL and README 2022-11-30 15:46:35 +01:00
Makefile.am README.cmake.md: Add new documentation for CMake buildsystem 2023-07-07 19:07:10 +02:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
PORTS Update copyright year to 2023 2023-01-10 17:24:37 +01:00
README README.cmake.md: Add new documentation for CMake buildsystem 2023-07-07 19:07:10 +02:00
README.cmake.md README.cmake.md: Add new documentation for CMake buildsystem 2023-07-07 19:07:10 +02:00
README.dco.md README.cmake.md: Add new documentation for CMake buildsystem 2023-07-07 19:07:10 +02:00
README.ec Implement tls-groups option to specify eliptic curves/groups 2020-07-21 22:33:58 +02:00
README.mbedtls Add warning about mbed TLS licensing problem 2022-02-17 16:13:53 +01:00
README.wolfssl README.wolfssl Update 2021-03-19 15:19:31 +01:00
version.m4 Change version.m4 to 2.7_git 2022-12-01 16:33:25 +01:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2022 OpenVPN Inc. This program is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

*************************************************************************

To get the latest release of OpenVPN, go to:

	https://openvpn.net/community-downloads/

To Build and Install,

	tar -zxf openvpn-<version>.tar.gz
	cd openvpn-<version>
	./configure
	make
	make install

or see the file INSTALL for more info.

For information on how to build OpenVPN on/for Windows with MinGW
or MSVC see README.cmake.md.

*************************************************************************

For detailed information on OpenVPN, including examples, see the man page
  http://openvpn.net/man.html

For a sample VPN configuration, see
  http://openvpn.net/howto.html

To report an issue, see
  https://github.com/OpenVPN/openvpn/issues/new
  (Note: We recently switched to GitHub for reporting new issues,
   old issues can be found at:
   https://community.openvpn.net/openvpn/report)

For a description of OpenVPN's underlying protocol,
  see the file ssl.h included in the source distribution.

*************************************************************************

Other Files & Directories:

* configure.ac -- script to rebuild our configure
  script and makefile.

* sample/sample-scripts/verify-cn

  A sample perl script which can be used with OpenVPN's
  --tls-verify option to provide a customized authentication
  test on embedded X509 certificate fields.

* sample/sample-keys/

  Sample RSA keys and certificates.  DON'T USE THESE FILES
  FOR ANYTHING OTHER THAN TESTING BECAUSE THEY ARE TOTALLY INSECURE.

* sample/sample-config-files/

  A collection of OpenVPN config files and scripts from
  the HOWTO at http://openvpn.net/howto.html

*************************************************************************

Note that easy-rsa and tap-windows are now maintained in their own subprojects.
Their source code is available here:

  https://github.com/OpenVPN/easy-rsa
  https://github.com/OpenVPN/tap-windows6

Community-provided Windows installers (MSI) and Debian packages are built from

  https://github.com/OpenVPN/openvpn-build

See the INSTALL file for usage information.