thanks!
On Apr 26, 2011, at 11:45 PM, Kieran Kelleher wrote:
> This is a booby-trap waiting to happen to you all who might be using
> ERXBlowfishCrypter (or possibly other java security features) ;-) Documenting
> this here so that "Future Me" will not waste time solving this problem again.
>
> The problem was that the JRE Definition has changed kind-of-by-itself, when I
> opened the JRE Definition in Eclipse to add java src location at the end of
> last week.
>
> Steps to reproduce in OS X 10.6.7:
> 1) If you haven't already done so, update to the very latest Java 1.6 Update
> 4 for OS X 10.6 on your OS X development Mac and restart.
>
> 2) Add this code to the end of your app initialization (in your override of
> ERXApplication.didFinishLaunching() for example)
> <snip>
> classpath = ERXProperties.stringForKey("sun.boot.class.path");
>
> if (classpath != null) {
> classpath = classpath.replace(':', '\n');
> }
>
> System.out.println("sun.boot.class.path = \n" + classpath);
> </snip>
>
> 3) Run your app and check the output of that debug code in your console. If
> you have NOT edited your JRE definition in Eclipse Prefs in a long time, you
> will probably see something like this:
>
> sun.boot.class.path =
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar
> /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar
> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar
>
> 4) Now open Eclipse Preferences => Java => Installed JREs. Select your
> default JVM and click Edit. Scroll to the bottom of the JRE Definition list
> and note the presence of a bunch of automatically added
> **/Home/lib/ext/*.jar's. Click Finish.
>
> <Edit JRE.jpeg>
>
> 5) Now RESTART ECLIPSE, and run your app again and check the debug output for
> sun.boot.class.path. Note that it will have changed even though you did not
> actually Add or Remove any jars in the edit dialog. Apparently, each time you
> open the JRE Definition, it will automatically grab extra security provider
> jars inside Java Home/lib/ext, which were probably added by some Java update
> in between the time I installed Eclipse and now.
>
> For more fun try and get ERXBlowfishCrypter to work while these other jars
> (which include security providers) are in boot path. I have confirmed that it
> will fail
>
> Of interest is that some of the providers in this set of new jars are high
> priority security providers in the Properties file at:
>
> /System/Library/Frameworks/JavaVM.framework/Home/lib/security/java.security
>
> _________________________________________________
>
> Steps to Workaround:
> 1) Open the JRE Definition
>
> 2) Remove all the **/Home/lib/ext/*.jar's. Click Finish.
>
> ------------------------------------------------------------------------------
>
> In hindsight, I blame John Huss for this mess! ;-)
>
> The reason I say that is because I followed his tip about adding the java
> javadoc at the end of last week (See John's email to the list on Friday Apr
> 22, 2011 10:35am), and by my mere opening of the JRE definition to add the
> javadoc location, these extra security jars got automatically and unknowingly
> added to the bottom of the list in the JRE Definition! ... which caused me to
> experience a broken Wonder ERXBlowfishCrypter this morning!
>
>
> Regards, Kieran
>
>
> PS. The problem seems to be intermittent. If you add those jars back to the
> JRE Definition, it may or may not cause BlowfishCrypter to fail. All I can
> say is that something "fishy" is going on here with the most recent java
> updates on OS X.
>
>
> On Apr 26, 2011, at 5:22 PM, Kieran Kelleher wrote:
>
>> Ok, further investigationreveals the value of sun.boot.class.path is
>> different between my MacPro, where I can't get a blowfish crypter, and my
>> laptop, where everything works.
>>
>> The value of sun.boot.class.path is different on both machines!! Note the
>> ADDITIONAL sunpkcs11.jar, apple_provider.jar and sunjce_provider.jar in
>> non-working MacPro!
>>
>> Anyone know WHERE this is defined in OS X so I can verofy this as the
>> problem with Wonder blowfish crypter??!
>>
>> ...... (btw, I tried -Xbootclasspath as a launch arg without success)
>>
>> MacPro (Blowfish/ECB/NoPadding Crypter not available)
>> -----------------------------------------------------
>> sun boot classpath =
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar
>> /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/apple_provider.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/dnsns.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/localedata.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/sunjce_provider.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext/sunpkcs11.jar
>>
>> MBP Laptop (Blowfish/ECB/NoPadding IS available)
>> ------------------------------------------------------
>> sun boot classpath =
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar
>> /System/Library/Frameworks/JavaVM.framework/Frameworks/JavaRuntimeSupport.framework/Resources/Java/JavaRuntimeSupport.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar
>> /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar
>>
>>
>> On Apr 26, 2011, at 1:34 PM, Kieran Kelleher wrote:
>>
>>> I restarted my MacPro last night and today, I began getting this error in
>>> one of my apps on MacPro dev machine:
>>>
>>> java.security.NoSuchAlgorithmException: Cannot find any provider supporting
>>> Blowfish/ECB/NoPadding
>>> at javax.crypto.Cipher.getInstance(DashoA13*..:Unknown)
>>> at
>>> er.extensions.crypting.ERXAbstractBlowfishCrypter.createBlowfishCipher(ERXAbstractBlowfishCrypter.java:76)
>>> at
>>> er.extensions.crypting.ERXAbstractBlowfishCrypter.decryptCipher(ERXAbstractBlowfishCrypter.java:109)
>>> at
>>> er.extensions.crypting.ERXAbstractBlowfishCrypter.decrypt(ERXAbstractBlowfishCrypter.java:147)
>>> at wk.eofextensions.EncodedString.blowfishDecode(EncodedString.java:206)
>>> at
>>> wk.eofextensions.EncodedString.createInstanceFromEncodedString(EncodedString.java:57)
>>> (stack trace truncated ......)
>>>
>>> It is failing on this line in Wonder:
>>> Cipher cipher = Cipher.getInstance("Blowfish/ECB/NoPadding");
>>>
>>> The last update I did w Apr 17 (see attached screenshot of
>>> InstallHistory.plist). My laptop is identical OS X 10.6.7, Java update 4,
>>> Wonder version with exception of these updates. Yet, I know this code
>>> worked last week after those updates, so what gives?
>>>
>>> Any ideas/suggestions?
>>>
>>> Kieran
>>>
>>> PS. And yeah, I did rebuild entire workspace, quit and restart the machine
>>> already .... more than once :-(
>>>
>>> <InstallHistory.plist.jpeg>
>>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list ([email protected])
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com
>
> This email sent to [email protected]
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]