All of lore.kernel.org
 help / color / mirror / Atom feed
* [Openvpn-devel] [PATCH v3 00/18] External key provider for use with OpenSSL 3
@ 2021-12-14 16:59 selva.nair
  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
                   ` (17 more replies)
  0 siblings, 18 replies; 60+ messages in thread
From: selva.nair @ 2021-12-14 16:59 UTC (permalink / raw)
  To: openvpn-devel

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



^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2022-01-20 19:01 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-14 16:59 [Openvpn-devel] [PATCH v3 00/18] External key provider for use with OpenSSL 3 selva.nair
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

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.