Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 380779

Summary: Error reading signed content - No algorithm found for 2.16.840.1.101.3.4.2.1
Product: [Eclipse Project] Equinox Reporter: Robert Munteanu <robert.munteanu>
Component: FrameworkAssignee: equinox.framework-inbox <equinox.framework-inbox>
Status: CLOSED DUPLICATE QA Contact:
Severity: normal    
Priority: P3 CC: irbull, pascal
Version: 3.8.0 Juno   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Robert Munteanu CLA 2012-05-27 16:16:35 EDT
What steps will reproduce the problem?
1. With a Maven + Tycho build which works on Java 6, build a signed update site + artifacts

On Java 7 the artifacts build just fine but fail to install with the below error. According to [1] "In Java 7 the default is SHA256 (previously the default was SHA1) but jars signed with SHA256 cannot be installed in Eclipse."

[1]: http://swdevadventures.blogspot.com/2011/09/signing-eclipse-plugin-with-java-7.html

-- Error Details --
Date: Sun May 27 22:56:59 EEST 2012
Message: Error reading signed content:/tmp/signatureFile8128841299948949215.jar
Severity: Error
Product: Eclipse 1.5.0.20120131-1544 (org.eclipse.epp.package.jee.product)
Plugin: org.eclipse.equinox.p2.artifact.repository
Session Data:
eclipse.buildId=I20120503-1800
java.version=1.7.0_b147-icedtea
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product

Exception Stack Trace:
java.security.NoSuchAlgorithmException: An error occurred while processing the signatures for the file: /tmp/signatureFile8128841299948949215.jar
	at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:264)
	at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verifyContent(SignatureVerifier.java:77)
	at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.verify(SignatureVerifier.java:59)
	at org.eclipse.equinox.internal.p2.artifact.repository.SignatureVerifier.close(SignatureVerifier.java:100)
	at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep.close(ProcessingStep.java:85)
	at org.eclipse.equinox.internal.p2.artifact.processors.md5.MD5Verifier.close(MD5Verifier.java:83)
	at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ProcessingStep.close(ProcessingStep.java:85)
	at org.eclipse.equinox.internal.provisional.p2.artifact.repository.processing.ZipVerifierStep.close(ZipVerifierStep.java:41)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.reportStatus(SimpleArtifactRepository.java:1177)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:591)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:723)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:287)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:267)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:208)
	at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:138)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:707)
	at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifacts(SimpleArtifactRepository.java:778)
	at org.eclipse.equinox.internal.p2.engine.DownloadManager.fetch(DownloadManager.java:112)
	at org.eclipse.equinox.internal.p2.engine.DownloadManager.start(DownloadManager.java:100)
	at org.eclipse.equinox.internal.p2.engine.phases.Collect.completePhase(Collect.java:101)
	at org.eclipse.equinox.internal.p2.engine.Phase.postPerform(Phase.java:241)
	at org.eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:98)
	at org.eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:47)
	at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:75)
	at org.eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:44)
	at org.eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:174)
	at org.eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:79)
	at org.eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:177)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.security.NoSuchAlgorithmException: No algorithm found for 2.16.840.1.101.3.4.2.1
	at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.findDigest(PKCS7Processor.java:87)
	at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.processSignerInfos(PKCS7Processor.java:315)
	at org.eclipse.osgi.internal.signedcontent.PKCS7Processor.<init>(PKCS7Processor.java:133)
	at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.processSigner(SignatureBlockProcessor.java:93)
	at org.eclipse.osgi.internal.signedcontent.SignatureBlockProcessor.process(SignatureBlockProcessor.java:59)
	at org.eclipse.osgi.internal.signedcontent.SignedBundleFile.setBundleFile(SignedBundleFile.java:47)
	at org.eclipse.osgi.internal.signedcontent.SignedBundleHook.getSignedContent(SignedBundleHook.java:256)
	... 28 more
Comment 1 Ian Bull CLA 2012-05-28 11:57:27 EDT

*** This bug has been marked as a duplicate of bug 378155 ***