On Fri, 26 Oct 2018, [email protected] wrote:

This is the approach I personally prefer. Just make sure you document the specific error codes and for what situations they are used, as detailed as possible. This is the sort of thing that people soon might want for other SSL backends as well and then we need detailed explanations to know how to implement and use them there as well...

We have an internal review about this and the objection to this was that a client expects OpenSSL error code and it is confusing to return CURLcode into there. That is a reasonable point.

I think neither of those are suitable for CURLINFO_SSL_VERIFYRESULT. I think there should be a new set of codes:

- The CURLcode enum doesn't have the necessary values to return, plus it would
  be really weird

- We don't want to make the codes to depend on OpenSSL since other backends
  might want to have more info as well

- We don't want to risk that OpenSSL changes them in a future when OpenSSL 3.0
  comes

So counter proposal to this is that not defining new error code for CURLcode, but using a OpenSSL error code instead. There is appropriate code X509_V_ERR_HOSTNAME_MISMATCH defined for that purpose. This approach is opposite way for common code base among ssl backend, but the error code returned in the certverifyresult was already backend dependent. It seems a right choice.

Every time the choice of TLS backend shines through and forces the application to know about it or behave differently is a step in the wrong direction I think.

[options cut out]

I'm sorry, but I thought you were going to leave the return codes as-is and add values to CURLINFO_SSL_VERIFYRESULT for more detailed info - which wasn't even among these options. Now I'm deeply confused!

--

 / daniel.haxx.se
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Reply via email to