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 2006/01/13 23:02:12 UTC

svn commit: r368871 [2/6] - in /xml/security/branches/jsr105_0_16/src/org: apache/xml/security/ apache/xml/security/algorithms/ apache/xml/security/algorithms/implementations/ apache/xml/security/c14n/ apache/xml/security/c14n/helper/ apache/xml/securi...

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/c14n/implementations/NameSpaceSymbTable.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/c14n/implementations/NameSpaceSymbTable.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/c14n/implementations/NameSpaceSymbTable.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/c14n/implementations/NameSpaceSymbTable.java Fri Jan 13 14:00:23 2006
@@ -16,7 +16,10 @@
  */
 package org.apache.xml.security.c14n.implementations;
 
+import java.lang.reflect.Array;
+import java.util.AbstractList;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -29,6 +32,7 @@
 import org.w3c.dom.Node;
 
 
+
 /**
  * A stack based Symble Table.
  *<br>For speed reasons all the symbols are introduced in the same map,
@@ -38,7 +42,7 @@
 public class NameSpaceSymbTable {
 	
 	/**The map betwen prefix-> entry table. */
-	HashMap symb = new HashMap();
+	SymbMap symb = new SymbMap();
 	/**The level of nameSpaces (for Inclusive visibility).*/
 	int nameSpaces=0;
 	/**The stacks for removing the definitions when doing pop.*/
@@ -64,7 +68,7 @@
 	   //List result=new ArrayList();
 	   Iterator it=symb.entrySet().iterator();
 	   while (it.hasNext()) {	   	   
-	   		NameSpaceSymbEntry n=(NameSpaceSymbEntry)((Map.Entry)it.next()).getValue();
+	   		NameSpaceSymbEntry n=(NameSpaceSymbEntry)(it.next());
 	   		//put them rendered?
 	   		if ((!n.rendered) && (n.n!=null)) {
 	   			result.add(n.n);
@@ -112,7 +116,7 @@
         int size=level.size()-1;
         Object ob= level.remove(size);
         if (ob!=null) {
-        	symb=(HashMap)ob;
+        	symb=(SymbMap)ob;
             if (size==0) {
                cloned=false;   
             } else
@@ -128,7 +132,7 @@
 		if (!cloned) {
             level.remove(level.size()-1);
             level.add(symb);
-			symb=(HashMap) symb.clone();
+			symb=(SymbMap) symb.clone();
             cloned=true;
         }
     }
@@ -141,7 +145,7 @@
      * definition.
      **/
 	public Attr getMapping(String prefix) {					
-		NameSpaceSymbEntry entry=(NameSpaceSymbEntry) symb.get(prefix);
+		NameSpaceSymbEntry entry=symb.get(prefix);
 		if (entry==null) {
 			//There is no definition for the prefix(a bug?).
 			return null;
@@ -168,7 +172,7 @@
      * @return the attr to render, null if there is no need to render
      **/
 	public Attr getMappingWithoutRendered(String prefix) {					
-		NameSpaceSymbEntry entry=(NameSpaceSymbEntry) symb.get(prefix);
+		NameSpaceSymbEntry entry= symb.get(prefix);
 		if (entry==null) {		   
 			return null;
 		}
@@ -186,7 +190,7 @@
      * @return true if there is already defined.
      **/
 	public boolean addMapping(String prefix, String uri,Attr n) {						
-		NameSpaceSymbEntry ob = (NameSpaceSymbEntry)symb.get(prefix);		
+		NameSpaceSymbEntry ob = symb.get(prefix);		
 		if ((ob!=null) && uri.equals(ob.uri)) {
 			//If we have it previously defined. Don't keep working.
 			return false;
@@ -216,7 +220,7 @@
      * @return the attr to render, null if there is no need to render
      **/
     public Node addMappingAndRender(String prefix, String uri,Attr n) {                     
-        NameSpaceSymbEntry ob = (NameSpaceSymbEntry)symb.get(prefix);
+        NameSpaceSymbEntry ob = symb.get(prefix);
         
         if ((ob!=null) && uri.equals(ob.uri)) {
             if (!ob.rendered) {                 
@@ -255,7 +259,7 @@
      * definition.     
      **/
 	public Node addMappingAndRenderXNodeSet(String prefix, String uri,Attr n,boolean outputNode) {						
-		NameSpaceSymbEntry ob = (NameSpaceSymbEntry)symb.get(prefix);
+		NameSpaceSymbEntry ob = symb.get(prefix);
 		int visibleNameSpaces=nameSpaces;		
 		if ((ob!=null) && uri.equals(ob.uri)) {
 			if (!ob.rendered) {					
@@ -321,3 +325,92 @@
     /**The attribute to include.*/
     Attr n;        
 };
+
+class SymbMap implements Cloneable{	
+	int free=23;
+	NameSpaceSymbEntry[] entries=new NameSpaceSymbEntry[free];
+	String[] keys=new String[free];
+	
+	void put(String key, NameSpaceSymbEntry value) {		
+        int index = index(key);
+		Object oldKey = keys[index];
+		keys[index] = key;
+		entries[index] = value;
+        if (oldKey==null || !oldKey.equals(key)) {	        	        
+	        if (--free == 0) {
+				free=entries.length;
+	            int newCapacity = free<<2;				
+	            rehash(newCapacity);			
+	        }
+        }
+    }
+	
+    List entrySet() {
+		List a=new ArrayList();
+		for (int i=0;i<entries.length;i++) {
+			if ((entries[i]!=null) && !("".equals(entries[i]))) {
+				a.add(entries[i]);
+			}
+		}
+		return a;		
+	}
+
+
+	protected int index(Object obj) {		
+        Object[] set = keys;
+		int length = set.length;
+		//abs of index
+        int index = (obj.hashCode() & 0x7fffffff) %  length;
+        Object cur = set[index];
+
+        if (cur == null || (cur.equals( obj))) {
+			return index;
+        }
+        do {
+			index=index==length? 0:++index;
+			cur = set[index];
+        } while (cur != null && (!cur.equals(obj)));       
+        return index;
+    }
+	 /**
+     * rehashes the map to the new capacity.
+     *
+     * @param newCapacity an <code>int</code> value
+     */
+    protected void rehash(int newCapacity) {
+        int oldCapacity = keys.length;
+        String oldKeys[] = keys;
+		NameSpaceSymbEntry oldVals[] = entries;
+
+		keys = new String[newCapacity];        
+		entries = new NameSpaceSymbEntry[newCapacity];
+
+        for (int i = oldCapacity; i-- > 0;) {
+            if(oldKeys[i] != null) {
+                String o = oldKeys[i];
+                int index = index(o);
+				keys[index] = o;
+				entries[index] = oldVals[i];
+            }
+        }
+    }
+	 NameSpaceSymbEntry get(String key) {
+	        return  entries[index(key)];
+	    }
+	 protected Object clone()  {
+		// TODO Auto-generated method stub
+		try {
+			SymbMap copy=(SymbMap) super.clone();
+			copy.entries=new NameSpaceSymbEntry[entries.length];
+			System.arraycopy(entries,0,copy.entries,0,entries.length);
+			copy.keys=new String[keys.length];
+			System.arraycopy(keys,0,copy.keys,0,keys.length);
+			
+			return copy;
+		} catch (CloneNotSupportedException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return null;
+	}
+}

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLCipher.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLCipher.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLCipher.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLCipher.java Fri Jan 13 14:00:23 2006
@@ -892,21 +892,34 @@
      * Returns an <code>EncryptedData</code> interface. Use this operation if
      * you want to have full control over the contents of the
      * <code>EncryptedData</code> structure.
-	 *
-	 * This does not change the source document in any way.
+     *
+     * this does not change the source document in any way.
      *
      * @param context the context <code>Document</code>.
      * @param element the <code>Element</code> that will be encrypted.
-     * @return
+     * @return the <code>EncryptedData</code>
      * @throws Exception
      */
-
     public EncryptedData encryptData(Document context, Element element) throws 
             /* XMLEncryption */Exception {
 	return encryptData(context, element, false);
     }
 
-    private EncryptedData encryptData(Document context, Element element, boolean contentMode) throws
+    /**
+     * Returns an <code>EncryptedData</code> interface. Use this operation if
+     * you want to have full control over the contents of the
+     * <code>EncryptedData</code> structure.
+     *
+     * this does not change the source document in any way.
+     *
+     * @param context the context <code>Document</code>.
+     * @param element the <code>Element</code> that will be encrypted.
+     * @param contentMode <code>true</code> to encrypt element's content only,
+     *    <code>false</code> otherwise
+     * @return the <code>EncryptedData</code>
+     * @throws Exception
+     */
+    public EncryptedData encryptData(Document context, Element element, boolean contentMode) throws
             /* XMLEncryption */ Exception {
 		logger.debug("Encrypting element...");
 		if (null == context)
@@ -1272,7 +1285,7 @@
 			throw new XMLEncryptionException("empty", nsae);
 		}
 
-		logger.info("Decryption of key type " + algorithm + " OK");
+		logger.debug("Decryption of key type " + algorithm + " OK");
 
 		return ret;
 
@@ -2552,30 +2565,21 @@
             ReferenceList result = new ReferenceListImpl(type);
             NodeList list = null;
             switch (type) {
-                case ReferenceList.DATA_REFERENCE:
+            case ReferenceList.DATA_REFERENCE:
                 list = element.getElementsByTagNameNS(
                     EncryptionConstants.EncryptionSpecNS, 
                     EncryptionConstants._TAG_DATAREFERENCE);
                 for (int i = 0; i < list.getLength() ; i++) {
-                    String uri = null;
-                    try {
-                        uri = new URI(
-                            ((Element) list.item(0)).getNodeValue()).toString();
-                    } catch (URI.MalformedURIException mfue) {
-                    }
+		    String uri = ((Element) list.item(i)).getAttribute("URI");
                     result.add(result.newDataReference(uri));
                 }
-                case ReferenceList.KEY_REFERENCE:
+		break;
+            case ReferenceList.KEY_REFERENCE:
                 list = element.getElementsByTagNameNS(
                     EncryptionConstants.EncryptionSpecNS, 
                     EncryptionConstants._TAG_KEYREFERENCE);
                 for (int i = 0; i < list.getLength() ; i++) {
-                    String uri = null;
-                    try {
-                        uri = new URI(
-                            ((Element) list.item(0)).getNodeValue()).toString();
-                    } catch (URI.MalformedURIException mfue) {
-                    }
+                    String uri = ((Element) list.item(i)).getAttribute("URI");
                     result.add(result.newKeyReference(uri));
                 }
             }
@@ -3249,11 +3253,13 @@
                         getReferenceList()).toElement());
                 }
                 if (null != carriedName) {
-                    result.appendChild(
-                        ElementProxy.createElementForFamily(_contextDocument, 
-                            EncryptionConstants.EncryptionSpecNS, 
-                            EncryptionConstants._TAG_CARRIEDKEYNAME).appendChild(
-                            _contextDocument.createTextNode(carriedName)));
+                    Element element = ElementProxy.createElementForFamily(
+			_contextDocument, 
+                        EncryptionConstants.EncryptionSpecNS, 
+                        EncryptionConstants._TAG_CARRIEDKEYNAME);
+                    Node node = _contextDocument.createTextNode(carriedName);
+                    element.appendChild(node);
+                    result.appendChild(element);
                 }
 
                 return (result);

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLEncryptionException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLEncryptionException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLEncryptionException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/encryption/XMLEncryptionException.java Fri Jan 13 14:00:23 2006
@@ -23,6 +23,10 @@
  */
 public class XMLEncryptionException extends XMLSecurityException {
 	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+	/**
      * 
 	 *
 	 */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException.java Fri Jan 13 14:00:23 2006
@@ -29,6 +29,11 @@
 public class AlgorithmAlreadyRegisteredException extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor AlgorithmAlreadyRegisteredException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/Base64DecodingException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/Base64DecodingException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/Base64DecodingException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/Base64DecodingException.java Fri Jan 13 14:00:23 2006
@@ -26,6 +26,11 @@
 public class Base64DecodingException extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor Base64DecodingException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/XMLSecurityException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/XMLSecurityException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/XMLSecurityException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/exceptions/XMLSecurityException.java Fri Jan 13 14:00:23 2006
@@ -60,6 +60,13 @@
  */
 public class XMLSecurityException extends Exception {
 
+	
+	
+   /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
    /** Field originalException */
    protected Exception originalException = null;
 
@@ -230,7 +237,7 @@
    /**
     * Method getOriginalException
     *
-    * @return
+    * @return the original exception
     */
    public Exception getOriginalException() {
       return originalException;

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/ContentHandlerAlreadyRegisteredException.java Fri Jan 13 14:00:23 2006
@@ -30,6 +30,11 @@
         extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor ContentHandlerAlreadyRegisteredException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/KeyInfo.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/KeyInfo.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/KeyInfo.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/KeyInfo.java Fri Jan 13 14:00:23 2006
@@ -71,7 +71,7 @@
  * for child elements of <CODE>ds:KeyInfo</CODE> for known types. </LI>
  * <LI>If the <CODE>KeyInfo</CODE> was constructed from scratch (during
  * Signature generation), the <CODE>lengthXXX()</CODE> methods return the number
- * of <CODE>XXX</CODE> objects already passed to the KeyInfo</LI>
+ * of <CODE>XXXs</CODE> objects already passed to the KeyInfo</LI>
  * </UL>
  * <BR />
  * The <CODE>addXXX()</CODE> methods are used for adding Objects of the
@@ -581,8 +581,8 @@
    /**
     * Method itemUnknownElement
     *
-    * @param i
-    * @return
+    * @param i index
+    * @return the element number of the unknown elemens
     */
    public Element itemUnknownElement(int i) {
 
@@ -1155,7 +1155,7 @@
 
    /**
     * Method lengthInternalKeyResolver
-    * @return
+    * @return the length of the key
     */
    int lengthInternalKeyResolver() {
       return this._internalKeyResolvers.size();
@@ -1164,8 +1164,8 @@
    /**
     * Method itemInternalKeyResolver
     *
-    * @param i
-    * @return
+    * @param i the index
+    * @return the KeyResolverSpi for the index.
     */
    KeyResolverSpi itemInternalKeyResolver(int i) {
       return (KeyResolverSpi) this._internalKeyResolvers.get(i);
@@ -1189,7 +1189,7 @@
    /**
     * Method getStorageResolvers
     *
-    * @return
+    * @return the internalStorages
     */
    List getStorageResolvers() {
       return this._storageResolvers;

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyName.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyName.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyName.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyName.java Fri Jan 13 14:00:23 2006
@@ -62,7 +62,7 @@
    /**
     * Method getKeyName
     *
-    * @return
+    * @return key name
     */
    public String getKeyName() {
       return this.getTextFromTextChild();

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyValue.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyValue.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyValue.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/KeyValue.java Fri Jan 13 14:00:23 2006
@@ -25,7 +25,6 @@
 import org.apache.xml.security.keys.content.keyvalues.DSAKeyValue;
 import org.apache.xml.security.keys.content.keyvalues.RSAKeyValue;
 import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.JavaUtils;
 import org.apache.xml.security.utils.SignatureElementProxy;
 import org.apache.xml.security.utils.XMLUtils;
 import org.w3c.dom.Document;
@@ -104,14 +103,12 @@
 
       XMLUtils.addReturnToElement(this._constructionElement);
 
-      if (JavaUtils.implementsInterface(
-              pk, "java.security.interfaces.DSAPublicKey")) {
+      if (pk instanceof java.security.interfaces.DSAPublicKey) {
          DSAKeyValue dsa = new DSAKeyValue(this._doc, pk);
 
          this._constructionElement.appendChild(dsa.getElement());
          XMLUtils.addReturnToElement(this._constructionElement);
-      } else if (JavaUtils.implementsInterface(
-              pk, "java.security.interfaces.RSAPublicKey")) {
+      } else if (pk instanceof java.security.interfaces.RSAPublicKey) {
          RSAKeyValue rsa = new RSAKeyValue(this._doc, pk);
 
          this._constructionElement.appendChild(rsa.getElement());
@@ -134,13 +131,13 @@
    /**
     * Method getPublicKey
     *
-    * @return
+    * @return the public key
     * @throws XMLSecurityException
     */
    public PublicKey getPublicKey() throws XMLSecurityException {
 
       
-         Element rsa = XMLUtils.selectDsNode(this._constructionElement,
+         Element rsa = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
          				Constants._TAG_RSAKEYVALUE,0);
          
          if (rsa != null) {

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/MgmtData.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/MgmtData.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/MgmtData.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/MgmtData.java Fri Jan 13 14:00:23 2006
@@ -63,7 +63,7 @@
    /**
     * Method getMgmtData
     *
-    * @return
+    * @return the managment data
     */
    public String getMgmtData() {
       return this.getTextFromTextChild();

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/RetrievalMethod.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/RetrievalMethod.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/RetrievalMethod.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/RetrievalMethod.java Fri Jan 13 14:00:23 2006
@@ -97,7 +97,7 @@
    /**
     * Method getURIAttr
     *
-    * @return
+    * @return the URI attribute
     */
    public Attr getURIAttr() {
       return this._constructionElement.getAttributeNodeNS(null, Constants._ATT_URI);
@@ -107,13 +107,13 @@
     * Method getURI
     *
     * 
-    * @return
+    * @return URI string
     */
    public String getURI() {
       return this.getURIAttr().getNodeValue();
    }
 
-   /** @return */
+   /** @return the type*/
    public String getType() {
       return this._constructionElement.getAttributeNS(null, Constants._ATT_TYPE);
    }
@@ -123,7 +123,7 @@
     *
     *
     * @throws XMLSecurityException
-    * @return
+    * @return the transforamitons
     */
    public Transforms getTransforms() throws XMLSecurityException {
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/X509Data.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/X509Data.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/X509Data.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/X509Data.java Fri Jan 13 14:00:23 2006
@@ -472,9 +472,10 @@
     *
     * @param i
     * @return the Unknown Element at i
-    * $todo$ implement
+    * TODO implement
     **/
-   public Element itemUnknownElement(int i) {      
+   public Element itemUnknownElement(int i) {
+	  log.debug("itemUnknownElement not implemented:"+i);
       return null;
    }
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/DSAKeyValue.java Fri Jan 13 14:00:23 2006
@@ -30,7 +30,6 @@
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.utils.Constants;
 import org.apache.xml.security.utils.I18n;
-import org.apache.xml.security.utils.JavaUtils;
 import org.apache.xml.security.utils.SignatureElementProxy;
 import org.apache.xml.security.utils.XMLUtils;
 import org.w3c.dom.Document;
@@ -94,8 +93,7 @@
 
       XMLUtils.addReturnToElement(this._constructionElement);
 
-      if (JavaUtils.implementsInterface(
-              key, "java.security.interfaces.DSAPublicKey")) {
+      if (key instanceof java.security.interfaces.DSAPublicKey) {
          this.addBigIntegerElement(((DSAPublicKey) key).getParams().getP(),
                                    Constants._TAG_P);
          this.addBigIntegerElement(((DSAPublicKey) key).getParams().getQ(),

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/KeyValueContent.java Fri Jan 13 14:00:23 2006
@@ -36,7 +36,7 @@
    /**
     * Method getPublicKey
     *
-    * @return
+    * @return the public key
     * @throws XMLSecurityException
     */
    public PublicKey getPublicKey()

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/keyvalues/RSAKeyValue.java Fri Jan 13 14:00:23 2006
@@ -30,7 +30,6 @@
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.utils.Constants;
 import org.apache.xml.security.utils.I18n;
-import org.apache.xml.security.utils.JavaUtils;
 import org.apache.xml.security.utils.SignatureElementProxy;
 import org.apache.xml.security.utils.XMLUtils;
 import org.w3c.dom.Document;
@@ -90,8 +89,7 @@
 
       XMLUtils.addReturnToElement(this._constructionElement);
 
-      if (JavaUtils.implementsInterface(
-              key, "java.security.interfaces.RSAPublicKey")) {
+      if (key instanceof java.security.interfaces.RSAPublicKey ) {
          this.addBigIntegerElement(((RSAPublicKey) key).getModulus(),
                                    Constants._TAG_MODULUS);
          this.addBigIntegerElement(((RSAPublicKey) key).getPublicExponent(),

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509CRL.java Fri Jan 13 14:00:23 2006
@@ -68,7 +68,7 @@
    /**
     * Method getCRLBytes
     *
-    * @return
+    * @return the CRL bytes
     * @throws XMLSecurityException
     */
    public byte[] getCRLBytes() throws XMLSecurityException {

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509Certificate.java Fri Jan 13 14:00:23 2006
@@ -26,7 +26,6 @@
 
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.JavaUtils;
 import org.apache.xml.security.utils.SignatureElementProxy;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -93,7 +92,7 @@
    /**
     * Method getCertificateBytes
     *
-    * @return
+    * @return the certificate bytes
     * @throws XMLSecurityException
     */
    public byte[] getCertificateBytes() throws XMLSecurityException {
@@ -103,7 +102,7 @@
    /**
     * Method getX509Certificate
     *
-    * @return
+    * @return the x509 certificate
     * @throws XMLSecurityException
     */
    public X509Certificate getX509Certificate() throws XMLSecurityException {
@@ -129,7 +128,7 @@
    /**
     * Method getPublicKey
     *
-    * @return
+    * @return teh publickey
     * @throws XMLSecurityException
     */
    public PublicKey getPublicKey() throws XMLSecurityException {
@@ -154,7 +153,7 @@
          XMLX509Certificate other = (XMLX509Certificate) obj;
 
          /** $todo$ or should be create X509Certificates and use the equals() from the Certs */
-         return JavaUtils.binaryCompare(other.getCertificateBytes(),
+         return java.security.MessageDigest.isEqual(other.getCertificateBytes(),
                                         this.getCertificateBytes());
       } catch (XMLSecurityException ex) {
          return false;

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509IssuerSerial.java Fri Jan 13 14:00:23 2006
@@ -114,7 +114,7 @@
     * Method getSerialNumber
     *
     *
-    * @return
+    * @return the serial number
     */
    public BigInteger getSerialNumber() {
 
@@ -131,7 +131,7 @@
     * Method getSerialNumberInteger
     *
     *
-    * @return
+    * @return the serial number as plain int
     */
    public int getSerialNumberInteger() {
       return this.getSerialNumber().intValue();
@@ -141,7 +141,7 @@
     * Method getIssuerName
     *
     *
-    * @return
+    * @return the issuer name
     */
    public String getIssuerName()  {
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SKI.java Fri Jan 13 14:00:23 2006
@@ -28,9 +28,7 @@
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.utils.Base64;
 import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.JavaUtils;
 import org.apache.xml.security.utils.SignatureElementProxy;
-import org.apache.xml.security.utils.XMLUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -104,7 +102,7 @@
    /**
     * Method getSKIBytes
     *
-    * @return
+    * @return the skibytes
     * @throws XMLSecurityException
     */
    public byte[] getSKIBytes() throws XMLSecurityException {
@@ -115,7 +113,7 @@
     * Method getSKIBytesFromCert
     *
     * @param cert
-    * @return
+    * @return sky bytes from the given certificate
     *
     * @throws XMLSecurityException
     * @see java.security.cert.X509Extension#getExtensionValue(java.lang.String)
@@ -144,8 +142,7 @@
           /**
            * Use sun.security.util.DerValue if it is present.
            */ 
-          try {
-              if (XMLUtils.classForName("sun.security.util.DerValue") != null) {
+          try {              
                   DerValue dervalue = new DerValue(derEncodedValue);
                   if (dervalue == null) {
                       throw new XMLSecurityException("certificate.noSki.null");
@@ -153,10 +150,8 @@
                   if (dervalue.tag != DerValue.tag_OctetString) {
                       throw new XMLSecurityException("certificate.noSki.notOctetString");
                   }
-                  extensionValue = dervalue.getOctetString();
-              }
+                  extensionValue = dervalue.getOctetString();              
           } catch (NoClassDefFoundError e) {
-          } catch (ClassNotFoundException e) {
           }
           
           /**
@@ -164,7 +159,7 @@
            */ 
           if (extensionValue == null) {
               try {
-                  Class clazz = XMLUtils.classForName("org.bouncycastle.asn1.DERInputStream");
+                  Class clazz = Class.forName("org.bouncycastle.asn1.DERInputStream");
                   if (clazz != null) {
                       Constructor constructor = clazz.getConstructor(new Class[]{InputStream.class});
                       InputStream is = (InputStream) constructor.newInstance(new Object[]{new ByteArrayInputStream(derEncodedValue)});
@@ -173,7 +168,7 @@
                       if (obj == null) {
                           throw new XMLSecurityException("certificate.noSki.null");
                       }
-                      Class clazz2 = XMLUtils.classForName("org.bouncycastle.asn1.ASN1OctetString");
+                      Class clazz2 = Class.forName("org.bouncycastle.asn1.ASN1OctetString");
                       if (!clazz2.isInstance(obj)) {
                           throw new XMLSecurityException("certificate.noSki.notOctetString");
                       }
@@ -214,7 +209,7 @@
       XMLX509SKI other = (XMLX509SKI) obj;
 
       try {
-         return JavaUtils.binaryCompare(other.getSKIBytes(),
+         return java.security.MessageDigest.isEqual(other.getSKIBytes(),
                                         this.getSKIBytes());
       } catch (XMLSecurityException ex) {
          return false;

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/content/x509/XMLX509SubjectName.java Fri Jan 13 14:00:23 2006
@@ -78,7 +78,7 @@
     * Method getSubjectName
     *
     *
-    * @return
+    * @return the subject name
     */
    public String getSubjectName() {
       return RFC2253Parser.normalize(this.getTextFromTextChild());

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/InvalidKeyResolverException.java Fri Jan 13 14:00:23 2006
@@ -30,6 +30,11 @@
 public class InvalidKeyResolverException extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor InvalidKeyResolverException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolver.java Fri Jan 13 14:00:23 2006
@@ -21,7 +21,8 @@
 
 import java.security.PublicKey;
 import java.security.cert.X509Certificate;
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.crypto.SecretKey;
 
@@ -47,7 +48,7 @@
    static boolean _alreadyInitialized = false;
 
    /** Field _resolverVector */
-   static Vector _resolverVector = null;
+   static List _resolverVector = null;
 
    /** Field _resolverSpi */
    protected KeyResolverSpi _resolverSpi = null;
@@ -73,7 +74,7 @@
    /**
     * Method length
     *
-    * @return
+    * @return the length of resolvers registed
     */
    public static int length() {
       return KeyResolver._resolverVector.size();
@@ -83,18 +84,14 @@
     * Method item
     *
     * @param i
-    * @return
+    * @return the number i resolver registerd
     * @throws KeyResolverException
     */
    public static KeyResolver item(int i) throws KeyResolverException {
 
-      String currentClass = (String) KeyResolver._resolverVector.elementAt(i);
-      KeyResolver resolver = null;
-
-      try {
-         resolver = new KeyResolver(currentClass);
-      } catch (Exception e) {
-         throw new KeyResolverException("utils.resolver.noClass", e);
+	   KeyResolver resolver = (KeyResolver) KeyResolver._resolverVector.get(i);
+      if (resolver==null) {
+         throw new KeyResolverException("utils.resolver.noClass");
       }
 
       return resolver;
@@ -106,7 +103,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return the instance that happends to implement the thing.
     * 
     * @throws KeyResolverException
     */
@@ -115,26 +112,22 @@
               throws KeyResolverException {
 
       for (int i = 0; i < KeyResolver._resolverVector.size(); i++) {
-         String currentClass =
-            (String) KeyResolver._resolverVector.elementAt(i);
-         KeyResolver resolver = null;
-
-         try {
-            resolver = new KeyResolver(currentClass);
-         } catch (Exception e) {
+		  KeyResolver resolver=
+            (KeyResolver) KeyResolver._resolverVector.get(i);
+
+		  if (resolver==null) {
             Object exArgs[] = {
                (((element != null)
                  && (element.getNodeType() == Node.ELEMENT_NODE))
                 ? element.getTagName()
                 : "null") };
 
-            throw new KeyResolverException("utils.resolver.noClass", exArgs, e);
+            throw new KeyResolverException("utils.resolver.noClass", exArgs);
          }
          if (log.isDebugEnabled())
-         	log.debug("check resolvability by class " + currentClass);
+         	log.debug("check resolvability by class " + resolver.getClass());
 
-         if ((resolver != null)
-                 && resolver.canResolve(element, BaseURI, storage)) {
+         if (resolver.canResolve(element, BaseURI, storage)) {
             return resolver;
          }
       }
@@ -153,7 +146,7 @@
    public static void init() {
 
       if (!KeyResolver._alreadyInitialized) {
-         KeyResolver._resolverVector = new Vector(10);
+         KeyResolver._resolverVector = new ArrayList(10);
          _alreadyInitialized = true;
       }
    }
@@ -166,9 +159,12 @@
     * {@link org.apache.xml.security.keys.KeyInfo#registerInternalKeyResolver}.
     *
     * @param className
+ * @throws InstantiationException 
+ * @throws IllegalAccessException 
+ * @throws ClassNotFoundException 
     */
-   public static void register(String className) {
-      KeyResolver._resolverVector.add(className);
+   public static void register(String className) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+      KeyResolver._resolverVector.add(new KeyResolver(className));
    }
 
    /**
@@ -197,7 +193,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return resolve from the static register an element
     * 
     * @throws KeyResolverException
     */
@@ -216,8 +212,8 @@
     *
     * @param element
     * @param BaseURI
-    * @param storage
-    * @return
+    * @param storage 
+    * @return resolved public key from the registered from the elements
     * 
     * @throws KeyResolverException
     */
@@ -233,7 +229,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return resolved X509certificate key from the registered from the elements
     * 
     * @throws KeyResolverException
     */
@@ -248,7 +244,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return resolved SecretKey key from the registered from the elements
     * @throws KeyResolverException
     */
    public SecretKey resolveSecretKey(
@@ -272,7 +268,7 @@
     * Method getProperty
     *
     * @param key
-    * @return
+    * @return the property setted for this resolver
     */
    public String getProperty(String key) {
       return this._resolverSpi.engineGetProperty(key);
@@ -281,7 +277,7 @@
    /**
     * Method getPropertyKeys
     *
-    * @return
+    * @return the properties key registerd in this resolver
     */
    public String[] getPropertyKeys() {
       return this._resolverSpi.engineGetPropertyKeys();
@@ -291,7 +287,7 @@
     * Method understandsProperty
     *
     * @param propertyToTest
-    * @return
+    * @return true if the resolver understands property propertyToTest
     */
    public boolean understandsProperty(String propertyToTest) {
       return this._resolverSpi.understandsProperty(propertyToTest);
@@ -303,7 +299,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return true if can resolve the key in the element
     */
    public boolean canResolve(Element element, String BaseURI,
                              StorageResolver storage) {
@@ -313,7 +309,7 @@
    /**
     * Method resolverClassName
     *
-    * @return
+    * @return the name of the resolver.
     */
    public String resolverClassName() {
       return this._resolverSpi.getClass().getName();

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverException.java Fri Jan 13 14:00:23 2006
@@ -33,6 +33,11 @@
 public class KeyResolverException extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor KeyResolverException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/KeyResolverSpi.java Fri Jan 13 14:00:23 2006
@@ -53,7 +53,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return true if can resolve the key in the element
     */
    abstract public boolean engineCanResolve(Element element, String BaseURI,
                                             StorageResolver storage);
@@ -64,7 +64,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return resolved public key from the registered from the element.
     * 
     * @throws KeyResolverException
     */
@@ -78,7 +78,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return resolved X509Certificate key from the registered from the elements
     *
     * @throws KeyResolverException
     */
@@ -92,7 +92,7 @@
     * @param element
     * @param BaseURI
     * @param storage
-    * @return
+    * @return resolved SecretKey key from the registered from the elements
     *
     * @throws KeyResolverException
     */
@@ -130,7 +130,7 @@
     * Method engineGetProperty
     *
     * @param key
-    * @return
+    * @return obtain the property appointed by key
     */
    public String engineGetProperty(String key) {
 
@@ -152,7 +152,7 @@
    /**
     * Method engineGetPropertyKeys
     *
-    * @return
+    * @return the keys of properties known by this resolver
     */
    public String[] engineGetPropertyKeys() {
       return new String[0];
@@ -162,7 +162,7 @@
     * Method understandsProperty
     *
     * @param propertyToTest
-    * @return
+    * @return true if understood the property
     */
    public boolean understandsProperty(String propertyToTest) {
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/implementations/EncryptedKeyResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/implementations/EncryptedKeyResolver.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/implementations/EncryptedKeyResolver.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/keyresolver/implementations/EncryptedKeyResolver.java Fri Jan 13 14:00:23 2006
@@ -86,7 +86,7 @@
 	 * @param element
 	 * @param BaseURI
 	 * @param storage
-	 * @return
+	 * @return true if can resolve the key in the element
 	 *
 	 */
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolver.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolver.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolver.java Fri Jan 13 14:00:23 2006
@@ -21,8 +21,9 @@
 
 import java.security.KeyStore;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.Vector;
+import java.util.List;
 
 import org.apache.xml.security.keys.storage.implementations.KeyStoreResolver;
 import org.apache.xml.security.keys.storage.implementations.SingleCertificateResolver;
@@ -40,7 +41,7 @@
         org.apache.commons.logging.LogFactory.getLog(StorageResolver.class.getName());
 
    /** Field _storageResolvers */
-   Vector _storageResolvers = new Vector();
+   List _storageResolvers = new ArrayList();
 
    /** Field _iterator */
    Iterator _iterator = null;
@@ -115,13 +116,13 @@
 
    /**
     * Method getIterator
-    * @return
+    * @return the iterator for the resolvers.
     *
     */
    public Iterator getIterator() {
 
       if (this._iterator == null) {
-         this._iterator = new StorageResolverIterator(this._storageResolvers);
+         this._iterator = new StorageResolverIterator(this._storageResolvers.iterator());
       }
 
       return this._iterator;
@@ -130,12 +131,12 @@
    /**
     * Method hasNext
     *
-    * @return
+    * @return true if there is more elements.
     */
    public boolean hasNext() {
 
       if (this._iterator == null) {
-         this._iterator = new StorageResolverIterator(this._storageResolvers);
+         this._iterator = new StorageResolverIterator(this._storageResolvers.iterator());
       }
 
       return this._iterator.hasNext();
@@ -144,7 +145,7 @@
    /**
     * Method next
     *
-    * @return
+    * @return the next element
     */
    public X509Certificate next() {
       return (X509Certificate) this._iterator.next();
@@ -159,7 +160,7 @@
    class StorageResolverIterator implements Iterator {
 
       /** Field _resolvers */
-      Vector _resolvers = null;
+	   Iterator _resolvers = null;
 
       /** Field _currentResolver */
       int _currentResolver = 0;
@@ -169,59 +170,18 @@
        *
        * @param resolvers
        */
-      public StorageResolverIterator(Vector resolvers) {
+      public StorageResolverIterator(Iterator resolvers) {
          this._resolvers = resolvers;
-         this._currentResolver = 0;
       }
 
       /** @inheritDoc */
       public boolean hasNext() {
-
-         if (this._resolvers == null) {
-            return false;
-         }
-
-         while (this._currentResolver < this._resolvers.size()) {
-            StorageResolverSpi current =
-               (StorageResolverSpi) this._resolvers
-                  .elementAt(this._currentResolver);
-
-            if (current == null) {
-               continue;
-            }
-
-            if (current.getIterator().hasNext()) {
-               return true;
-            } 
-            this._currentResolver++;            
-         }
-
-         return false;
+		  return _resolvers.hasNext();
       }
 
       /** @inheritDoc */
       public Object next() {
-
-         if (this._resolvers == null) {
-            return null;
-         }
-
-         while (this._currentResolver < this._resolvers.size()) {
-            StorageResolverSpi current =
-               (StorageResolverSpi) this._resolvers
-                  .elementAt(this._currentResolver);
-
-            if (current == null) {
-               continue;
-            }
-
-            if (current.getIterator().hasNext()) {
-               return current.getIterator().next();
-            }
-            this._currentResolver++;           
-         }
-
-         return null;
+		  return _resolvers.next();
       }
 
       /**

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverException.java Fri Jan 13 14:00:23 2006
@@ -29,6 +29,11 @@
 public class StorageResolverException extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor StorageResolverException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/StorageResolverSpi.java Fri Jan 13 14:00:23 2006
@@ -31,7 +31,7 @@
    /**
     * Method getIterator
     *
-    * @return
+    * @return the iterator for the storage
     */
    public abstract Iterator getIterator();
 }

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/CertsInFilesystemDirectoryResolver.java Fri Jan 13 14:00:23 2006
@@ -30,7 +30,7 @@
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.Vector;
+import java.util.List;
 
 import org.apache.xml.security.keys.storage.StorageResolverException;
 import org.apache.xml.security.keys.storage.StorageResolverSpi;
@@ -54,7 +54,7 @@
    String _merlinsCertificatesDir = null;
 
    /** Field _certs */
-   private Vector _certs = new Vector();
+   private List _certs = new ArrayList();
 
    /** Field _iterator */
    Iterator _iterator = null;
@@ -159,7 +159,7 @@
    class FilesystemIterator implements Iterator {
 
       /** Field _certs */
-      Vector _certs = null;
+      List _certs = null;
 
       /** Field _i */
       int _i;
@@ -169,7 +169,7 @@
        *
        * @param certs
        */
-      public FilesystemIterator(Vector certs) {
+      public FilesystemIterator(List certs) {
          this._certs = certs;
          this._i = 0;
       }
@@ -181,7 +181,7 @@
 
       /** @inheritDoc */
       public Object next() {
-         return this._certs.elementAt(this._i++);
+         return this._certs.get(this._i++);
       }
 
       /**

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/keys/storage/implementations/KeyStoreResolver.java Fri Jan 13 14:00:23 2006
@@ -51,7 +51,7 @@
     */
    public KeyStoreResolver(KeyStore keyStore) throws StorageResolverException {
       this._keyStore = keyStore;
-      this._iterator = new KeyStoreIterator(this, this._keyStore);
+      this._iterator = new KeyStoreIterator(this._keyStore);
    }
 
    /** @inheritDoc */
@@ -76,11 +76,10 @@
       /**
        * Constructor KeyStoreIterator
        *
-       * @param ksresolver
        * @param keyStore
        * @throws StorageResolverException
        */
-      public KeyStoreIterator(KeyStoreResolver ksresolver, KeyStore keyStore)
+      public KeyStoreIterator(KeyStore keyStore)
               throws StorageResolverException {
 
          try {

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/resource/config.xml
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/resource/config.xml?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
Binary files - no diff available.

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/resource/xmlsecurity_de.properties
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/resource/xmlsecurity_de.properties?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
Binary files - no diff available.

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/resource/xmlsecurity_en.properties
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/resource/xmlsecurity_en.properties?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
Binary files - no diff available.

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidDigestValueException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidDigestValueException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidDigestValueException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidDigestValueException.java Fri Jan 13 14:00:23 2006
@@ -27,6 +27,11 @@
 public class InvalidDigestValueException extends XMLSignatureException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor InvalidDigestValueException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidSignatureValueException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidSignatureValueException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidSignatureValueException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/InvalidSignatureValueException.java Fri Jan 13 14:00:23 2006
@@ -28,6 +28,11 @@
 public class InvalidSignatureValueException extends XMLSignatureException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor InvalidSignatureValueException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Manifest.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Manifest.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Manifest.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Manifest.java Fri Jan 13 14:00:23 2006
@@ -19,10 +19,11 @@
 
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Set;
-import java.util.Vector;
 
 import javax.xml.parsers.ParserConfigurationException;
 
@@ -57,22 +58,21 @@
         org.apache.commons.logging.LogFactory.getLog(Manifest.class.getName());
 
    /** Field _references */
-   Vector _references;
+   List _references;
    Element[] _referencesEl;
 
    /** Field verificationResults[] */
    private boolean verificationResults[] = null;
 
    /** Field _signedContents */
-   Vector _signedContents = new Vector();
+   List _signedContents = new ArrayList();
 
    /** Field _resolverProperties */
    HashMap _resolverProperties = new HashMap(10);
 
    /** Field _perManifestResolvers */
-   Vector _perManifestResolvers = new Vector();
+   List _perManifestResolvers = new ArrayList();
 
-   //CachedXPathAPIHolder cx=new CachedXPathAPIHolder();
    /**
     * Consturts {@link Manifest}
     *
@@ -84,7 +84,7 @@
 
       XMLUtils.addReturnToElement(this._constructionElement);
 
-      this._references = new Vector();
+      this._references = new ArrayList();
    }
 
    /**
@@ -116,7 +116,7 @@
       }
 
       // create Vector
-      this._references = new Vector(le);
+      this._references = new ArrayList(le);
 
       for (int i = 0; i < le; i++) {
          this._references.add(null);
@@ -178,7 +178,7 @@
          for (int i = 0; i < this.getLength(); i++) {
 
             // update the cached Reference object, the Element content is automatically updated
-            Reference currentRef = (Reference) this._references.elementAt(i);
+            Reference currentRef = (Reference) this._references.get(i);
 
             currentRef.generateDigestValue();
          }
@@ -207,9 +207,9 @@
       if (this._state == MODE_SIGN) {
 
          // we already have real objects
-         return (Reference) this._references.elementAt(i);
+         return (Reference) this._references.get(i);
       } 
-         if (this._references.elementAt(i) == null) {
+         if (this._references.get(i) == null) {
 
             // not yet constructed, so _we_ have to            
             Reference ref = new Reference(_referencesEl[i], this._baseURI, this);
@@ -217,7 +217,7 @@
             this._references.set(i, ref);
          }
 
-         return (Reference) this._references.elementAt(i);
+         return (Reference) this._references.get(i);
       
    }
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/MissingResourceFailureException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/MissingResourceFailureException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/MissingResourceFailureException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/MissingResourceFailureException.java Fri Jan 13 14:00:23 2006
@@ -31,6 +31,10 @@
  */
 public class MissingResourceFailureException extends XMLSignatureException {
 
+   /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
    /** Field uninitializedReference */
    Reference uninitializedReference = null;
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ObjectContainer.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ObjectContainer.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ObjectContainer.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ObjectContainer.java Fri Jan 13 14:00:23 2006
@@ -134,7 +134,7 @@
     * Adds childe Node
     *
     * @param node childe Node
-    * @return
+    * @return the new node in the tree.
     */
    public Node appendChild(Node node) {
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Reference.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Reference.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Reference.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/Reference.java Fri Jan 13 14:00:23 2006
@@ -19,7 +19,6 @@
 
 
 
-import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.HashSet;
@@ -40,6 +39,7 @@
 import org.apache.xml.security.utils.DigesterOutputStream;
 import org.apache.xml.security.utils.IdResolver;
 import org.apache.xml.security.utils.SignatureElementProxy;
+import org.apache.xml.security.utils.UnsyncBufferedOutputStream;
 import org.apache.xml.security.utils.XMLUtils;
 import org.apache.xml.security.utils.resolver.ResourceResolver;
 import org.apache.xml.security.utils.resolver.ResourceResolverException;
@@ -117,6 +117,12 @@
    XMLSignatureInput _transformsOutput;
    //J+
 
+private Transforms transforms;
+
+private Element digestMethodElem;
+
+private Element digestValueElement;
+
    /**
     * Constructor Reference
     *
@@ -126,8 +132,7 @@
     * @param manifest
     * @param transforms {@link Transforms} applied to data
     * @param messageDigestAlgorithm {@link MessageDigestAlgorithm Digest algorithm} which is applied to the data
-    * $todo$ should we throw XMLSignatureException if MessageDigestAlgoURI is wrong?
-    * @param cx for speed-up the xpath selections.
+    * TODO should we throw XMLSignatureException if MessageDigestAlgoURI is wrong?
     * @throws XMLSignatureException
     */
    protected Reference(Document doc, String BaseURI, String ReferenceURI, Manifest manifest, Transforms transforms, String messageDigestAlgorithm)
@@ -148,6 +153,7 @@
       // this._manifest.appendChild(this._doc.createTextNode("\n"));
 
       if (transforms != null) {
+    	  this.transforms=transforms;
          this._constructionElement.appendChild(transforms.getElement());
          XMLUtils.addReturnToElement(this._constructionElement);
       }
@@ -156,11 +162,12 @@
             MessageDigestAlgorithm.getInstance(this._doc,
                                                messageDigestAlgorithm);
 
-         this._constructionElement.appendChild(mda.getElement());
+         digestMethodElem=mda.getElement();
+         this._constructionElement.appendChild(digestMethodElem);
          XMLUtils.addReturnToElement(this._constructionElement);
       }
       {
-         Element digestValueElement =
+         digestValueElement =
             XMLUtils.createElementInSignatureSpace(this._doc,
                                                    Constants._TAG_DIGESTVALUE);
 
@@ -176,14 +183,21 @@
     * @param element <code>Reference</code> element
     * @param BaseURI the URI of the resource where the XML instance was stored
     * @param manifest is the {@link Manifest} of {@link SignedInfo} in which the Reference occurs. We need this because the Manifest has the individual {@link ResourceResolver}s whcih have been set by the user
-    * @param cx The CachedXPathAPIHolder to use in this reference.
     * @throws XMLSecurityException
     */
    protected Reference(Element element, String BaseURI, Manifest manifest)
            throws XMLSecurityException {
 
-      super(element, BaseURI);      
-
+      super(element, BaseURI);
+      this._baseURI=BaseURI;
+      Element el=XMLUtils.getNextElement(element.getFirstChild());
+      if (Constants._TAG_TRANSFORMS.equals(el.getLocalName()) && 
+    		  Constants.SignatureSpecNS.equals(el.getNamespaceURI())) {
+    	  transforms = new Transforms(el,this._baseURI);
+    	  el=XMLUtils.getNextElement(el.getNextSibling());
+      }
+      digestMethodElem = el;
+      digestValueElement =XMLUtils.getNextElement(digestMethodElem.getNextSibling());;
       this._manifest = manifest;
    }
 
@@ -197,10 +211,7 @@
     */
    public MessageDigestAlgorithm getMessageDigestAlgorithm()
            throws XMLSignatureException {
-
-      Element digestMethodElem = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-            Constants._TAG_DIGESTMETHOD,0);
-
+      
       if (digestMethodElem == null) {
          return null;
       }
@@ -292,8 +303,7 @@
     */
    public boolean typeIsReferenceToObject() {
 
-      if ((this.getType() != null)
-              && this.getType().equals(Reference.OBJECT_URI)) {
+      if (Reference.OBJECT_URI.equals(this.getType())) {
          return true;
       }
 
@@ -310,8 +320,7 @@
     */
    public boolean typeIsReferenceToManifest() {
 
-      if ((this.getType() != null)
-              && this.getType().equals(Reference.MANIFEST_URI)) {
+      if (Reference.MANIFEST_URI.equals(this.getType())) {
          return true;
       }
 
@@ -327,8 +336,7 @@
    {
 
       if (this._state == MODE_SIGN) {
-         Element digestValueElement =XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-                 Constants._TAG_DIGESTVALUE,0);
+
          Node n=digestValueElement.getFirstChild();
          while (n!=null) {
                digestValueElement.removeChild(n);
@@ -406,7 +414,7 @@
     * @return a XMLSignature with a byte array.
     * @throws ReferenceNotInitializedException
     *
-    * @deprecated use
+    * @deprecated use getContentsBeforeTransformation
     */
    public XMLSignatureInput getTransformsInput() throws ReferenceNotInitializedException   
 	{  
@@ -582,7 +590,7 @@
 
    /**
     * This method only works works after a call to verify.
-    * @return 
+    * @return the transformed output(i.e. what is going to be digested).
     */
    public XMLSignatureInput getTransformsOutput() {
       return this._transformsOutput;
@@ -591,8 +599,8 @@
    /**
     * This method returns the {@link XMLSignatureInput} which is referenced by the
     * <CODE>URI</CODE> Attribute.
-    * @param os TODO
-    * @return
+    * @param os where to write the transformation can be null.
+    * @return the element to digest
     *
     * @throws XMLSignatureException
     * @see Manifest#verifyReferences()
@@ -634,16 +642,7 @@
            throws XMLSignatureException, InvalidTransformException,
                   TransformationException, XMLSecurityException {
 
-      Element transformsElement = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-            Constants._TAG_TRANSFORMS,0);
-
-      if (transformsElement != null) {
-         Transforms transforms = new Transforms(transformsElement,
-                                                this._baseURI);
-
-         return transforms;
-      } 
-       return null;      
+      return transforms;           
    }
 
    /**
@@ -686,7 +685,7 @@
 
          mda.reset();
          DigesterOutputStream diOs=new DigesterOutputStream(mda);
-         OutputStream os=new BufferedOutputStream(diOs);
+         OutputStream os=new UnsyncBufferedOutputStream(diOs);
          XMLSignatureInput output=this.dereferenceURIandPerformTransforms(os);         
          output.updateOutputStream(os);
          os.flush();
@@ -709,9 +708,7 @@
 	* @throws XMLSecurityException if the Reference does not contain a DigestValue element
     */
    public byte[] getDigestValue() throws Base64DecodingException, XMLSecurityException {
-      Element digestValueElem = XMLUtils.selectDsNode(this._constructionElement.getFirstChild()
-            ,Constants._TAG_DIGESTVALUE,0);
-	  if (digestValueElem == null) {
+      if (digestValueElement == null) {
 		  // The required element is not in the XML!
 		  Object[] exArgs ={ Constants._TAG_DIGESTVALUE, 
 							 Constants.SignatureSpecNS };
@@ -719,7 +716,7 @@
 					"signature.Verification.NoSignatureElement", 
 					exArgs);
 	  }
-      byte[] elemDig = Base64.decode(digestValueElem);
+      byte[] elemDig = Base64.decode(digestValueElement);
       return elemDig;
    }
 

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/ReferenceNotInitializedException.java Fri Jan 13 14:00:23 2006
@@ -30,6 +30,11 @@
 public class ReferenceNotInitializedException extends XMLSignatureException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor ReferenceNotInitializedException
     *
     */

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignatureProperty.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignatureProperty.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignatureProperty.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignatureProperty.java Fri Jan 13 14:00:23 2006
@@ -121,7 +121,7 @@
     * Method appendChild
     *
     * @param node
-    * @return
+    * @return the node in this element.
     */
    public Node appendChild(Node node) {
       return this._constructionElement.appendChild(node);

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignedInfo.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignedInfo.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignedInfo.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/SignedInfo.java Fri Jan 13 14:00:23 2006
@@ -33,6 +33,7 @@
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.utils.Constants;
 import org.apache.xml.security.utils.XMLUtils;
+import org.apache.xml.security.transforms.params.InclusiveNamespaces;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -53,6 +54,10 @@
    /** Field _c14nizedBytes           */
    private byte[] _c14nizedBytes = null;
 
+private Element c14nMethod;
+
+private Element signatureMethod;
+
    /**
     * Overwrites {@link Manifest#addDocument} because it creates another Element.
     *
@@ -94,12 +99,12 @@
 
       // XMLUtils.addReturnToElement(this._constructionElement);
       {
-         Element canonElem = XMLUtils.createElementInSignatureSpace(this._doc,
+         c14nMethod = XMLUtils.createElementInSignatureSpace(this._doc,
                                 Constants._TAG_CANONICALIZATIONMETHOD);
 
-         canonElem.setAttributeNS(null, Constants._ATT_ALGORITHM,
+         c14nMethod.setAttributeNS(null, Constants._ATT_ALGORITHM,
                                 CanonicalizationMethodURI);
-         this._constructionElement.appendChild(canonElem);
+         this._constructionElement.appendChild(c14nMethod);
          XMLUtils.addReturnToElement(this._constructionElement);
       }
       {
@@ -111,8 +116,8 @@
                     SignatureMethodURI);
          }
 
-         this._constructionElement
-            .appendChild(this._signatureAlgorithm.getElement());
+         signatureMethod=this._signatureAlgorithm.getElement();
+         this._constructionElement.appendChild(signatureMethod);
          XMLUtils.addReturnToElement(this._constructionElement);
       }
    }
@@ -134,8 +139,9 @@
 
       this._signatureAlgorithm = new SignatureAlgorithm(SignatureMethodElem, null);
 
-      this._constructionElement
-         .appendChild(this._signatureAlgorithm.getElement());
+      signatureMethod=this._signatureAlgorithm.getElement();
+      this._constructionElement.appendChild(signatureMethod);
+      
       XMLUtils.addReturnToElement(this._constructionElement);
    }
 
@@ -158,6 +164,7 @@
        * and replace the original not-canonicalized ds:SignedInfo by
        * the re-parsed canonicalized one.
        */
+      c14nMethod=XMLUtils.getNextElement(element.getFirstChild());
       String c14nMethodURI=this.getCanonicalizationMethodURI();
      if (!(c14nMethodURI.equals("http://www.w3.org/TR/2001/REC-xml-c14n-20010315") ||
       		c14nMethodURI.equals("http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments") ||
@@ -193,8 +200,9 @@
          throw new XMLSecurityException("empty", ex);
       }
       }
+      signatureMethod=XMLUtils.getNextElement(c14nMethod.getNextSibling());
       this._signatureAlgorithm =
-         new SignatureAlgorithm(this.getSignatureMethodElement(),
+         new SignatureAlgorithm(signatureMethod,
                                 this.getBaseURI());
    }
 
@@ -266,8 +274,13 @@
    	if ((this._c14nizedBytes == null)) {
        Canonicalizer c14nizer =
           Canonicalizer.getInstance(this.getCanonicalizationMethodURI());
-       c14nizer.setWriter(os);       
-       c14nizer.canonicalizeSubtree(this._constructionElement);
+       c14nizer.setWriter(os);
+       String inclusiveNamespaces = this.getInclusiveNamespaces();
+
+       if(inclusiveNamespaces == null)
+        c14nizer.canonicalizeSubtree(this._constructionElement);
+       else
+        c14nizer.canonicalizeSubtree(this._constructionElement, inclusiveNamespaces);
     } else {
         try {
 			os.write(this._c14nizedBytes);
@@ -284,12 +297,8 @@
     */
    public String getCanonicalizationMethodURI() {
 
-    Element el= XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-     Constants._TAG_CANONICALIZATIONMETHOD,0);
-     if (el==null) {
-     	return null;
-     }
-     return el.getAttributeNS(null, Constants._ATT_ALGORITHM);    
+     
+     return c14nMethod.getAttributeNS(null, Constants._ATT_ALGORITHM);    
    }
 
    /**
@@ -314,8 +323,7 @@
     *
     */
    public Element getSignatureMethodElement() {
-      return XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-        Constants._TAG_SIGNATUREMETHOD,0);
+	   return signatureMethod;
    }
 
    /**
@@ -341,4 +349,33 @@
    public String getBaseLocalName() {
       return Constants._TAG_SIGNEDINFO;
    }
+
+   public String getInclusiveNamespaces() {
+
+    
+
+     String c14nMethodURI = c14nMethod.getAttributeNS(null, Constants._ATT_ALGORITHM);
+     if(!(c14nMethodURI.equals("http://www.w3.org/2001/10/xml-exc-c14n#") ||
+			c14nMethodURI.equals("http://www.w3.org/2001/10/xml-exc-c14n#WithComments"))) {
+                return null;
+            }
+
+     Element inclusiveElement = XMLUtils.getNextElement(
+    		 c14nMethod.getFirstChild());
+
+     if(inclusiveElement != null)
+     {
+         try
+         {
+             String inclusiveNamespaces = new InclusiveNamespaces(inclusiveElement,
+                         InclusiveNamespaces.ExclusiveCanonicalizationNamespace).getInclusiveNamespaces();
+             return inclusiveNamespaces;
+         }
+         catch (XMLSecurityException e)
+         {
+             return null;
+         }
+     }
+     return null;
+    }
 }

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignature.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignature.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignature.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignature.java Fri Jan 13 14:00:23 2006
@@ -18,7 +18,6 @@
 
 
 
-import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.security.Key;
@@ -38,11 +37,11 @@
 import org.apache.xml.security.transforms.Transforms;
 import org.apache.xml.security.utils.Base64;
 import org.apache.xml.security.utils.Constants;
-import org.apache.xml.security.utils.HexDump;
 import org.apache.xml.security.utils.I18n;
 import org.apache.xml.security.utils.IdResolver;
 import org.apache.xml.security.utils.SignatureElementProxy;
 import org.apache.xml.security.utils.SignerOutputStream;
+import org.apache.xml.security.utils.UnsyncBufferedOutputStream;
 import org.apache.xml.security.utils.XMLUtils;
 import org.apache.xml.security.utils.resolver.ResourceResolver;
 import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
@@ -127,6 +126,8 @@
     */
    private boolean _followManifestsDuringValidation = false;
 
+private Element signatureValueElement;
+
   /**
     * This creates a new <CODE>ds:Signature</CODE> Element and adds an empty
     * <CODE>ds:SignedInfo</CODE>.
@@ -203,7 +204,7 @@
       XMLUtils.addReturnToElement(this._constructionElement);
 
       // create an empty SignatureValue; this is filled by setSignatureValueElement
-      Element signatureValueElement =
+      signatureValueElement =
          XMLUtils.createElementInSignatureSpace(this._doc,
                                                 Constants._TAG_SIGNATUREVALUE);
 
@@ -233,7 +234,7 @@
       XMLUtils.addReturnToElement(this._constructionElement);
 
       // create an empty SignatureValue; this is filled by setSignatureValueElement
-      Element signatureValueElement =
+      signatureValueElement =
          XMLUtils.createElementInSignatureSpace(this._doc,
                                                 Constants._TAG_SIGNATUREVALUE);
 
@@ -256,8 +257,8 @@
       super(element, BaseURI);
 
       // check out SignedInfo child
-      Element signedInfoElem = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-                                  Constants._TAG_SIGNEDINFO,0);
+      Element signedInfoElem = XMLUtils.getNextElement(element.getFirstChild());// XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
+                                  //Constants._TAG_SIGNEDINFO,0);
 
       // check to see if it is there
       if (signedInfoElem == null) {
@@ -271,8 +272,8 @@
       this._signedInfo = new SignedInfo(signedInfoElem, BaseURI);
 
       // check out SignatureValue child
-      Element signatureValueElement = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-                                         Constants._TAG_SIGNATUREVALUE,0);
+      this.signatureValueElement =XMLUtils.getNextElement(signedInfoElem.getNextSibling()); //XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
+                                       //  Constants._TAG_SIGNATUREVALUE,0);
 
       // check to see if it exists
       if (signatureValueElement == null) {
@@ -283,11 +284,12 @@
       }
 
       // <element ref="ds:KeyInfo" minOccurs="0"/>
-      Element keyInfoElem =XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-                               Constants._TAG_KEYINFO,0);
+      Element keyInfoElem = XMLUtils.getNextElement(signatureValueElement.getNextSibling());//XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
+                              // Constants._TAG_KEYINFO,0);
 
       // If it exists use it, but it's not mandatory
-      if (keyInfoElem != null) {
+      if ((keyInfoElem != null) && (keyInfoElem.getNamespaceURI().equals(Constants.SignatureSpecNS) && 
+    		  keyInfoElem.getLocalName().equals(Constants._TAG_KEYINFO)) ) {
          this._keyInfo = new KeyInfo(keyInfoElem, BaseURI);
       }
    }
@@ -333,9 +335,7 @@
    public byte[] getSignatureValue() throws XMLSignatureException {
 
       try {
-         Element signatureValueElem = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-                                         Constants._TAG_SIGNATUREVALUE,0);
-         byte[] signatureValue = Base64.decode(signatureValueElem);
+    	  byte[] signatureValue = Base64.decode(signatureValueElement);
 
          return signatureValue;
       } catch (Base64DecodingException ex) {
@@ -353,10 +353,8 @@
    {
 
       if (this._state == MODE_SIGN) {
-         Element signatureValueElem = XMLUtils.selectDsNode(this._constructionElement.getFirstChild(),
-                                         Constants._TAG_SIGNATUREVALUE,0);
-         while (signatureValueElem.hasChildNodes()) {
-            signatureValueElem.removeChild(signatureValueElem.getFirstChild());
+    	 while (signatureValueElement.hasChildNodes()) {
+        	 signatureValueElement.removeChild(signatureValueElement.getFirstChild());
          }
 
          String base64codedValue = Base64.encode(bytes);
@@ -367,7 +365,7 @@
 
          Text t = this._doc.createTextNode(base64codedValue);
 
-         signatureValueElem.appendChild(t);
+         signatureValueElement.appendChild(t);
       }
    }
 
@@ -497,7 +495,7 @@
 
             // generate digest values for all References in this SignedInfo
             si.generateDigestValues();
-            OutputStream so=new BufferedOutputStream(new SignerOutputStream(sa));
+            OutputStream so=new UnsyncBufferedOutputStream(new SignerOutputStream(sa));
             try {
                 so.close();
             } catch (IOException e) {
@@ -608,7 +606,7 @@
 
          // Get the canonicalized (normalized) SignedInfo
          SignerOutputStream so=new SignerOutputStream(sa);
-         BufferedOutputStream bos=new BufferedOutputStream(so);
+         OutputStream bos=new UnsyncBufferedOutputStream(so);
          this._signedInfo.signInOctectStream(bos);
          try {
 			bos.close();
@@ -619,10 +617,6 @@
          //retrieve the byte[] from the stored signature
          byte sigBytes[] = this.getSignatureValue();
 
-         if (log.isDebugEnabled()) {
-         	log.debug("SignatureValue = "
-                   + HexDump.byteArrayToHexString(sigBytes));
-         };
 
          //Have SignatureAlgorithm sign the input bytes and compare them to the
          //bytes that were stored in the signature.

Modified: xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignatureException.java
URL: http://svn.apache.org/viewcvs/xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignatureException.java?rev=368871&r1=368870&r2=368871&view=diff
==============================================================================
--- xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignatureException.java (original)
+++ xml/security/branches/jsr105_0_16/src/org/apache/xml/security/signature/XMLSignatureException.java Fri Jan 13 14:00:23 2006
@@ -31,6 +31,11 @@
 public class XMLSignatureException extends XMLSecurityException {
 
    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 1L;
+
+   /**
     * Constructor XMLSignatureException
     *
     */