Bug 576022 - [target editor] Password protected Updatesites are broken with 2021-09
Summary: [target editor] Password protected Updatesites are broken with 2021-09
Status: NEW
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.21   Edit
Hardware: PC Linux
: P3 blocker (vote)
Target Milestone: ---   Edit
Assignee: PDE-UI-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-16 04:01 EDT by Christoph Laeubrich CLA
Modified: 2023-12-20 09:27 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Laeubrich CLA 2021-09-16 04:01:41 EDT
I have a target that includes a password protected update-site. With the 2021-06 release I got prompted for the password and could save it in the secure-storage, but after upgrade to 2021-09 I only get an error now and can'T use the target file anymore.

I don't know if this is P2, PDE or Equinox, but because it is mostly visible at PDE level I open the bug here, feel free to transfer if non applicable here.

org.eclipse.equinox.security.storage.StorageException: No password provided.
	at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:311)
	at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:230)
	at org.eclipse.equinox.internal.security.storage.SecurePreferences.get(SecurePreferences.java:267)
	at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.get(SecurePreferencesWrapper.java:123)
	at org.eclipse.equinox.internal.p2.repository.Credentials.forLocation(Credentials.java:143)
	at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:80)
	at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:166)
	at org.eclipse.equinox.internal.p2.repository.CacheManager.updateCache(CacheManager.java:423)
	at org.eclipse.equinox.internal.p2.repository.CacheManager.createCacheFromFile(CacheManager.java:137)
	at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.getLocalFile(XZedSimpleMetadataRepositoryFactory.java:60)
	at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.load(XZedSimpleMetadataRepositoryFactory.java:80)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:787)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:685)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.getQueryableMetadata(P2TargetUtils.java:980)
	at org.eclipse.pde.internal.core.target.IUBundleContainer.getRootIUs(IUBundleContainer.java:766)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.getRootIUs(P2TargetUtils.java:1447)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.resolveWithPlanner(P2TargetUtils.java:1007)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.synchronize(P2TargetUtils.java:827)
	at org.eclipse.pde.internal.core.target.TargetDefinition.resolve(TargetDefinition.java:403)
	at org.eclipse.pde.internal.ui.editor.targetdefinition.TargetEditor$TargetChangedListener$1.run(TargetEditor.java:612)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Comment 1 Vikas Chandra CLA 2021-10-18 01:37:59 EDT
Looks more like P2 or equinox


@Thomas, do you know what is going on here.
Comment 2 Christoph Laeubrich CLA 2021-12-29 03:33:36 EST
After clearing the secure storage in eclipse everything has worked fine for a while. Until today where I tried to open a password protected target and got this error:

org.eclipse.equinox.security.storage.StorageException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
	at org.eclipse.equinox.internal.security.storage.SecurePreferences.get(SecurePreferences.java:275)
	at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.get(SecurePreferencesWrapper.java:123)
	at org.eclipse.equinox.internal.p2.repository.Credentials.forLocation(Credentials.java:143)
	at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:80)
	at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.download(RepositoryTransport.java:166)
	at org.eclipse.equinox.internal.p2.repository.CacheManager.updateCache(CacheManager.java:430)
	at org.eclipse.equinox.internal.p2.repository.CacheManager.createCacheFromFile(CacheManager.java:138)
	at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.getLocalFile(XZedSimpleMetadataRepositoryFactory.java:60)
	at org.eclipse.equinox.internal.p2.metadata.repository.XZedSimpleMetadataRepositoryFactory.load(XZedSimpleMetadataRepositoryFactory.java:80)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:787)
	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:685)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110)
	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.getQueryableMetadata(P2TargetUtils.java:980)
	at org.eclipse.pde.internal.core.target.IUBundleContainer.getRootIUs(IUBundleContainer.java:766)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.getRootIUs(P2TargetUtils.java:1447)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.resolveWithPlanner(P2TargetUtils.java:1007)
	at org.eclipse.pde.internal.core.target.P2TargetUtils.synchronize(P2TargetUtils.java:827)
	at org.eclipse.pde.internal.core.target.TargetDefinition.resolve(TargetDefinition.java:403)
	at org.eclipse.pde.internal.ui.editor.targetdefinition.TargetEditor$TargetChangedListener$1.run(TargetEditor.java:612)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
	at java.base/com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:975)
	at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1056)
	at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:853)
	at java.base/com.sun.crypto.provider.PBES1Core.doFinal(PBES1Core.java:432)
	at java.base/com.sun.crypto.provider.PBEWithMD5AndDESCipher.engineDoFinal(PBEWithMD5AndDESCipher.java:316)
	at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2202)
	at org.eclipse.equinox.internal.security.storage.JavaEncryption.internalDecrypt(JavaEncryption.java:197)
	at org.eclipse.equinox.internal.security.storage.JavaEncryption.decrypt(JavaEncryption.java:174)
	at org.eclipse.equinox.internal.security.storage.SecurePreferences.get(SecurePreferences.java:272)
	... 21 more
Comment 3 Christoph Laeubrich CLA 2021-12-29 03:41:06 EST
By the way I won't mind to enter my credentials again in case something gets lost/corrupted, but the current state is a bit annoying:

- first  i have to take a look at the error log to see whats going on
- then I have to go to the preferences and clear *all* secure storage items
- then I have to restart eclipse
Comment 4 Eclipse Genie CLA 2023-12-20 09:27:46 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.