RFR: 8303410: Remove ContentSigner
Eirik Bjorsnos
duke at openjdk.org
Wed Mar 1 07:59:52 UTC 2023
On Tue, 28 Feb 2023 19:09:00 GMT, Eirik Bjorsnos <duke at openjdk.org> wrote:
> The `-altsigner` and `-altsignerpath` options in JarSigner with the underlying `ContentSigner` mechanism were deprected in Java 9, for removal in Java 16. See [JDK-8076535](https://bugs.openjdk.org/browse/JDK-8076535), [JDK-8242260](https://bugs.openjdk.org/browse/JDK-8242260).
>
> This PR suggests it's time to remove this code:
>
> - The package `com/sun/jarsigner` is removed. This contained the `ContentSigner` and `ContentSignerParameters` along with a `package-info.java` file.
> - `JarSigner.java` is updated to remove processing of the `-altsigner` and `-altsignerpath` options and the loading and processing of the custom `ContentSigner`.
> - Similarly `c.s.s.t.jarsigner.Main` is updated to remove processing and mentioning of `-altsigner` and `-altsignerpath` options.
> - Mentions of the options in Resource files in the same directory is removed
> - The `jarsigner.1` man page is updated to remove the section on the deprecated options
> - The `Spec` and `Options` tests are update to remove usage of the `-altsigner` and `-altsignerpath` options.
Suggested release note:
Release Note: Removal of the -altsigner mechanism in jarsigner
The `jarsigner` options `-altsigner` and `-altsignerpath` have been removed, along with the underlying `ContentSigner` API in the package `com.sun.jarsigner` . The mechanism was deprecated in JDK 9 and marked for removal in JDK 15.
Suggested CSR:
### Compatibility Kind:
source, binary, behavioral
### Compatibility Risk
minimal
### Compatibility Risk Description
The APIs were deprecated in JDK 9 with no known existing use. The probability that they have been used after that time is low.
### Summary
The `ContentSigner` API in `com.sun.jarsigner` and the accompanying `jarsigner` options `-altsigner` and `-altsignerpath` options have been deprecated for removal since JDK 15 and should be removed.
### Problem
This extension mechanism was deprecated in JDK 9 since it was deemed too low-level and had no known use. Removing it will reduce maintainence costs for jarsigner.
### Solution
Remove the terminally deprecated classes `com.sun.jarsigner.ContentSigner`, `com.sun.jarsigner.ContentSignerParameters`and the associated `package-info.java` file.
Remove the `-altsigner` and `-altsignerpath` options from jarsigner tool. Remove any mention of these options from the jarsigner man page.
### Specification
The classes `com.sun.jarsigner.ContentSigner` and `com.sun.jarsigner.ContentSignerParameters` are removed. Any class implementing these interfaces will fail to compile.
`jarsigner --help` no longer list the -altsigner or -altsigner options.
`jarsigner -altsigner` will fail with an 'illegal option' message:
% jarsigner -altsigner
Illegal option: -altsigner
-------------
PR: https://git.openjdk.org/jdk/pull/12791
More information about the security-dev
mailing list