Great to hear it. A few responses inline:

> If I would add something already now to your little "requirement spec" it
would probably be:
>
> - cutomizable timeout for the OCSP response for when someone drops all the
>    packets to that server
>  - possibly an option of how to act on such time-outs (abort or continue)
>  - decent error reporting so that users can figure out what went wrong
when
>    a connection is rejected

We can take these as requirements.

> Qeustions:
>   - Are you thinking memory-only cache for the OCSP responses or on-disk
too?

The cache could be implemented as a runtime cache or also a persistent
cache. One approach for the interface could be:
 - CURLOPT_SSL_VERIFYCACHING. Pass 1 to enable runtime caching of OCSP
responses. Pass 0 to disable OCSP caching.
 - CURLOPT_SSL_VERIFYCACHING_LOAD. Pass a data structure to inject a
starting cache.
 - CURLINFO_SSL_VERIFYCACHING_GET. Get a data structure of the cache that
can be saved off.
This would allow the persistent cache to be implemented by the user
application.

Another approach for the interface could be:
 - CURLOPT_SSL_VERIFYCACHING. Pass 1 to enable runtime caching of OCSP
responses. Pass 2 to enable persistent caching. Pass 0 to disable OCSP
caching.
 - CURLOPT_SSL_VERIFYCACHING_DIR. Pass a directory to store the OCSP cache
into. Pass NULL to disable persistent caching.
This would have the OCSP persistent caching implemented within Curl.

Thoughts on whether one approach or another would be preferable for curl?

One other possibility would be full chain verification - just looping over
all the intermediate certificates as well.

With regard to your further items:

> Challenges I think you might find in your road to landing this:
>
>  - tests - I propose you try to write this with functions that can be
>    unit-tested
>  - don't bury yourself in a single TLS library's ways of doing things so
that
>    there's a chance for other TLS backends to follow suit later on
(because I
>    just presume you'll aim at doing this work for a single TLS library
first)
>  - needless to say perhaps, but everything needs to be done non-blocking
>  - For the OCSP caching, will you parse HTTP caching headers for that?
>  - Considered a CURL_LOCK_DATA_OCSP to share OCSP details between easy
>    handles?

We haven't thought about these yet, but will. As a practical matter, we will
start with OpenSSL.

>  - This is a rather big work. Try to split it up so that commits can be
>   reviewed without require super humans to do it.

We will do our best!

Thanks,
Van

Van Lindberg
OSPOCO: Open Source Program Office as a Service
v...@ospo.co | 210.201.2024 

This message and any attachments may contain privileged or confidential
information. 
All applicable rights and privileges, including attorney-client privilege,
are reserved and 
asserted. If you are not the intended recipient or believe that you have
received this 
communication in error, please do not print, copy, share, or otherwise use
the information.

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

Reply via email to