From: selva.nair@...277...
To: openvpn-devel@lists.sourceforge.net
Subject: [Openvpn-devel] [PATCH v3 00/18] External key provider for use with OpenSSL 3
Date: Tue, 14 Dec 2021 11:59:10 -0500 [thread overview]
Message-ID: <20211214165928.30676-1-selva.nair@...277...> (raw)
From: Selva Nair <selva.nair@...277...>
The following series of patches implement a built-in
provider for interfacing OpenSSL 3.0 when external
keys are in use.
Essentially, to intercept the sign operation, the SSL_CTX
object has to be created with properties string set to
prioritize our provider. In the provider we implement
only keymgmt and signature operations and specify the
property string as optional. That allows all operations
we do not provide to be used from the default provider.
Same as PR#161 https://github.com/OpenVPN/openvpn/pull/161
with fixup commits in there squashed and rebased to master.
Requires OpenSSL 3.0.1 (released on Dec 14, 2021) or
OpenSSL 3.0 or 3.1 dev branch post Oct 27.
Selva Nair (18):
A built-in provider for using external key with OpenSSL 3.0
Implement KEYMGMT in the xkey provider
Implement SIGNATURE operations in xkey provider
Implement import of custom external keys
Initialize the xkey provider and use it in SSL context
A helper function to import private key for management-external-key
Enable signing via provider for management-external-key
Add a function to encode digests with PKCS1 DigestInfo wrapper
Allow management client to announce pss padding support
Respect algorithm support announced by management client
Support sending DigestSign request to management client
Increase ERR_BUF_SIZE when management interface support is enabled
Add a generic key loading helper function for xkey provider
pkcs11: Interface the xkey provider with pkcs11-helper
Enable signing using CNG through xkey provider
Add a unit test for external key provider
xkey-provider: Add a test for generic key load and signature
Add xkey_provider sources and includes to MSVC project
doc/man-sections/management-options.rst | 8 +-
doc/management-notes.txt | 22 +-
src/openvpn/Makefile.am | 2 +
src/openvpn/cryptoapi.c | 241 ++++-
src/openvpn/error.h | 4 +-
src/openvpn/manage.h | 2 +
src/openvpn/openssl_compat.h | 8 +
src/openvpn/openvpn.vcxproj | 3 +
src/openvpn/options.c | 31 +-
src/openvpn/options.h | 2 +
src/openvpn/pkcs11_openssl.c | 151 +++
src/openvpn/ssl.c | 5 +
src/openvpn/ssl.h | 6 +
src/openvpn/ssl_mbedtls.c | 6 +
src/openvpn/ssl_openssl.c | 108 +-
src/openvpn/xkey_common.h | 158 +++
src/openvpn/xkey_helper.c | 393 +++++++
src/openvpn/xkey_provider.c | 1189 ++++++++++++++++++++++
tests/unit_tests/openvpn/Makefile.am | 16 +
tests/unit_tests/openvpn/test_provider.c | 403 ++++++++
20 files changed, 2715 insertions(+), 43 deletions(-)
create mode 100644 src/openvpn/xkey_common.h
create mode 100644 src/openvpn/xkey_helper.c
create mode 100644 src/openvpn/xkey_provider.c
create mode 100644 tests/unit_tests/openvpn/test_provider.c
--
2.30.2
next reply other threads:[~2021-12-14 16:59 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-14 16:59 selva.nair [this message]
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 01/18] A built-in provider for using external key with OpenSSL 3.0 selva.nair
2022-01-20 10:14 ` Arne Schwabe
2022-01-20 13:49 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 02/18] Implement KEYMGMT in the xkey provider selva.nair
2022-01-20 10:15 ` Arne Schwabe
2022-01-20 13:57 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 03/18] Implement SIGNATURE operations in " selva.nair
2022-01-20 10:16 ` Arne Schwabe
2022-01-20 14:08 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 04/18] Implement import of custom external keys selva.nair
2022-01-20 10:18 ` Arne Schwabe
2022-01-20 14:18 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 05/18] Initialize the xkey provider and use it in SSL context selva.nair
2022-01-20 10:42 ` Arne Schwabe
2022-01-20 14:32 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 06/18] A helper function to import private key for management-external-key selva.nair
2022-01-20 10:53 ` Arne Schwabe
2022-01-20 14:43 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 07/18] Enable signing via provider " selva.nair
2022-01-20 10:54 ` Arne Schwabe
2022-01-20 15:18 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2022-01-20 16:32 ` Selva Nair
2022-01-20 17:24 ` Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 08/18] Add a function to encode digests with PKCS1 DigestInfo wrapper selva.nair
2022-01-20 10:54 ` Arne Schwabe
2022-01-20 15:28 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 09/18] Allow management client to announce pss padding support selva.nair
2022-01-20 10:55 ` Arne Schwabe
2022-01-20 15:35 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 10/18] Respect algorithm support announced by management client selva.nair
2022-01-20 10:55 ` Arne Schwabe
2022-01-20 15:42 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 11/18] Support sending DigestSign request to " selva.nair
2022-01-20 11:11 ` Arne Schwabe
2022-01-20 16:26 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 12/18] Increase ERR_BUF_SIZE when management interface support is enabled selva.nair
2022-01-20 11:11 ` Arne Schwabe
2022-01-20 16:33 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 13/18] Add a generic key loading helper function for xkey provider selva.nair
2022-01-20 11:11 ` Arne Schwabe
2022-01-20 16:58 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 14/18] pkcs11: Interface the xkey provider with pkcs11-helper selva.nair
2022-01-20 11:12 ` Arne Schwabe
2022-01-20 17:08 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 15/18] Enable signing using CNG through xkey provider selva.nair
2022-01-20 11:21 ` Arne Schwabe
2022-01-20 17:16 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 16/18] Add a unit test for external key provider selva.nair
2022-01-20 11:22 ` Arne Schwabe
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 17/18] xkey-provider: Add a test for generic key load and signature selva.nair
2022-01-20 11:22 ` Arne Schwabe
2022-01-20 14:51 ` Gert Doering
2022-01-20 15:21 ` Selva Nair
2022-01-20 15:44 ` Gert Doering
2022-01-20 16:16 ` [Openvpn-devel] [PATCH v4 16+17/18] Add a unit test for external key provider selva.nair
2022-01-20 19:01 ` [Openvpn-devel] [PATCH applied] " Gert Doering
2021-12-14 16:59 ` [Openvpn-devel] [PATCH v3 18/18] Add xkey_provider sources and includes to MSVC project selva.nair
2022-01-20 11:23 ` Arne Schwabe
2022-01-20 14:48 ` [Openvpn-devel] [PATCH applied] " Gert Doering
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211214165928.30676-1-selva.nair@...277... \
--to=openvpn-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.