On Wed, 30 Oct 2024 18:12:30 GMT, Matthew Donovan <mdono...@openjdk.org> wrote:
>> In this PR, I removed hard-coded security providers and replaced them with a >> system property, test.provider.name. If the property is not specified, the >> provider originally used in the test is used: >> >> Cipher c = Cipher.getInstance("AES/GCM/NoPadding", >> System.getProperty("test.provider.name", "SunJCE")); > > Matthew Donovan has updated the pull request incrementally with one > additional commit since the last revision: > > included additional services in testing.md While reviewing the backport PR to jdk17, I stumbled across a potential functional incompleteness. There are a few tests which use more than one security provider. This works well when only the default providers are used. One example of such a test is `test/jdk/java/security/Signature/TestCloneable.java`. There are three providers by default: String dsaProviderName = System.getProperty("test.provider.name", "SUN"); String ecProviderName = System.getProperty("test.provider.name", "SunEC"); String rsaProviderName = System.getProperty("test.provider.name", "SunRsaSign"); If the `test.provider.name` property is specified for a test run, all three name strings are set to the same provider name. The test will only succeed if the specified provider can handle the combined set of algorithms of all three default providers. These are the tests I found to be affected. The list is **not** believed to be complete. test/jdk/java/security/Signature/TestCloneable.java test/jdk/java/security/SignedObject/Chain.java test/jdk/java/security/KexGenerator/TestGetInstance.java test/jdk/java/security/Mac/TestGetInstance.java test/jdk/java/security/auth/login/Configuration/GetInstance.java test/jdk/java/security/X509/X509CertImpl/Verify.java ------------- PR Comment: https://git.openjdk.org/jdk/pull/21551#issuecomment-2488947679