All I'm asking for is some consistency between APIs and version numbers

When I first started working with libtls [1], I thought that TLS_API designated a change in API (Application Programming Interface) so that one could work with different versions of the library without breaking the compilation process. Sadly, that wasn't the case [2], so I switched to using LIBRESSL_VERSION_NUMBER, as that seemed to regularly change with each version.

I was doing this so that my Lua wrapper could be compiled with any version of libtls. Why break things unnecessarily? And things were going fine until I hit version 2.2.1, and well …

Table: Mismatches in libtls between functions added, LIBRESSL_VERSION_NUMBER and TLS_API
Version	Functions	LIBRESSL_VERSION_NUMBER	TLS_API
------------------------------
2.1.2	* tls_accept_socket()



	0x20000000	20141031
2.1.4	* tls_load_file()


	0x20000000	20141031
2.2.0	* tls_accept_fds()


	0x20000000	20141031
2.3.0	* tls_config_insecure_noverifytime()



	0x20030000	20141031
2.3.1	* tls_peer_cert_notafter()



	0x20030001	20141031
2.4.0	* tls_config_keypair_file()



	0x2040000f	20141031
2.5.0	* tls_accept_cbs()



	0x2050000f	20160904
2.5.1	* tls_ocsp_process_response()



	0x2050100f	20170126
2.6.0	* tls_config_crl_file()



	0x2060000f	20170126
2.6.1	* tls_config_echdecurves()


	0x2060100f	20170126
2.7.0	* tls_config_session_fd()



	0x2070000f	20180210
------------------------------
Version	Functions	LIBRESSL_VERSION_NUMBER	TLS_API

I'm not asking for much. I'm not asking for slavish adherance to semantic versioning [3]. I'm just asking for a consistent way to check an API to I can support earlier versions of a library.

Don't get me wrong, I'm glad that libtls exists, and as an API, it's much nicer than the eldritch horror of OpenSSL [4].

I just wish they had updated TLS_API (or LIBRESSL_VERSION_NUMBER) consistently. Otherwise, why have them in the first place?

[1] https://man.openbsd.org/tls_init.3

[2] /boston/2018/08/06.2

[3] https://semver.org/

[4] https://www.openbsd.org/papers/bsdcan14-libressl/mgp00005.html

Gemini Mention this post

Contact the author