Go to file
Selva Nair cf704eef47 Add a function to encode digests with PKCS1 DigestInfo wrapper
The EVP_PKEY interface as well as provider passes the raw
digest to the sign() function. In case of RSA_PKCS1,
our management interface expects an encoded hash, which
has the DigestInfo header added as per PKCSv1.5 specs,
unless the hash algorithm is legacy MD5_SHA1.

Fix this by
 - add a function to perform the pkcs1 encoding before passing the
   data to sign to the management interface. The implementation
   is not pretty, but should work.
   (Unfortunately OpenSSL does not expose a function for this).

Note:
1. cryptoki interface used by pkcs11-helper also requires this to be
   done before calling the Sign op. This will come handy there too.
2. We have a similar function in ssl_mbedtls.c but its not prettier,
   and require porting.

v2 changes: Use hard-coded headers for known hash algorithms instead
of assembling it from the ASN.1 objects.

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <20211214165928.30676-9-selva.nair@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg23433.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
2022-01-20 16:22:22 +01:00
.github GitHub Actions: ensure Ubuntu builds are made with the chosen SSL library 2022-01-14 14:16:39 +01:00
.travis Change travis build scripts to use https when fetching prerequisites. 2020-11-24 18:01:46 +01:00
build Add building man page on Windows 2021-09-12 11:24:51 +02:00
contrib vcpkg/pkcs11-helper: compatibility with latest vcpkg 2021-12-05 19:01:25 +01:00
debug build: standard directory layout 2012-03-22 22:07:08 +01:00
dev-tools Update copyrights 2021-06-15 10:41:07 +02:00
distro Update copyrights 2021-06-15 10:41:07 +02:00
doc doc: remove PF leftovers from documentation 2022-01-14 07:40:58 +01:00
include Remove support for PF (Packet Filter) 2021-09-12 10:24:25 +02:00
m4 Remove support for non ISO C99 vararg support 2021-03-28 16:34:42 +02:00
sample Fix error in example firewall.sh script 2021-11-09 16:13:47 +01:00
src Add a function to encode digests with PKCS1 DigestInfo wrapper 2022-01-20 16:22:22 +01:00
tests Rework occ link-mtu calculation 2021-12-31 12:08:35 +01:00
.git-blame-ignore-revs Add c1ff8f247f (engine, pool, SSO) to .git-blame-ignore-revs 2020-06-26 15:03:39 +02:00
.gitattributes cleanup: add .gitattributes to control eol style explicitly 2012-04-26 20:54:26 +02:00
.gitignore Move examples into openvpn-examples(5) man page 2021-07-02 11:50:11 +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
.travis.yml travis: don't run t_net.sh test 2020-08-10 18:34:19 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ChangeLog Update copyrights 2021-06-15 10:41:07 +02:00
Changes.rst Make --nobind default for --pull 2021-12-06 18:06:45 +01:00
compat.m4 Remove checks for uint* types that are part of C99 2021-04-07 08:30:34 +02:00
config-msvc-version.h.in msvc: fix product version display 2021-10-14 16:29:35 +02:00
config-msvc.h config-msvc.h: indicate key material export support 2021-12-13 15:38:42 +01:00
configure.ac Add --with-openssl-engine autoconf option (auto|yes|no) 2021-10-27 20:30:02 +02:00
CONTRIBUTING.rst Update IRC information in CONTRIBUTING.rst 2021-11-22 13:09:21 +01:00
COPYING Update copyrights 2021-06-15 10:41:07 +02:00
COPYRIGHT.GPL copyright: Update GPLv2 license texts 2017-06-16 10:38:03 +02:00
INSTALL Drop support for OpenSSL 1.0.1 2020-07-20 21:40:11 +02:00
Makefile.am Update copyrights 2021-06-15 10:41:07 +02:00
msvc-build.bat win: support for Visual Studio 2017 2018-10-01 08:16:29 +02:00
msvc-dev.bat win: support for Visual Studio 2017 2018-10-01 08:16:29 +02:00
msvc-env.bat win: support for Visual Studio 2017 2018-10-01 08:16:29 +02:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
openvpn.sln msvc: add ARM64 configuration 2021-05-10 17:54:57 +02:00
PORTS Update copyrights 2021-06-15 10:41:07 +02:00
README Update copyright to include 2018 plus company name change 2018-02-01 08:29:21 +01:00
README.ec Implement tls-groups option to specify eliptic curves/groups 2020-07-21 22:33:58 +02:00
README.IPv6 Update IPv6 related readme files 2014-01-03 16:01:12 +01:00
README.mbedtls docs: Replace all PolarSSL references to mbed TLS 2017-09-06 23:42:55 +02:00
README.wolfssl README.wolfssl Update 2021-03-19 15:19:31 +01:00
TODO.IPv6 Fix various spelling mistakes 2019-02-06 19:07:34 +01:00
version.m4 Change version.m4 to 2.6_git 2020-08-12 13:00:21 +02:00
version.sh.in build: windows: install version.sh to allow installer read version 2012-03-24 00:14:23 +01:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2018 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/index.php/download/community-downloads.html

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 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://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-windows

The old cross-compilation environment (domake-win) and the Python-based
buildsystem have been replaced with openvpn-build:

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

See the INSTALL file for usage information.