Author: kiwiwings
Date: Sat Sep 27 17:49:09 2014
New Revision: 1627985

URL: http://svn.apache.org/r1627985
Log:
configure namespaces via signatureconfig

Modified:
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/EnvelopedSignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/KeyInfoSignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/Office2010SignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/SignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESSignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
    
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java
 Sat Sep 27 17:49:09 2014
@@ -17,11 +17,16 @@
 
 package org.apache.poi.poifs.crypt.dsig;
 
+import static 
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.OO_DIGSIG_NS;
+import static 
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.XADES_132_NS;
+
 import java.security.PrivateKey;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 import javax.xml.crypto.URIDereferencer;
@@ -73,7 +78,6 @@ public class SignatureConfig {
      */
     private SignaturePolicyService signaturePolicyService;
     private URIDereferencer uriDereferencer = new OOXMLURIDereferencer();
-    private String signatureNamespacePrefix;
     private String canonicalizationMethod = CanonicalizationMethod.INCLUSIVE;
     
     private boolean includeEntireCertificateChain = true;
@@ -130,6 +134,12 @@ public class SignatureConfig {
      */
     EventListener signCreationListener = null;
 
+    /**
+     * Map of namespace uris to prefix
+     * If a mapping is specified, the corresponding elements will be prefixed
+     */
+    Map<String,String> namespacePrefixes = new HashMap<String,String>();
+    
     protected void init(boolean onlyValidation) {
         if (uriDereferencer == null) {
             throw new EncryptedDocumentException("uriDereferencer is null");
@@ -140,6 +150,15 @@ public class SignatureConfig {
         if (uriDereferencer instanceof SignatureConfigurable) {
             ((SignatureConfigurable)uriDereferencer).setSignatureConfig(this);
         }
+        if (namespacePrefixes.isEmpty()) {
+            /*
+             * OOo doesn't like ds namespaces so per default prefixing is off.
+             */
+            // namespacePrefixes.put(XML_DIGSIG_NS, "");
+            namespacePrefixes.put(OO_DIGSIG_NS, "mdssi");
+            namespacePrefixes.put(XADES_132_NS, "xd");
+        }
+        
         if (onlyValidation) return;
 
         if (signCreationListener == null) {
@@ -149,7 +168,6 @@ public class SignatureConfig {
         if (signCreationListener instanceof SignatureConfigurable) {
             
((SignatureConfigurable)signCreationListener).setSignatureConfig(this);
         }
-
         
         if (tspService != null) {
             tspService.setSignatureConfig(this);
@@ -263,12 +281,6 @@ public class SignatureConfig {
     public void setSignatureDescription(String signatureDescription) {
         this.signatureDescription = signatureDescription;
     }
-    public String getSignatureNamespacePrefix() {
-        return signatureNamespacePrefix;
-    }
-    public void setSignatureNamespacePrefix(String signatureNamespacePrefix) {
-        this.signatureNamespacePrefix = signatureNamespacePrefix;
-    }
     public String getCanonicalizationMethod() {
         return canonicalizationMethod;
     }
@@ -403,4 +415,10 @@ public class SignatureConfig {
     public void setSignCreationListener(EventListener signCreationListener) {
         this.signCreationListener = signCreationListener;
     }
+    public Map<String, String> getNamespacePrefixes() {
+        return namespacePrefixes;
+    }
+    public void setNamespacePrefixes(Map<String, String> namespacePrefixes) {
+        this.namespacePrefixes = namespacePrefixes;
+    }
 }

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java
 Sat Sep 27 17:49:09 2014
@@ -24,6 +24,9 @@
 
 package org.apache.poi.poifs.crypt.dsig;
 
+import static 
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.OO_DIGSIG_NS;
+import static 
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.XML_DIGSIG_NS;
+import static org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.XML_NS;
 import static 
org.apache.xml.security.signature.XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160;
 import static 
org.apache.xml.security.signature.XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1;
 import static 
org.apache.xml.security.signature.XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256;
@@ -80,7 +83,6 @@ import org.apache.jcp.xml.dsig.internal.
 import org.apache.poi.EncryptedDocumentException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.openxml4j.opc.PackageNamespaces;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackagePartName;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
@@ -115,9 +117,6 @@ import org.xml.sax.SAXException;
 
 public class SignatureInfo implements SignatureConfigurable {
 
-    public static final String XmlNS = "http://www.w3.org/2000/xmlns/";;
-    public static final String XmlDSigNS = XMLSignature.XMLNS;
-    
     // see https://www.ietf.org/rfc/rfc3110.txt
     // RSA/SHA1 SIG Resource Records
     public static final byte[] SHA1_DIGEST_INFO_PREFIX = new byte[]
@@ -222,13 +221,14 @@ public class SignatureInfo implements Si
                         
                         if (packageId.equals(el.getAttribute("Id"))) {
                             
target.get().removeEventListener("DOMSubtreeModified", this, false);
-                            el.setAttributeNS(XmlNS, "xmlns:mdssi", 
PackageNamespaces.DIGITAL_SIGNATURE);
+                            el.setAttributeNS(XML_NS, "xmlns:mdssi", 
OO_DIGSIG_NS);
                             
target.get().addEventListener("DOMSubtreeModified", this, false);
                         }
                     }
                 }
             }
         }
+        
         public void setSignatureConfig(SignatureConfig signatureConfig) {
             this.signatureConfig = signatureConfig;
         }
@@ -439,18 +439,11 @@ public class SignatureInfo implements Si
             xmlSignContext.setURIDereferencer(uriDereferencer);
         }
 
-        xmlSignContext.putNamespacePrefix(
-                
"http://schemas.openxmlformats.org/package/2006/digital-signature";,
-                "mdssi");
-        
-        String sigNsPrefix = signatureConfig.getSignatureNamespacePrefix();
-        if (sigNsPrefix != null) {
-            /*
-             * OOo doesn't like ds namespaces so per default prefixing is off.
-             */
-            xmlSignContext.putNamespacePrefix(XmlDSigNS, sigNsPrefix);
+        for (Map.Entry<String,String> me : 
signatureConfig.getNamespacePrefixes().entrySet()) {
+            xmlSignContext.putNamespacePrefix(me.getKey(), me.getValue());
         }
-
+        
xmlSignContext.setDefaultNamespacePrefix(signatureConfig.getNamespacePrefixes().get(XML_DIGSIG_NS));
+        
         XMLSignatureFactory signatureFactory = 
SignatureInfo.getSignatureFactory();
 
         /*
@@ -500,8 +493,6 @@ public class SignatureInfo implements Si
         /*
          * ds:Signature Marshalling.
          */
-        
xmlSignContext.setDefaultNamespacePrefix(signatureConfig.getSignatureNamespacePrefix());
-        // 
xmlSignContext.putNamespacePrefix(PackageNamespaces.DIGITAL_SIGNATURE, "mdssi");
         xmlSignature.sign(xmlSignContext);
 
         /*
@@ -550,8 +541,8 @@ public class SignatureInfo implements Si
          * usage.
          */
 
-        MessageDigest jcaMessageDigest = 
CryptoFunctions.getMessageDigest(signatureConfig.getDigestAlgo());
-        byte[] digestValue = jcaMessageDigest.digest(octets);
+        MessageDigest md = 
CryptoFunctions.getMessageDigest(signatureConfig.getDigestAlgo());
+        byte[] digestValue = md.digest(octets);
         
         
         String description = signatureConfig.getSignatureDescription();
@@ -577,7 +568,7 @@ public class SignatureInfo implements Si
         /*
          * Insert signature value into the ds:SignatureValue element
          */
-        NodeList sigValNl = document.getElementsByTagNameNS(XmlDSigNS, 
"SignatureValue");
+        NodeList sigValNl = document.getElementsByTagNameNS(XML_DIGSIG_NS, 
"SignatureValue");
         if (sigValNl.getLength() != 1) {
             throw new RuntimeException("preSign has to be called before 
postSign");
         }
@@ -596,12 +587,9 @@ public class SignatureInfo implements Si
     protected void writeDocument(Document document) throws IOException, 
XmlException {
         XmlOptions xo = new XmlOptions();
         Map<String,String> namespaceMap = new HashMap<String,String>();
-        for (SignatureFacet sf : signatureConfig.getSignatureFacets()) {
-            Map<String,String> sfm = sf.getNamespacePrefixMapping();
-            if (sfm != null) {
-                namespaceMap.putAll(sfm);
-            }
-        }
+        for(Map.Entry<String,String> entry : 
signatureConfig.getNamespacePrefixes().entrySet()){
+            namespaceMap.put(entry.getValue(), entry.getKey());
+        }        
         xo.setSaveSuggestedPrefixes(namespaceMap);
         xo.setUseDefaultNamespace();
 
@@ -651,7 +639,7 @@ public class SignatureInfo implements Si
     }
     
     @SuppressWarnings("unchecked")
-    public static <T> List<T> safe(List<T> other) {
+    private static <T> List<T> safe(List<T> other) {
         return other == null ? Collections.EMPTY_LIST : other;
     }
 }

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/EnvelopedSignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/EnvelopedSignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/EnvelopedSignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/EnvelopedSignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -5,7 +5,6 @@ import java.security.NoSuchAlgorithmExce
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import javax.xml.crypto.dsig.CanonicalizationMethod;
 import javax.xml.crypto.dsig.DigestMethod;
@@ -60,9 +59,4 @@ public class EnvelopedSignatureFacet imp
 
         references.add(reference);
     }
-
-    @Override
-    public Map<String,String> getNamespacePrefixMapping() {
-        return null;
-    }
 }

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/KeyInfoSignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/KeyInfoSignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/KeyInfoSignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/KeyInfoSignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -24,17 +24,13 @@
 
 package org.apache.poi.poifs.crypt.dsig.facets;
 
-import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.XmlDSigNS;
-
 import java.security.InvalidAlgorithmParameterException;
 import java.security.Key;
 import java.security.KeyException;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.xml.crypto.MarshalException;
 import javax.xml.crypto.dom.DOMCryptoContext;
@@ -79,7 +75,7 @@ public class KeyInfoSignatureFacet imple
     throws MarshalException {
         LOG.log(POILogger.DEBUG, "postSign");
 
-        NodeList nl = document.getElementsByTagNameNS(XmlDSigNS, "Object");
+        NodeList nl = document.getElementsByTagNameNS(XML_DIGSIG_NS, "Object");
         
         /*
          * Make sure we insert right after the ds:SignatureValue element, just
@@ -144,14 +140,14 @@ public class KeyInfoSignatureFacet imple
         Element n = document.getDocumentElement();
         DOMSignContext domSignContext = new DOMSignContext(key, n, 
nextSibling);
         DOMCryptoContext domCryptoContext = domSignContext;
-        domCryptoContext.putNamespacePrefix(XmlDSigNS, "xd");
+        domCryptoContext.putNamespacePrefix(XML_DIGSIG_NS, "xd");
         DOMStructure domStructure = new DOMStructure(n);
         // how to set nextSibling??? - marshal is ignoring nextSibling in 
DOMSignContext
         domKeyInfo.marshal(domStructure, domCryptoContext);
         
         // move keyinfo into the right place
         if (nextSibling != null) {
-            NodeList kiNl = document.getElementsByTagNameNS(XmlDSigNS, 
"KeyInfo");
+            NodeList kiNl = document.getElementsByTagNameNS(XML_DIGSIG_NS, 
"KeyInfo");
             if (kiNl.getLength() != 1) {
                 throw new RuntimeException("KeyInfo wasn't set");
             }
@@ -168,11 +164,4 @@ public class KeyInfoSignatureFacet imple
     ) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException {
         // empty
     }
-
-    public Map<String,String> getNamespacePrefixMapping() {
-        Map<String,String> map = new HashMap<String,String>();
-        // map.put("xd", XmlDSigNS);
-        return map;
-    }
-
 }
\ No newline at end of file

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -24,8 +24,6 @@
 
 package org.apache.poi.poifs.crypt.dsig.facets;
 
-import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.XmlDSigNS;
-import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.XmlNS;
 import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.setPrefix;
 
 import java.io.IOException;
@@ -37,10 +35,8 @@ import java.security.cert.X509Certificat
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
 
@@ -60,7 +56,6 @@ import javax.xml.crypto.dsig.spec.Transf
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.opc.ContentTypes;
 import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.openxml4j.opc.PackageNamespaces;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackagePartName;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
@@ -91,9 +86,6 @@ public class OOXMLSignatureFacet impleme
 
     private static final POILogger LOG = 
POILogFactory.getLogger(OOXMLSignatureFacet.class);
 
-    public static final String OOXML_DIGSIG_NS = 
"http://schemas.openxmlformats.org/package/2006/digital-signature";;
-    public static final String OFFICE_DIGSIG_NS = 
"http://schemas.microsoft.com/office/2006/digsig";;
-
     private SignatureConfig signatureConfig;
 
     public void setSignatureConfig(SignatureConfig signatureConfig) {
@@ -133,7 +125,7 @@ public class OOXMLSignatureFacet impleme
 
         DigestMethod digestMethod = 
signatureFactory.newDigestMethod(signatureConfig.getDigestAlgo().xmlSignUri, 
null);
         Reference reference = signatureFactory.newReference
-            ("#" + objectId, digestMethod, null, XmlDSigNS+"Object", null);
+            ("#" + objectId, digestMethod, null, XML_DIGSIG_NS+"Object", null);
         references.add(reference);
     }
 
@@ -238,7 +230,7 @@ public class OOXMLSignatureFacet impleme
 
         // TODO: find better method to have xmlbeans + export the prefix
         Element n = (Element)document.importNode(ctTime.getDomNode(),true);
-        setPrefix(n, PackageNamespaces.DIGITAL_SIGNATURE, "mdssi");
+        setPrefix(n, OO_DIGSIG_NS, "mdssi");
         
         List<XMLStructure> signatureTimeContent = new 
ArrayList<XMLStructure>();
         signatureTimeContent.add(new DOMStructure(n));
@@ -264,7 +256,7 @@ public class OOXMLSignatureFacet impleme
         CTSignatureInfoV1 ctSigV1 = sigV1.addNewSignatureInfoV1();
         
ctSigV1.setManifestHashAlgorithm(signatureConfig.getDigestAlgo().xmlSignUri);
         Element n = (Element)document.importNode(ctSigV1.getDomNode(), true);
-        n.setAttributeNS(XmlNS, "xmlns", 
"http://schemas.microsoft.com/office/2006/digsig";);
+        n.setAttributeNS(XML_NS, "xmlns", 
"http://schemas.microsoft.com/office/2006/digsig";);
         
         List<XMLStructure> signatureInfoContent = new 
ArrayList<XMLStructure>();
         signatureInfoContent.add(new DOMStructure(n));
@@ -283,7 +275,7 @@ public class OOXMLSignatureFacet impleme
 
         DigestMethod digestMethod = 
signatureFactory.newDigestMethod(signatureConfig.getDigestAlgo().xmlSignUri, 
null);
         Reference reference = signatureFactory.newReference
-            ("#" + objectId, digestMethod, null, XmlDSigNS+"Object", null);
+            ("#" + objectId, digestMethod, null, XML_DIGSIG_NS+"Object", null);
         references.add(reference);
     }
 
@@ -360,14 +352,6 @@ public class OOXMLSignatureFacet impleme
         return false;
     }
 
-    public Map<String,String> getNamespacePrefixMapping() {
-        Map<String,String> m = new HashMap<String,String>();
-        m.put("mdssi", OOXML_DIGSIG_NS);
-        m.put("xd", "http://uri.etsi.org/01903/v1.3.2#";);
-        return m;
-    }
-
-    
     /**
      * Office 2010 list of signed types (extensions).
      */

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/Office2010SignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/Office2010SignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/Office2010SignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/Office2010SignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -28,7 +28,6 @@ import java.security.InvalidAlgorithmPar
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
 import java.util.List;
-import java.util.Map;
 
 import javax.xml.crypto.dsig.Reference;
 import javax.xml.crypto.dsig.XMLObject;
@@ -71,7 +70,7 @@ public class Office2010SignatureFacet im
     public void postSign(Document document, List<X509Certificate> 
signingCertificateChain)
     throws XmlException {
         // check for XAdES-BES
-        NodeList nl = 
document.getElementsByTagNameNS("http://uri.etsi.org/01903/v1.3.2#";, 
"QualifyingProperties");
+        NodeList nl = document.getElementsByTagNameNS(XADES_132_NS, 
"QualifyingProperties");
         if (nl.getLength() != 1) {
             throw new IllegalArgumentException("no XAdES-BES extension 
present");
         }
@@ -92,8 +91,4 @@ public class Office2010SignatureFacet im
         Node n = document.importNode(qualProps.getDomNode().getFirstChild(), 
true);
         nl.item(0).getParentNode().replaceChild(n, nl.item(0));
     }
-    
-    public Map<String,String> getNamespacePrefixMapping() {
-        return null;
-    }
 }
\ No newline at end of file

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/SignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/SignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/SignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/SignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -30,13 +30,15 @@ import java.security.InvalidAlgorithmPar
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
 import java.util.List;
-import java.util.Map;
 
+import javax.xml.XMLConstants;
 import javax.xml.crypto.MarshalException;
 import javax.xml.crypto.dsig.Reference;
 import javax.xml.crypto.dsig.XMLObject;
+import javax.xml.crypto.dsig.XMLSignature;
 import javax.xml.crypto.dsig.XMLSignatureFactory;
 
+import org.apache.poi.openxml4j.opc.PackageNamespaces;
 import org.apache.poi.poifs.crypt.dsig.SignatureConfig.SignatureConfigurable;
 import org.apache.xmlbeans.XmlException;
 import org.w3c.dom.Document;
@@ -49,6 +51,14 @@ import org.w3c.dom.Document;
  */
 public interface SignatureFacet extends SignatureConfigurable {
 
+    String XML_NS = XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
+    String XML_DIGSIG_NS = XMLSignature.XMLNS;
+    String OO_DIGSIG_NS = PackageNamespaces.DIGITAL_SIGNATURE;
+    String MS_DIGSIG_NS = "http://schemas.microsoft.com/office/2006/digsig";;
+    String XADES_132_NS = "http://uri.etsi.org/01903/v1.3.2#";;
+    String XADES_141_NS = "http://uri.etsi.org/01903/v1.4.1#";;
+
+
     /**
      * This method is being invoked by the XML signature service engine during
      * pre-sign phase. Via this method a signature facet implementation can add
@@ -83,6 +93,4 @@ public interface SignatureFacet extends 
           Document document
         , List<X509Certificate> signingCertificateChain
     ) throws MarshalException, XmlException;
-    
-    Map<String,String> getNamespacePrefixMapping();
 }
\ No newline at end of file

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESSignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESSignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESSignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESSignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -24,7 +24,6 @@
 
 package org.apache.poi.poifs.crypt.dsig.facets;
 
-import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.XmlNS;
 import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.setPrefix;
 
 import java.security.InvalidAlgorithmParameterException;
@@ -213,8 +212,8 @@ public class XAdESSignatureFacet impleme
         // add XAdES ds:Object
         List<XMLStructure> xadesObjectContent = new ArrayList<XMLStructure>();
         Element qualDocEl = 
(Element)document.importNode(qualifyingProperties.getDomNode(), true);
-        qualDocEl.setAttributeNS(XmlNS, "xmlns:xd", 
"http://uri.etsi.org/01903/v1.3.2#";);
-        setPrefix(qualDocEl, "http://uri.etsi.org/01903/v1.3.2#";, "xd");
+        qualDocEl.setAttributeNS(XML_NS, "xmlns:xd", XADES_132_NS);
+        setPrefix(qualDocEl, XADES_132_NS, "xd");
         xadesObjectContent.add(new DOMStructure(qualDocEl));
         XMLObject xadesObject = 
signatureFactory.newXMLObject(xadesObjectContent, null, null, null);
         objects.add(xadesObject);
@@ -298,12 +297,6 @@ public class XAdESSignatureFacet impleme
         this.dataObjectFormatMimeTypes.put(dsReferenceUri, mimetype);
     }
 
-    public Map<String,String> getNamespacePrefixMapping() {
-        Map<String,String> map = new HashMap<String,String>();
-        map.put("xd", "http://uri.etsi.org/01903/v1.3.2#";);
-        return map;
-    }
-
     protected static void insertXChild(XmlObject root, XmlObject child) {
         XmlCursor rootCursor = root.newCursor();
         rootCursor.toEndToken();

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
 Sat Sep 27 17:49:09 2014
@@ -24,7 +24,6 @@
 
 package org.apache.poi.poifs.crypt.dsig.facets;
 
-import static org.apache.poi.poifs.crypt.dsig.SignatureInfo.XmlDSigNS;
 import static 
org.apache.poi.poifs.crypt.dsig.facets.XAdESSignatureFacet.insertXChild;
 
 import java.io.ByteArrayInputStream;
@@ -42,7 +41,6 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 
 import javax.xml.crypto.dsig.CanonicalizationMethod;
@@ -112,10 +110,6 @@ public class XAdESXLSignatureFacet imple
 
     private static final POILogger LOG = 
POILogFactory.getLogger(XAdESXLSignatureFacet.class);
 
-    public static final String XADES_NAMESPACE = 
"http://uri.etsi.org/01903/v1.3.2#";;
-
-    public static final String XADES141_NAMESPACE = 
"http://uri.etsi.org/01903/v1.4.1#";;
-    
     private SignatureConfig signatureConfig;
 
     private String c14nAlgoId = CanonicalizationMethod.EXCLUSIVE;
@@ -157,7 +151,7 @@ public class XAdESXLSignatureFacet imple
         QualifyingPropertiesType qualProps = null;
 
         // check for XAdES-BES
-        NodeList qualNl = 
document.getElementsByTagNameNS("http://uri.etsi.org/01903/v1.3.2#";, 
"QualifyingProperties");
+        NodeList qualNl = document.getElementsByTagNameNS(XADES_132_NS, 
"QualifyingProperties");
         if (qualNl.getLength() == 1) {
             qualDoc = 
QualifyingPropertiesDocument.Factory.parse(qualNl.item(0));
             qualProps = qualDoc.getQualifyingProperties();
@@ -177,7 +171,7 @@ public class XAdESXLSignatureFacet imple
         
 
         // create the XAdES-T time-stamp
-        NodeList nlSigVal = document.getElementsByTagNameNS(XmlDSigNS, 
"SignatureValue");
+        NodeList nlSigVal = document.getElementsByTagNameNS(XML_DIGSIG_NS, 
"SignatureValue");
         if (nlSigVal.getLength() != 1) {
             throw new IllegalArgumentException("SignatureValue is not set.");
         }
@@ -436,9 +430,4 @@ public class XAdESXLSignatureFacet imple
             }
         }
     }
-
-    public Map<String,String> getNamespacePrefixMapping() {
-        return null;
-    }
-
 }

Modified: 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java
URL: 
http://svn.apache.org/viewvc/poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java?rev=1627985&r1=1627984&r2=1627985&view=diff
==============================================================================
--- 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java
 (original)
+++ 
poi/branches/xml_signature/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java
 Sat Sep 27 17:49:09 2014
@@ -24,6 +24,9 @@
 
 package org.apache.poi.poifs.crypt.dsig.services;
 
+import static 
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.XML_DIGSIG_NS;
+import static org.apache.poi.poifs.crypt.dsig.facets.SignatureFacet.XML_NS;
+
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -161,7 +164,7 @@ public class RelationshipTransformServic
         LOG.log(POILogger.DEBUG, "marshallParams(parent,context)");
         DOMStructure domParent = (DOMStructure) parent;
         Element parentNode = (Element)domParent.getNode();
-        // parentNode.setAttributeNS(Constants.NamespaceSpecNS, "xmlns:mdssi", 
DIGITAL_SIGNATURE);
+        // parentNode.setAttributeNS(XML_NS, "xmlns:mdssi", XML_DIGSIG_NS);
         Document doc = parentNode.getOwnerDocument();
         
         for (String sourceId : this.sourceIds) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to