Thank you very much for the analysis and pointer.  The application is a
kiosk type environment and for a number of reasons, the windows dialog
PIN popping up is not workable. Its been a while since I built OpenVPN
from source, but I imagine I could roll a version of the OpenSSL.DLL
that would max out at TLS 1.2 or at least default to that ?

    ---Mike

On 4/14/2021 7:16 PM, Selva Nair wrote:
> Hi,
>
> As per the logs its requesting unpadded signature of size 256 (padding
> = 3) which is expected with OpenSSL 1.1.1 and TLS 1.2 or 1.3 as the it
> requires PSS padded signature and OpenSSL provides the padded data to
> sign with padding = NONE. My guess would be that your hardware token
> doesn't support signing pre-padded data.
>
> In case cryptoapi, we pass in the unpadded data and the padding type,
> so that both padding and signing is handled by the cryptography
> provider (token's dll through Windows).
>
> 2.4.7 is built with older OpenSSL that does not support TLS 1.3 and
> doe snot use PSS padding by default. For newer releases, there is a
> work around like use TLS1.2 and configure OpenSSL to not negotiate PSS
> padding with the server[1], but why not use cryptoapi as it works? 
>
> Selva
>
> [1] https://community.openvpn.net/openvpn/ticket/1296#comment:12
> <https://community.openvpn.net/openvpn/ticket/1296#comment:12>
>
> On Wed, Apr 14, 2021 at 6:03 PM mike tancsa <m...@sentex.net
> <mailto:m...@sentex.net>> wrote:
>
>
>     Trying out a newer version of OpenVPN community edition (latest
>     from the
>     website) on windows 10 and running into problems with a config that
>     works from 2.4.7.  If I use the token with OpenVPN 2.4.7 it works as
>     expected. On 2.5.1, I get a series of errors when using the pkcs11
>     method. The token works fine with cryptoapicert as the interface
>     to the
>     eToken.
>
>     cryptoapicert "SUBJ:officeVPN"
>
>     However, if I use
>
>     pkcs11-providers eTpkcs11.dll
>     pkcs11-id 'pkcs11:model=eToken;token=.....
>
>     (i.e the output of --show-pkcs11-ids)
>
>
>     I enter the PIN, and its the right PIN as the fail count on the token
>     doesn't go down. It just fails and asks for the PIN again.  The pkcs11
>     fail bits from the log are below. Like I said, this same token works
>     with the same config under 2.4.7 and works with 2.5.1 if I use it via
>     cryptoapcicert. Any idea where / why I am getting those 2 errors using
>     the pkcs11 method under 2.5.1 ?
>
>
>
>     2021-04-14 17:24:36 us=284747 SSL state (connect): TLSv1.3 read server
>     certificate verify
>     2021-04-14 17:24:36 us=284747 SSL state (connect): SSLv3/TLS read
>     finished
>     2021-04-14 17:24:36 us=284747 SSL state (connect): SSLv3/TLS write
>     change cipher spec
>     2021-04-14 17:24:36 us=284747 SSL state (connect): SSLv3/TLS write
>     client certificate
>     2021-04-14 17:24:36 us=284747 PKCS#11: __pkcs11h_openssl_rsa_enc
>     entered
>     - flen=256, from=00000000007968E0, to=0000000000795B10,
>     rsa=000000000075EEE0, padding=3
>     2021-04-14 17:24:36 us=284747 PKCS#11: Performing signature
>     2021-04-14 17:24:36 us=284747 PKCS#11: pkcs11h_certificate_signAny
>     entry
>     certificate=00000000007586B0, mech_type=3, source=00000000007968E0,
>     source_size=0000000000000100, target=0000000000795B10,
>     *p_target_size=0000000000000100
>     2021-04-14 17:24:36 us=284747 PKCS#11: Getting key attributes
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     __pkcs11h_certificate_getKeyAttributes entry
>     certificate=00000000007586B0
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_session_freeObjectAttributes entry
>     attrs=000000000072E140, count=4
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_session_freeObjectAttributes return
>     2021-04-14 17:24:36 us=284747 PKCS#11: Get private key attributes
>     failed: 130:'CKR_OBJECT_HANDLE_INVALID'
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_certificate_resetSession
>     entry certificate=00000000007586B0, public_only=0,
>     session_mutex_locked=1
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_getObjectById
>     entry session=0000000000759C40, class=3, id=000000000075F4A0,
>     id_size=0000000000000008, p_handle=00000000007586C8
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_validate entry
>     session=0000000000759C40
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_validate
>     session->pin_expire_time=0, time=1618435476
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_validate
>     return
>     rv=0-'CKR_OK'
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_findObjects
>     entry session=0000000000759C40, filter=000000000072E0C0,
>     filter_attrs=2,
>     p_objects=000000000072E0B8, p_objects_found=000000000072E0B4
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_findObjects
>     return rv=0-'CKR_OK', *p_objects_found=1
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_getObjectById
>     return rv=0-'CKR_OK', *p_handle=02970005
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_certificate_resetSession
>     return rv=0-'CKR_OK'
>     2021-04-14 17:24:36 us=284747 PKCS#11: Key attributes enforced by
>     provider (00000002)
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_session_freeObjectAttributes entry
>     attrs=000000000072E140, count=4
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_session_freeObjectAttributes return
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     __pkcs11h_certificate_getKeyAttributes return rv=0-'CKR_OK'
>     2021-04-14 17:24:36 us=284747 PKCS#11: pkcs11h_certificate_signRecover
>     entry certificate=00000000007586B0, mech_type=3,
>     source=00000000007968E0, source_size=0000000000000100,
>     target=0000000000795B10, *p_target_size=0000000000000100
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     __pkcs11h_certificate_doPrivateOperation entry
>     certificate=00000000007586B0, op=1, mech_type=3,
>     source=00000000007968E0, source_size=0000000000000100,
>     target=0000000000795B10, *p_target_size=0000000000000100
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_certificate_validateSession entry
>     certificate=00000000007586B0
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_validate entry
>     session=0000000000759C40
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_validate
>     session->pin_expire_time=0, time=1618435476
>     2021-04-14 17:24:36 us=284747 PKCS#11: _pkcs11h_session_validate
>     return
>     rv=0-'CKR_OK'
>     2021-04-14 17:24:36 us=284747 PKCS#11:
>     _pkcs11h_certificate_validateSession return rv=0-'CKR_OK'
>     2021-04-14 17:24:36 us=300419 PKCS#11:
>     __pkcs11h_certificate_doPrivateOperation init rv=112
>     2021-04-14 17:24:36 us=300419 PKCS#11: Private key operation failed
>     rv=112-'CKR_MECHANISM_INVALID'
>     2021-04-14 17:24:36 us=300419 PKCS#11:
>     _pkcs11h_certificate_resetSession
>     entry certificate=00000000007586B0, public_only=0,
>     session_mutex_locked=1
>     2021-04-14 17:24:36 us=300419 PKCS#11: _pkcs11h_session_login entry
>     session=0000000000759C40, is_publicOnly=0, readonly=1,
>     user_data=0000000000000000, mask_prompt=00000003
>     2021-04-14 17:24:36 us=300419 PKCS#11: _pkcs11h_session_logout entry
>     session=0000000000759C40
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_session_logout return
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_session_reset entry
>     session=0000000000759C40, user_data=0000000000000000,
>     mask_prompt=00000003, p_slot=000000000072DC3C
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_session_reset Expected
>     token manufacturerID='SafeNet, Inc.' model='eToken',
>     serialNumber='021c49f5', label='officetoken2b'
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_session_getSlotList
>     entry provider=000000000088D1A0, token_present=1,
>     pSlotList=000000000072DAE0, pulCount=000000000072DADC
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_session_getSlotList
>     return rv=0-'CKR_OK' *pulCount=1
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_token_getTokenId entry
>     p_token_id=000000000072DAE8
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_token_newTokenId entry
>     p_token_id=000000000072DA40
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_token_newTokenId
>     return
>     rv=0-'CKR_OK', *p_token_id=00000000007D5120
>     2021-04-14 17:24:36 us=316078 PKCS#11: _pkcs11h_token_getTokenId
>     return
>     rv=0-'CKR_OK', *p_token_id=00000000007D5120
>     2021-04-14 17:24:36 us=331784 PKCS#11: _pkcs11h_session_reset Found
>     token manufacturerID='SafeNet, Inc.' model='eToken',
>     serialNumber='021c49f5', label='officetoken2b'
>     2021-04-14 17:24:36 us=331784 PKCS#11: pkcs11h_token_freeTokenId entry
>     certificate_id=00000000007D5120
>     2021-04-14 17:24:36 us=331784 PKCS#11: pkcs11h_token_freeTokenId
>     return
>     2021-04-14 17:24:36 us=331784 PKCS#11: _pkcs11h_session_reset return
>     rv=0-'CKR_OK', *p_slot=0
>     2021-04-14 17:24:36 us=331784 PKCS#11: Calling pin_prompt hook for ''
>     Enter officetoken2b token Password:
>
>
>
>
>     _______________________________________________
>     Openvpn-users mailing list
>     Openvpn-users@lists.sourceforge.net
>     <mailto:Openvpn-users@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/openvpn-users
>     <https://lists.sourceforge.net/lists/listinfo/openvpn-users>
>
>
>
> _______________________________________________
> Openvpn-users mailing list
> Openvpn-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openvpn-users



_______________________________________________
Openvpn-users mailing list
Openvpn-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-users

Reply via email to