You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2013/06/11 16:58:17 UTC

svn commit: r1491820 - in /santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security: algorithms/ stax/config/ stax/ext/ stax/impl/algorithms/ stax/impl/processor/input/ stax/impl/processor/output/

Author: coheigea
Date: Tue Jun 11 14:58:16 2013
New Revision: 1491820

URL: http://svn.apache.org/r1491820
Log:
Re-use JCEMapper functionality for streaming code

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/config/JCEAlgorithmMapper.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/OutboundXMLSec.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/HMACSignatureAlgorithm.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/PKISignatureAlgorithm.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/SignatureAlgorithmFactory.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/XMLEncryptedKeyInputHandler.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java Tue Jun 11 14:58:16 2013
@@ -275,6 +275,23 @@ public class JCEMapper {
         }
         return null;
     }
+    
+    /**
+     * Method getJCEProviderFromURI
+     *
+     * @param algorithmURI
+     * @return The JCEProvider for the given URI.
+     */
+    public static String getJCEProviderFromURI(String algorithmURI) {
+        if (log.isDebugEnabled()) {
+            log.debug("Request for URI " + algorithmURI);
+        }
+        Algorithm algorithm = algorithmsMap.get(algorithmURI);
+        if (algorithm != null) {
+            return algorithm.jceProvider;
+        }
+        return null;
+    }
 
     /**
      * Gets the default Provider for obtaining the security algorithms
@@ -301,6 +318,7 @@ public class JCEMapper {
         final String jceName;
         final String algorithmClass;
         final int keyLength;
+        final String jceProvider;
         
         /**
          * Gets data from element
@@ -310,6 +328,7 @@ public class JCEMapper {
             requiredKey = el.getAttributeNS(null, "RequiredKey");
             jceName = el.getAttributeNS(null, "JCEName");
             algorithmClass = el.getAttributeNS(null, "AlgorithmClass");
+            jceProvider = el.getAttributeNS(null, "JCEProvider");
             if (el.hasAttribute("KeyLength")) {
                 keyLength = Integer.parseInt(el.getAttributeNS(null, "KeyLength"));
             } else {
@@ -330,10 +349,16 @@ public class JCEMapper {
         }
         
         public Algorithm(String requiredKey, String jceName, String algorithmClass, int keyLength) {
+            this(requiredKey, jceName, algorithmClass, keyLength, null);
+        }
+        
+        public Algorithm(String requiredKey, String jceName, 
+                         String algorithmClass, int keyLength, String jceProvider) {
             this.requiredKey = requiredKey;
             this.jceName = jceName;
             this.algorithmClass = algorithmClass;
             this.keyLength = keyLength;
+            this.jceProvider = jceProvider;
         }
     }
     

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/config/JCEAlgorithmMapper.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/config/JCEAlgorithmMapper.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/config/JCEAlgorithmMapper.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/config/JCEAlgorithmMapper.java Tue Jun 11 14:58:16 2013
@@ -18,53 +18,36 @@
  */
 package org.apache.xml.security.stax.config;
 
+import java.util.List;
+
+import org.apache.xml.security.algorithms.JCEMapper;
 import org.xmlsecurity.ns.configuration.AlgorithmType;
 import org.xmlsecurity.ns.configuration.JCEAlgorithmMappingsType;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Mapping between JCE id and xmlsec uri's for algorithms
- * Class lent from apache santuario (xmlsec)
- *
- * @author $Author$
- * @version $Revision$ $Date$
  */
-public class JCEAlgorithmMapper {
-
-    private static Map<String, String> uriToJCEName;
-    private static Map<String, AlgorithmType> algorithmsMap;
+public class JCEAlgorithmMapper extends JCEMapper {
 
     private JCEAlgorithmMapper() {
     }
 
     protected static synchronized void init(JCEAlgorithmMappingsType jceAlgorithmMappingsType) throws Exception {
         List<AlgorithmType> algorithms = jceAlgorithmMappingsType.getAlgorithm();
-        uriToJCEName = new HashMap<String, String>(algorithms.size() + 1);
-        algorithmsMap = new HashMap<String, AlgorithmType>(algorithms.size() + 1);
 
         for (int i = 0; i < algorithms.size(); i++) {
             AlgorithmType algorithmType = algorithms.get(i);
-            uriToJCEName.put(algorithmType.getURI(), algorithmType.getJCEName());
-            algorithmsMap.put(algorithmType.getURI(), algorithmType);
+            int keyLength = 0;
+            if (algorithmType.getKeyLength() != null) {
+                keyLength = algorithmType.getKeyLength();
+            }
+            Algorithm algorithm = 
+                new Algorithm(algorithmType.getRequiredKey(), algorithmType.getJCEName(),
+                              algorithmType.getAlgorithmClass(), keyLength,
+                              algorithmType.getJCEProvider());
+            
+            register(algorithmType.getURI(), algorithm);
         }
     }
 
-    public static AlgorithmType getAlgorithmMapping(String algoURI) {
-        return algorithmsMap.get(algoURI);
-    }
-
-    public static String translateURItoJCEID(String AlgorithmURI) {
-        return uriToJCEName.get(AlgorithmURI);
-    }
-
-    public static int getKeyLengthFromURI(String AlgorithmURI) {
-        return algorithmsMap.get(AlgorithmURI).getKeyLength();
-    }
-
-    public static String getJCERequiredKeyFromURI(String AlgorithmURI) {
-        return algorithmsMap.get(AlgorithmURI).getRequiredKey();
-    }
 }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/OutboundXMLSec.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/OutboundXMLSec.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/OutboundXMLSec.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/ext/OutboundXMLSec.java Tue Jun 11 14:58:16 2013
@@ -204,7 +204,7 @@ public class OutboundXMLSec {
             }
             // If none is configured then generate one
             String keyAlgorithm = 
-                JCEAlgorithmMapper.getJCERequiredKeyFromURI(securityProperties.getEncryptionSymAlgorithm());
+                JCEAlgorithmMapper.getJCEKeyAlgorithmFromURI(securityProperties.getEncryptionSymAlgorithm());
             KeyGenerator keyGen;
             try {
                 keyGen = KeyGenerator.getInstance(keyAlgorithm);

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/HMACSignatureAlgorithm.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/HMACSignatureAlgorithm.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/HMACSignatureAlgorithm.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/HMACSignatureAlgorithm.java Tue Jun 11 14:58:16 2013
@@ -19,7 +19,6 @@
 package org.apache.xml.security.stax.impl.algorithms;
 
 import org.apache.xml.security.exceptions.XMLSecurityException;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import javax.crypto.Mac;
 import java.security.*;
@@ -33,11 +32,11 @@ public class HMACSignatureAlgorithm impl
 
     private Mac mac;
 
-    public HMACSignatureAlgorithm(AlgorithmType algorithmType) throws NoSuchProviderException, NoSuchAlgorithmException {
-        if (algorithmType.getJCEProvider() != null) {
-            mac = Mac.getInstance(algorithmType.getJCEName(), algorithmType.getJCEProvider());
+    public HMACSignatureAlgorithm(String jceName, String jceProvider) throws NoSuchProviderException, NoSuchAlgorithmException {
+        if (jceProvider != null) {
+            mac = Mac.getInstance(jceName, jceProvider);
         } else {
-            mac = Mac.getInstance(algorithmType.getJCEName());
+            mac = Mac.getInstance(jceName);
         }
     }
 

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/PKISignatureAlgorithm.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/PKISignatureAlgorithm.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/PKISignatureAlgorithm.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/PKISignatureAlgorithm.java Tue Jun 11 14:58:16 2013
@@ -19,7 +19,6 @@
 package org.apache.xml.security.stax.impl.algorithms;
 
 import org.apache.xml.security.exceptions.XMLSecurityException;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import java.io.IOException;
 import java.security.*;
@@ -34,10 +33,10 @@ public class PKISignatureAlgorithm imple
     private final String jceName;
     private final Signature signature;
 
-    public PKISignatureAlgorithm(AlgorithmType algorithmType) throws NoSuchProviderException, NoSuchAlgorithmException {
-        this.jceName = algorithmType.getJCEName();
-        if (algorithmType.getJCEProvider() != null) {
-            signature = Signature.getInstance(this.jceName, algorithmType.getJCEProvider());
+    public PKISignatureAlgorithm(String jceName, String jceProvider) throws NoSuchProviderException, NoSuchAlgorithmException {
+        this.jceName = jceName;
+        if (jceProvider != null) {
+            signature = Signature.getInstance(this.jceName, jceProvider);
         } else {
             signature = Signature.getInstance(this.jceName);
         }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/SignatureAlgorithmFactory.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/SignatureAlgorithmFactory.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/SignatureAlgorithmFactory.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/algorithms/SignatureAlgorithmFactory.java Tue Jun 11 14:58:16 2013
@@ -20,7 +20,6 @@ package org.apache.xml.security.stax.imp
 
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.stax.config.JCEAlgorithmMapper;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
@@ -44,15 +43,16 @@ public class SignatureAlgorithmFactory {
     }
 
     public SignatureAlgorithm getSignatureAlgorithm(String algoURI) throws XMLSecurityException, NoSuchProviderException, NoSuchAlgorithmException {
-        AlgorithmType algorithmType = JCEAlgorithmMapper.getAlgorithmMapping(algoURI);
-        if (algorithmType == null) {
+        String algorithmClass = JCEAlgorithmMapper.getAlgorithmClassFromURI(algoURI);
+        if (algorithmClass == null) {
             throw new XMLSecurityException("algorithms.NoSuchMap", algoURI);
         }
-        String algorithmClass = algorithmType.getAlgorithmClass();
+        String jceName = JCEAlgorithmMapper.translateURItoJCEID(algoURI);
+        String jceProvider = JCEAlgorithmMapper.getJCEProviderFromURI(algoURI);
         if ("MAC".equalsIgnoreCase(algorithmClass)) {
-            return new HMACSignatureAlgorithm(algorithmType);
+            return new HMACSignatureAlgorithm(jceName, jceProvider);
         } else if ("Signature".equalsIgnoreCase(algorithmClass)) {
-            return new PKISignatureAlgorithm(algorithmType);
+            return new PKISignatureAlgorithm(jceName, jceProvider);
         } else {
             return null;
         }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractDecryptInputProcessor.java Tue Jun 11 14:58:16 2013
@@ -40,7 +40,6 @@ import org.apache.xml.security.stax.ext.
 import org.apache.xml.security.stax.impl.XMLSecurityEventReader;
 import org.apache.xml.security.stax.securityToken.SecurityTokenFactory;
 import org.apache.xml.security.stax.impl.util.*;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import javax.crypto.Cipher;
 import javax.crypto.CipherOutputStream;
@@ -351,14 +350,15 @@ public abstract class AbstractDecryptInp
     private Cipher getCipher(String algorithmURI) throws XMLSecurityException {
         Cipher symCipher;
         try {
-            AlgorithmType symEncAlgo = JCEAlgorithmMapper.getAlgorithmMapping(algorithmURI);
-            if (symEncAlgo == null) {
+            String jceName = JCEAlgorithmMapper.translateURItoJCEID(algorithmURI);
+            String jceProvider = JCEAlgorithmMapper.getJCEProviderFromURI(algorithmURI);
+            if (jceName == null) {
                 throw new XMLSecurityException("algorithms.NoSuchMap", algorithmURI);
             }
-            if (symEncAlgo.getJCEProvider() != null) {
-                symCipher = Cipher.getInstance(symEncAlgo.getJCEName(), symEncAlgo.getJCEProvider());
+            if (jceProvider != null) {
+                symCipher = Cipher.getInstance(jceName, jceProvider);
             } else {
-                symCipher = Cipher.getInstance(symEncAlgo.getJCEName());
+                symCipher = Cipher.getInstance(jceName);
             }
             //we have to defer the initialization of the cipher until we can extract the IV...
         } catch (NoSuchAlgorithmException e) {

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/AbstractSignatureReferenceVerifyInputProcessor.java Tue Jun 11 14:58:16 2013
@@ -40,7 +40,6 @@ import org.apache.xml.security.stax.impl
 import org.apache.xml.security.stax.impl.util.KeyValue;
 import org.apache.xml.security.stax.impl.util.UnsynchronizedBufferedOutputStream;
 import org.apache.xml.security.stax.securityEvent.AlgorithmSuiteSecurityEvent;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
@@ -267,24 +266,24 @@ public abstract class AbstractSignatureR
             throws XMLSecurityException {
 
         String digestMethodAlgorithm = referenceType.getDigestMethod().getAlgorithm();
-        AlgorithmType digestAlgorithm =
-                JCEAlgorithmMapper.getAlgorithmMapping(digestMethodAlgorithm);
-        if (digestAlgorithm == null) {
+        String jceName = JCEAlgorithmMapper.translateURItoJCEID(digestMethodAlgorithm);
+        String jceProvider = JCEAlgorithmMapper.getJCEProviderFromURI(digestMethodAlgorithm);
+        if (jceName == null) {
             throw new XMLSecurityException("algorithms.NoSuchMap", digestMethodAlgorithm);
         }
 
         AlgorithmSuiteSecurityEvent algorithmSuiteSecurityEvent = new AlgorithmSuiteSecurityEvent();
-        algorithmSuiteSecurityEvent.setAlgorithmURI(digestAlgorithm.getURI());
+        algorithmSuiteSecurityEvent.setAlgorithmURI(digestMethodAlgorithm);
         algorithmSuiteSecurityEvent.setAlgorithmUsage(XMLSecurityConstants.Dig);
         algorithmSuiteSecurityEvent.setCorrelationID(referenceType.getId());
         inboundSecurityContext.registerSecurityEvent(algorithmSuiteSecurityEvent);
 
         MessageDigest messageDigest;
         try {
-            if (digestAlgorithm.getJCEProvider() != null) {
-                messageDigest = MessageDigest.getInstance(digestAlgorithm.getJCEName(), digestAlgorithm.getJCEProvider());
+            if (jceProvider != null) {
+                messageDigest = MessageDigest.getInstance(jceName, jceProvider);
             } else {
-                messageDigest = MessageDigest.getInstance(digestAlgorithm.getJCEName());
+                messageDigest = MessageDigest.getInstance(jceName);
             }
         } catch (NoSuchAlgorithmException e) {
             throw new XMLSecurityException(e);

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/XMLEncryptedKeyInputHandler.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/XMLEncryptedKeyInputHandler.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/XMLEncryptedKeyInputHandler.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/input/XMLEncryptedKeyInputHandler.java Tue Jun 11 14:58:16 2013
@@ -35,7 +35,6 @@ import org.apache.xml.security.stax.impl
 import org.apache.xml.security.stax.securityToken.SecurityTokenFactory;
 import org.apache.xml.security.stax.impl.util.IDGenerator;
 import org.apache.xml.security.stax.securityEvent.EncryptedKeyTokenSecurityEvent;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import javax.crypto.Cipher;
 import javax.crypto.NoSuchPaddingException;
@@ -110,7 +109,7 @@ public class XMLEncryptedKeyInputHandler
                             return key;
                         }
 
-                        String algoFamily = JCEAlgorithmMapper.getJCERequiredKeyFromURI(algorithmURI);
+                        String algoFamily = JCEAlgorithmMapper.getJCEKeyAlgorithmFromURI(algorithmURI);
                         key = new SecretKeySpec(getSecret(this, correlationID, algorithmURI), algoFamily);
                         setSecretKey(algorithmURI, key);
                         return key;
@@ -155,8 +154,9 @@ public class XMLEncryptedKeyInputHandler
                         if (algorithmURI == null) {
                             throw new XMLSecurityException("stax.encryption.noEncAlgo");
                         }
-                        AlgorithmType encAlgo = JCEAlgorithmMapper.getAlgorithmMapping(algorithmURI);
-                        if (encAlgo == null) {
+                        String jceName = JCEAlgorithmMapper.translateURItoJCEID(algorithmURI);
+                        String jceProvider = JCEAlgorithmMapper.getJCEProviderFromURI(algorithmURI);
+                        if (jceName == null) {
                             throw new XMLSecurityException("algorithms.NoSuchMap", algorithmURI);
                         }
 
@@ -171,10 +171,10 @@ public class XMLEncryptedKeyInputHandler
                                 algorithmUsage = XMLSecurityConstants.Sym_Key_Wrap;
                             }
 
-                            if (encAlgo.getJCEProvider() == null) {
-                                cipher = Cipher.getInstance(encAlgo.getJCEName());
+                            if (jceProvider == null) {
+                                cipher = Cipher.getInstance(jceName);
                             } else {
-                                cipher = Cipher.getInstance(encAlgo.getJCEName(), encAlgo.getJCEProvider());
+                                cipher = Cipher.getInstance(jceName, jceProvider);
                             }
                             if (XMLSecurityConstants.NS_XENC11_RSAOAEP.equals(algorithmURI) ||
                                     XMLSecurityConstants.NS_XENC_RSAOAEPMGF1P.equals(algorithmURI)) {
@@ -223,7 +223,7 @@ public class XMLEncryptedKeyInputHandler
 
                         try {
                             Key key = cipher.unwrap(encryptedKeyType.getCipherData().getCipherValue(),
-                                    encAlgo.getJCEName(),
+                                    jceName,
                                     Cipher.SECRET_KEY);
                             return this.decryptedKey = key.getEncoded();
                         } catch (IllegalStateException e) {

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java?rev=1491820&r1=1491819&r2=1491820&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/stax/impl/processor/output/AbstractSignatureOutputProcessor.java Tue Jun 11 14:58:16 2013
@@ -31,7 +31,6 @@ import org.apache.xml.security.stax.impl
 import org.apache.xml.security.stax.impl.transformer.TransformIdentity;
 import org.apache.xml.security.stax.impl.util.DigestOutputStream;
 import org.apache.xml.security.stax.impl.util.UnsynchronizedBufferedOutputStream;
-import org.xmlsecurity.ns.configuration.AlgorithmType;
 
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -157,16 +156,17 @@ public abstract class AbstractSignatureO
     private DigestOutputStream createMessageDigestOutputStream(String digestAlgorithm)
             throws XMLSecurityException {
 
-        AlgorithmType algorithmType = JCEAlgorithmMapper.getAlgorithmMapping(digestAlgorithm);
-        if (algorithmType == null) {
+        String jceName = JCEAlgorithmMapper.translateURItoJCEID(digestAlgorithm);
+        String jceProvider = JCEAlgorithmMapper.getJCEProviderFromURI(digestAlgorithm);
+        if (jceName == null) {
             throw new XMLSecurityException("algorithms.NoSuchMap", digestAlgorithm);
         }
         MessageDigest messageDigest;
         try {
-            if (algorithmType.getJCEProvider() != null) {
-                messageDigest = MessageDigest.getInstance(algorithmType.getJCEName(), algorithmType.getJCEProvider());
+            if (jceProvider != null) {
+                messageDigest = MessageDigest.getInstance(jceName, jceProvider);
             } else {
-                messageDigest = MessageDigest.getInstance(algorithmType.getJCEName());
+                messageDigest = MessageDigest.getInstance(jceName);
             }
         } catch (NoSuchAlgorithmException e) {
             throw new XMLSecurityException(e);