<div dir="ltr">Hello everyone,<div><br></div><div>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.</div><div><br></div><div>Here is the call for the openssl library:<br>openssl ocsp -CAfile ROOT.cer -issuer INTERMEDIATE.cer -cert APPLICATION.cer -text -url <a href="http://ocsp.spi-cloud.com/status/">http://ocsp.spi-cloud.com/status/</a><br></div><div><br></div><div>which gives results such as:<br>APPLICATION.cer: good<br> This Update: Sep 21 15:31:32 2021 GMT<br> Next Update: Sep 21 16:31:32 2021 GMT<br>Response verify OK<br></div><div><br></div><div>With the Wireshark I can also read the OCSP Request and Response and Response contains status SUCCESSFUL.</div><div><br></div><div>Java runtime throws an exception with message "Parameters required for RSASSA-PSS signatures" during trying to verify the signature of the OCSP Response. <br><br></div><div>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.</div><div>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:</div><div><br></div><div>start program<br>...<br>certpath: KeySizeConstraints.permits(): RSA<br>certpath: Responder's certificate includes the extension id-pkix-ocsp-nocheck.<br>certpath: OCSP response is signed by an Authorized Responder<br>...<br>certpath: RevocationChecker.check() java.security.SignatureException: Parameters required for RSASSA-PSS signatures<br>certpath: RevocationChecker.check() preparing to failover<br>...CRL check also fails due to some other reasons.....<br>Parameters required for RSASSA-PSS signatures<br>end program<br></div><div><br></div><div>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.<br></div><div><br></div><div>Root certificate is: procilonGROUPCustomerRootCA02.cer</div><div>Intermediate certificate is: procilonGROUPCustomerCAEDIFACT02.cer</div><div>Both available under <a href="https://pki.spi-cloud.com/issuer">https://pki.spi-cloud.com/issuer</a> (packed as p7b)</div><div><div><br></div><div>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.</div></div><div><br></div><div>Kind Regards,</div><div>Can Cömert</div><div><br></div></div>