[ 
https://issues.apache.org/jira/browse/WSS-99?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12569844#action_12569844
 ] 

Michael Schick commented on WSS-99:
-----------------------------------

Martin,

thanks for the hints. I have added the bcprov* now at the last position in the 
java.security files (e.g. 8) and 
added bcprov to jre/lib/ext and to axis2/webapps/WEB-INF/lib, which works now 
(axis-1.2/rampart-1.2, but bcproc-15 instead of bcprov-13).
It was blocking problem for us in the moment.

I have now time to consider your suggestion, regarding the registration at 
application level.

thanks,

Michael

> JCE provider ordering on solaris
> --------------------------------
>
>                 Key: WSS-99
>                 URL: https://issues.apache.org/jira/browse/WSS-99
>             Project: WSS4J
>          Issue Type: Bug
>         Environment: SUN JDK 1.5.0_11, Solaris 10 (SunOS 5.10), bcprov_15_136
>            Reporter: Martin Blandau
>            Assignee: Ruchith Udayanga Fernando
>            Priority: Minor
>
> Your current implementation of the JCE provider insertion at position 2 
> (WSSConfig.java) leads into the known ExceptionInInitializerError when using 
> the ws encryption on solaris.
> As Werner wrote (see below), you need the BC provider to be inserted AFTER 
> the SUN provider,  an therefore you choosed the 2. position. But on Solaris 
> with the SUN JDK, there is is an additional provider before the SUN provider 
> (SunPKCS11-Solaris sun.security.pkcs11.SunPKCS11). So your BC provider insert 
> is done at postion 2 BEFORE the SUN provider...
> So please change your code to retrieve the SUN provider position and insert 
> the BC provider afterwards.
> BTW: You rely strongly on the BounyCastle provider. Why don't you use 
> Cipher.getInstance(alg, provider) at least for the "strong" RSA operations? 
> This could help eliminate jce order problems. And yes, there is a method to 
> lookup providers with special attributes like "Keysize": 
> Security.getProviders(String filter). Please correct me if i'm on the wrong 
> way ;)
> >Well, the ordering of the JCE providers is an ongoing topic anyhow :-) .
> > 
> > - The very first entry in the list is somehow reserved by SUN to be able to
> >   do JCE verification (JAR verification). Thus we can't use that.
> > - Then we decided to register BC on the second place because
> >   sometimes with some JDKs (also IBM's) we got an error when we need
> >   the strong RSA  algorithm.
> > 
> > Let me explain:
> > 
> > some JCE (name it JCE-1) includes a RSA algorithm and this RSA 
> > supports keys up to 512 bits
> > 
> > another JCE (name it JCE-2) includes a RSA algorithm and this RSA 
> > supports keys up to 2048 bits
> > 
> > JCE-1 is on the JCE provider list at position 2, JCE-2 at position 3. 
> > Now you do a lookup for the RSA algorithm, you will get the JCE-1 RSA 
> > class. But what happens if you need RSA keys with more than 521 bits? 
> > No way out because there is no way to define the "key strength" during 
> > lookup. This happend several times in the past - WSS4J requires strong 
> > keys as defined by OASIS.
> > 
> > Some JCE provider don't support bigger keys - that was the main reason 
> > to have BC at position 2. Except for IBM's JDK this seems no problem 
> > so far. The Sun JDK, the BEA JRockit and probably others work well 
> > with this.
> > 
> > As far as WSS4J is concerned, IBM's JDK had the most problems with 
> > respect to JCE  handling.
> > 
> > Regards,
> > Werner
> > 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to