You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by mu...@apache.org on 2005/12/19 21:50:25 UTC

svn commit: r357790 - /xml/security/branches/jsr105_0_16/src/javax/xml/crypto/dsig/XMLDSigSecurity.java

Author: mullan
Date: Mon Dec 19 12:50:19 2005
New Revision: 357790

URL: http://svn.apache.org/viewcvs?rev=357790&view=rev
Log:
Avoid computing provider key until needed.

Modified:
    xml/security/branches/jsr105_0_16/src/javax/xml/crypto/dsig/XMLDSigSecurity.java

Modified: xml/security/branches/jsr105_0_16/src/javax/xml/crypto/dsig/XMLDSigSecurity.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/javax/xml/crypto/dsig/XMLDSigSecurity.java?rev=357790&r1=357789&r2=357790&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/javax/xml/crypto/dsig/XMLDSigSecurity.java (original)
+++ xml/security/branches/jsr105_0_16/src/javax/xml/crypto/dsig/XMLDSigSecurity.java Mon Dec 19 12:50:19 2005
@@ -59,7 +59,7 @@
      * either the direct engine property or a matching alias.
      */
     private static ProviderProperty getEngineClassName(String alg, 
-	Map.Entry attr, String engineType, boolean mech) 
+	Map.Entry attr, String engineType, String key, boolean mech) 
 	throws NoSuchAlgorithmException
     {
 	// get all currently installed providers
@@ -72,7 +72,7 @@
         for (int i = 0; (i < provs.length) && (!found); i++) {
             try {
                 entry = getEngineClassName
-		    (alg, attr, engineType, provs[i], mech);
+		    (alg, attr, engineType, key, provs[i], mech);
                 found = true;
             } catch (Exception e) {
 	        // do nothing, check the next provider
@@ -94,10 +94,9 @@
      * The parameter provider cannot be null.
      */
     private static ProviderProperty getEngineClassName(String alg,
-	Map.Entry attr, String engineType, Provider provider, boolean mech)
-	throws NoSuchAlgorithmException
+	Map.Entry attr, String engineType, String key, Provider provider, 
+	boolean mech) throws NoSuchAlgorithmException
     {
-	String key = engineType + "." + alg;
 	String className = getProviderProperty(key, attr, provider);
 	if (className == null) {
             // try alg as alias name
@@ -126,13 +125,7 @@
     } 
                                           
     private static boolean checkSuperclass(Class subclass, Class superclass) {
-	while(!subclass.equals(superclass)) {
-	    subclass = subclass.getSuperclass();
-	    if (subclass == null) {
-		return false;
-	    }
-	}
-	return true;
+	return superclass.isAssignableFrom(subclass);
     }
 
     /*
@@ -161,12 +154,14 @@
 	    typeClass = javax.xml.crypto.dsig.TransformService.class;
 	    m = false;
 	}
+	String key = type + "." + alg;
         if (provider == null) {
             return doGetImpl
-		(type, typeClass, getEngineClassName(alg, attr, type, m), m);
+		(type, typeClass, 
+		 getEngineClassName(alg, attr, type, key, m), m);
         } else {
             return doGetImpl
-		(type, typeClass, getEngineClassName(alg, attr, type, 
+		(type, typeClass, getEngineClassName(alg, attr, type, key,
 		 provider, m), m);
         }
     }