All of lore.kernel.org
 help / color / mirror / Atom feed
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



             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.