* Added support for Python 3.12 (630).
* Removed support for Python 3.7 (616).
* Switched to Python Cryptography's implementation of certificate validation, in order to simplify the validation logic and make it more reliable (638).
* Removed direct dependency to pyOpenSSL.
* Removed usages of `ssl.match_hostname()` (627).
* JSON output changes for the certificate information plugin:
* `leaf_certificate_subject_matches_hostname` has been removed because hostname validation is now directly reported in the `path_validation_results`, which makes it simpler to process them.
* Similarly, `openssl_error_string` was renamed to `validation_error`.
* Fixed crash caused by "invalid padding" and "invalid encoding" errors (632, 634).
* Better output when an SMTP EHLO is rejected ( 635).