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 2007/07/20 22:51:57 UTC

svn commit: r558129 - /xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java

Author: mullan
Date: Fri Jul 20 13:51:56 2007
New Revision: 558129

URL: http://svn.apache.org/viewvc?view=rev&rev=558129
Log:
Implement Reference.getTransforms(); add TransformWorker to do the work of
parsing each Transform.

Modified:
    xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java

Modified: xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java
URL: http://svn.apache.org/viewvc/xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java?view=diff&rev=558129&r1=558128&r2=558129
==============================================================================
--- xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java (original)
+++ xml/security/branches/stax_jsr105/src/com/r_bg/stax/XMLSignatureWorker.java Fri Jul 20 13:51:56 2007
@@ -21,6 +21,7 @@
 import javax.xml.crypto.dsig.Reference;
 import javax.xml.crypto.dsig.SignatureMethod;
 import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.Transform;
 import javax.xml.crypto.dsig.TransformException;
 import javax.xml.crypto.dsig.XMLSignContext;
 import javax.xml.crypto.dsig.XMLSignature;
@@ -41,6 +42,41 @@
 }
 
 
+class TransformWorker implements StaxWorker, Transform {
+	private String algorithm;
+	public StaxWorker read(XMLStreamReader reader) {
+		switch (reader.getEventType()) {
+		
+		case XMLStreamReader.START_ELEMENT: 
+			if(Constants.DS_URI.equals(reader.getNamespaceURI())) {
+			  String name=reader.getLocalName();
+			  if (name.equals("Transform") ) {
+				algorithm=reader.getAttributeValue(null,"Algorithm");
+			  }
+			}
+			break;
+		}
+		return null;
+	}
+	public StaxWatcher remove() {
+		return null;
+	}
+	public String getAlgorithm() {
+		return algorithm;
+	}
+	public AlgorithmParameterSpec getParameterSpec() {
+		return null;
+	}
+	public boolean isFeatureSupported(String feature) {
+		return false;
+	}
+	public Data transform(Data data, XMLCryptoContext context) throws TransformException {
+		throw new UnsupportedOperationException();
+	}
+	public Data transform(Data data, XMLCryptoContext context, OutputStream os) throws TransformException {
+		throw new UnsupportedOperationException();
+	}
+}
 
 
 class ReferenceWorker implements StaxWorker, Reference, DigestResultListener {	
@@ -54,6 +90,7 @@
 	DigesterOutputStream os;
 	private String id;
 	private String type;
+	List<TransformWorker> transforms=new ArrayList<TransformWorker>();
 	public StaxWorker read(XMLStreamReader reader) {
 		switch (reader.getEventType()) {
 		
@@ -79,6 +116,11 @@
 			  if (name.equals("DigestValue")) {
 				readDigestValue=true;
 			  }			
+			  if (name.equals("Transform")) {
+				TransformWorker t=new TransformWorker();
+				transforms.add(t);
+				return t;			
+			  }
 			}
 			break;
 		case XMLStreamReader.END_ELEMENT: 
@@ -116,8 +158,7 @@
 		
 	}
 	public List getTransforms() {
-		// TODO Auto-generated method stub
-		return null;
+		return transforms;
 	}
 	public DigestMethod getDigestMethod() {
 		return new DigestMethod() {