Cannot use TPMv2 EC key with TLSv1.3; silent failure
I'm finally getting round to implementing TPM tests for OpenConnect.
OpenConnect has a set of {EC,RSA,DSA} keys in its test suite, runs ocserv and attempts to use certificate authentication.
If I import the EC key into a TPMv2 and then attempt to use it, I cannot use client certificate auth with TLSv1.3; I just get a silent failure to present a certificate, followed by authentication failure.
HSK[0x1120930]: CERTIFICATE REQUEST (13) was received. Length 70[70], frag offset 0, frag length: 70, sequence: 0
HSK[0x1120930]: parsing certificate request
EXT[0x1120930]: rcvd signature algo (4.1) RSA-SHA256
EXT[0x1120930]: rcvd signature algo (8.9) RSA-PSS-SHA256
EXT[0x1120930]: rcvd signature algo (8.4) RSA-PSS-RSAE-SHA256
EXT[0x1120930]: rcvd signature algo (4.3) ECDSA-SECP256R1-SHA256
EXT[0x1120930]: rcvd signature algo (8.7) EdDSA-Ed25519
EXT[0x1120930]: rcvd signature algo (5.1) RSA-SHA384
EXT[0x1120930]: rcvd signature algo (8.10) RSA-PSS-SHA384
EXT[0x1120930]: rcvd signature algo (8.5) RSA-PSS-RSAE-SHA384
EXT[0x1120930]: rcvd signature algo (5.3) ECDSA-SECP384R1-SHA384
EXT[0x1120930]: rcvd signature algo (8.8) EdDSA-Ed448
EXT[0x1120930]: rcvd signature algo (6.1) RSA-SHA512
EXT[0x1120930]: rcvd signature algo (8.11) RSA-PSS-SHA512
EXT[0x1120930]: rcvd signature algo (8.6) RSA-PSS-RSAE-SHA512
EXT[0x1120930]: rcvd signature algo (6.3) ECDSA-SECP521R1-SHA512
EXT[0x1120930]: rcvd signature algo (2.1) RSA-SHA1
EXT[0x1120930]: rcvd signature algo (2.3) ECDSA-SHA1
EXT[0x1120930]: rcvd signature algo (2.2) (null)
checking cert compat with RSA-SHA256
cannot use privkey of EC/ECDSA with RSA-SHA256
checking cert compat with RSA-PSS-SHA256
cannot use privkey of EC/ECDSA with RSA-PSS-SHA256
checking cert compat with RSA-PSS-RSAE-SHA256
cannot use privkey of EC/ECDSA with RSA-PSS-RSAE-SHA256
checking cert compat with ECDSA-SECP256R1-SHA256
checking cert compat with EdDSA-Ed25519
cannot use privkey of EC/ECDSA with EdDSA-Ed25519
checking cert compat with RSA-SHA384
cannot use privkey of EC/ECDSA with RSA-SHA384
checking cert compat with RSA-PSS-SHA384
cannot use privkey of EC/ECDSA with RSA-PSS-SHA384
checking cert compat with RSA-PSS-RSAE-SHA384
cannot use privkey of EC/ECDSA with RSA-PSS-RSAE-SHA384
checking cert compat with ECDSA-SECP384R1-SHA384
checking cert compat with EdDSA-Ed448
cannot use privkey of EC/ECDSA with EdDSA-Ed448
checking cert compat with RSA-SHA512
cannot use privkey of EC/ECDSA with RSA-SHA512
checking cert compat with RSA-PSS-SHA512
cannot use privkey of EC/ECDSA with RSA-PSS-SHA512
checking cert compat with RSA-PSS-RSAE-SHA512
cannot use privkey of EC/ECDSA with RSA-PSS-RSAE-SHA512
checking cert compat with ECDSA-SECP521R1-SHA512
checking cert compat with RSA-SHA1
cannot use privkey of EC/ECDSA with RSA-SHA1
checking cert compat with ECDSA-SHA1
The hash size used in signature (20) is less than the expected (32)
ASSERT: signature.c[_gnutls_session_sign_algo_enabled]:433
Signature algorithm ECDSA-SHA1 is not enabled
HSK[0x1120930]: rejecting client auth because of no suitable signature algorithm
ASSERT: tls13/certificate_request.c[_gnutls13_recv_certificate_request_int]:203
ASSERT: buffers.c[get_last_packet]:1168
READ: Got 5 bytes from 0x5
READ: read 5 bytes from 0x5