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);