Thank you for reporting this issue. As far as I can tell, it looks like
the JDK OCSP implementation has not yet been enhanced to support
RSASSA-PSS signatures.
We will keep an eye out for the bug report you filed but I think it is
still making its way through our system as I have not seen it yet.
--Sean
On 9/28/21 11:17 AM, can comert wrote:
Hello everyone,
I am trying to verify Certificate Revocation Status by using JDK and the
preferred way is the OCSP request. I came across certificates provided
by a certain Certificate Authority (Procilion) which I can not verify
the Revocation Status by using the JDK (I tried with the latest 11 LTS
and 16). Openssl on the other hand can verify the OCSP responses.
Here is the call for the openssl library:
openssl ocsp -CAfile ROOT.cer -issuer INTERMEDIATE.cer -cert
APPLICATION.cer -text -url http://ocsp.spi-cloud.com/status/
<http://ocsp.spi-cloud.com/status/>
which gives results such as:
APPLICATION.cer: good
This Update: Sep 21 15:31:32 2021 GMT
Next Update: Sep 21 16:31:32 2021 GMT
Response verify OK
With the Wireshark I can also read the OCSP Request and Response and
Response contains status SUCCESSFUL.
Java runtime throws an exception with message "Parameters required for
RSASSA-PSS signatures" during trying to verify the signature of the OCSP
Response.
CA is using a separate certificate with Subject "OCSP Signer" to sign
the OCSP Response. This certificate is delivered in the OCSP response
and the signer certificate is signed by the same root as the issuer
certificate of the certificate under test. Java seems to accept the
signer certificate but fails to verify the signature.
Here is the debug output snaps from the Java Program I wrote to test the
revocation check and executed with flag
-Djava.security.auth.debug=certpath,ocsp:
start program
...
certpath: KeySizeConstraints.permits(): RSA
certpath: Responder's certificate includes the extension
id-pkix-ocsp-nocheck.
certpath: OCSP response is signed by an Authorized Responder
...
certpath: RevocationChecker.check() java.security.SignatureException:
Parameters required for RSASSA-PSS signatures
certpath: RevocationChecker.check() preparing to failover
...CRL check also fails due to some other reasons.....
Parameters required for RSASSA-PSS signatures
end program
I have also created a Bug Report for the Open JDK with internal review
id:9071579 since I could not find any related issues on the Bug database.
Root certificate is: procilonGROUPCustomerRootCA02.cer
Intermediate certificate is: procilonGROUPCustomerCAEDIFACT02.cer
Both available under https://pki.spi-cloud.com/issuer
<https://pki.spi-cloud.com/issuer> (packed as p7b)
I can provide the example certificates and the Java program which is
basically calling CertPathValidator.validate method to validate the
revocation status if you need to reproduce the issue.
Kind Regards,
Can Cömert