-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Description
Sometime in 3.0.0 development, several functions (eg, OCSP_REQ_CTX_free) were moved outside of the ifdef __cplusplus / extern "C" business.
There is a comment in ocsp.h saying that these "functions are used only internally" that I find a bit perplexing. How can one possibly say that for certain? Those functions were in a public header (ocsp.h), many (if not all) are documented in the man pages (even in current master), and many (if not all) appear in libcrypto.num and are as a consequence exposed symbols from the library perspective.
The upshot of them now being outside of the extern block is that C clients code can continue to use these symbols / functions as they always had while C++ clients will fail at link time.
It's unclear what exactly the intent was here, but surely a different API for C v/s C++ clients was not the desired outcome. I would also note that if the symbols are to ultimately be removed, I would expect some intermediate deprecation step, as they were formally exposed (and still are, for C code).