Beginning in PHP 8.0, openssl_* functions return or expect an object of class OpenSSLCertificate rather than resource of type OpenSSL X.509. The S/MIME support class does not as yet adhere to the new contract, and specifically only checks the resource type.
The end result is that valid, present S/MIME certificates are erroneously thought to be either invalid or not present when running with PHP 8.0.
I will submit a PR shortly to fix this, since it's a simple addition to the validation check in class-wp-smime.php.
Beginning in PHP 8.0,
openssl_*
functions return or expect an object of classOpenSSLCertificate
rather thanresource
of typeOpenSSL X.509
. The S/MIME support class does not as yet adhere to the new contract, and specifically only checks the resource type.The end result is that valid, present S/MIME certificates are erroneously thought to be either invalid or not present when running with PHP 8.0.
I will submit a PR shortly to fix this, since it's a simple addition to the validation check in
class-wp-smime.php
.