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
*
*/