-
Bug
-
Resolution: Fixed
-
P3
-
7u60
-
b02
-
x86
-
windows_7
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8061055 | 7u79 | Weijun Wang | P3 | Resolved | Fixed | b01 |
JDK-8057379 | 7u76 | Weijun Wang | P3 | Closed | Fixed | b01 |
JDK-8166210 | 6u141 | Ramanand Patil | P3 | Resolved | Fixed | b01 |
JDK-8166411 | 6u131 | Ramanand Patil | P3 | Closed | Fixed | b13 |
"Consumer" JRE
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Client VM (build 24.60-b09, mixed mode, sharing)
"Producer" JDK
java version "1.9.0-ea"
Java(TM) SE Runtime Environment (build 1.9.0-ea-b20)
Java HotSpot(TM) Client VM (build 1.9.0-ea-b20, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]
A DESCRIPTION OF THE PROBLEM :
According to the latest security recommendations from Oracle, I have been trying to timestamp my jar files at signature time. If I sign with JDK 9, JRE 7 complains "Found unsigned entry in resource".
Complete compatibility matrix as far as I can see:
Sign | Run | Works?
With | With | Works?
7 7 Y
8 7 Y
9 7 N
7 8 Y
8 8 Y
9 8 N
7 9 Y
8 9 Y
9 9 Y
It looks like this is a bug in the signature process rather than the verification process, but it may be a problem with the verification instead?
REGRESSION. Last worked in version 8u20
ADDITIONAL REGRESSION INFORMATION:
"Consumer" JRE
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Client VM (build 24.60-b09, mixed mode, sharing)
"Producer" JDK
java version "1.9.0-ea"
Java(TM) SE Runtime Environment (build 1.9.0-ea-b20)
Java HotSpot(TM) Client VM (build 1.9.0-ea-b20, mixed mode, sharing)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create a small webstart application
2. Obtain a code signature certificate
3. Sign with JDK 9
C:\>"C:\Program Files (x86)\Java\jdk1.9.0\bin\jarsigner.exe" -storepass password -tsa https://timestamp.geotrust.com example.jar.9b20 test
4. Launch the webstart application from a machine without JDK 9 installed
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The application should launch and run normally
ACTUAL -
The application doesn't run, claiming that the JAR file contains unsigned entries
ERROR MESSAGES/STACK TRACES THAT OCCUR :
com.sun.deploy.net.JARSigningException: Found unsigned entry in resource: http://webstart.example.com/test.jar.9b20
at com.sun.javaws.security.SigningInfo.getCommonCodeSignersForJar(Unknown Source)
at com.sun.javaws.security.SigningInfo.check(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
at com.sun.javaws.Launcher.prepareResources(Unknown Source)
at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
at com.sun.javaws.Launcher.launch(Unknown Source)
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main.access$000(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Don't use timestamping or timestamp with JDK 8 or earlier
- backported by
-
JDK-8061055 Current versions of Java can't verify jars signed and timestamped with Java 9
- Resolved
-
JDK-8166210 Current versions of Java can't verify jars signed and timestamped with Java 9
- Resolved
-
JDK-8057379 Current versions of Java can't verify jars signed and timestamped with Java 9
- Closed
-
JDK-8166411 Current versions of Java can't verify jars signed and timestamped with Java 9
- Closed
- relates to
-
JDK-8038837 Add support to jarsigner for specifying timestamp hash algorithm
- Resolved
-
JDK-8179614 Test for jarsigner on verifying jars that are signed and timestamped by other JDK releases
- Resolved