4 ms·
Yes, and BIOs are one of the parts that basically every major open source project uses: Apache, Nginx, Node.js, curl, etc -- they all use the BIO API to provid
by pquerna 12y ago
Yes, and BIOs are one of the parts that basically every major open source project uses:
Apache, Nginx, Node.js, curl, etc -- they all use the BIO API to provide TLS as a filter over their internal streaming APIs. Having personally worked on some of these projects, the current libtls API is not sufficient at all.
This isn't to say at all that OpenSSL's BIO API was great -- it could definitely use iteration all over -- and I hope libtls gets there, but it doesn't seem at all focused on realistic server workloads.
- X-Istence 12y agoThe only reason you need the BIO API is because it is the only way to push data into OpenSSL, there is no reason why this can't be done with buffers you manage. For example: http://funcptr.net/2012/04/08/openssl-as-a-filter-(or-non-blocking-openssl)/ http://funcptr.net/2012/04/08/openssl-as-a-filter-(or-non-bl... is a blog post I wrote wherein I show how to use SSL as a filter. The only reason I use a BIO is to temporarily store the same data I just got from the network and have in an std::string... it's duplication.
- quotemstr 12y agoBIO is just a thin, generic interface for reading bytes. If you want to use std::string, you can easily write an adapter.