Package org.apache.xml.security.c14n
Class Canonicalizer
- java.lang.Object
-
- org.apache.xml.security.c14n.Canonicalizer
-
public class Canonicalizer extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringALGO_ID_C14N_EXCL_OMIT_COMMENTSThe URL defined in XML-SEC Rec for exclusive c14n without comments.static java.lang.StringALGO_ID_C14N_EXCL_WITH_COMMENTSThe URL defined in XML-SEC Rec for exclusive c14n with comments.static java.lang.StringALGO_ID_C14N_OMIT_COMMENTSThe URL defined in XML-SEC Rec for inclusive c14n without comments.static java.lang.StringALGO_ID_C14N_PHYSICALNon-standard algorithm to serialize the physical representation for XML Encryptionstatic java.lang.StringALGO_ID_C14N_WITH_COMMENTSThe URL defined in XML-SEC Rec for inclusive c14n with comments.static java.lang.StringALGO_ID_C14N11_OMIT_COMMENTSThe URI for inclusive c14n 1.1 without comments.static java.lang.StringALGO_ID_C14N11_WITH_COMMENTSThe URI for inclusive c14n 1.1 with comments.private static java.util.Map<java.lang.String,java.lang.Class<? extends CanonicalizerSpi>>canonicalizerHashprivate CanonicalizerSpicanonicalizerSpistatic java.lang.StringENCODINGThe output encoding of canonicalized dataprivate booleansecureValidationstatic java.lang.StringXPATH_C14N_WITH_COMMENTS_SINGLE_NODEXPath Expression for selecting every node and continuous comments joined in only one node
-
Constructor Summary
Constructors Modifier Constructor Description privateCanonicalizer(java.lang.String algorithmURI)Constructor Canonicalizer
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]canonicalize(byte[] inputBytes)This method tries to canonicalize the given bytes.byte[]canonicalizeSubtree(org.w3c.dom.Node node)Canonicalizes the subtree rooted bynode.byte[]canonicalizeSubtree(org.w3c.dom.Node node, java.lang.String inclusiveNamespaces)Canonicalizes the subtree rooted bynode.byte[]canonicalizeSubtree(org.w3c.dom.Node node, java.lang.String inclusiveNamespaces, boolean propagateDefaultNamespace)Canonicalizes the subtree rooted bynode.byte[]canonicalizeXPathNodeSet(java.util.Set<org.w3c.dom.Node> xpathNodeSet)Canonicalizes an XPath node set.byte[]canonicalizeXPathNodeSet(java.util.Set<org.w3c.dom.Node> xpathNodeSet, java.lang.String inclusiveNamespaces)Canonicalizes an XPath node set.byte[]canonicalizeXPathNodeSet(org.w3c.dom.NodeList xpathNodeSet)Canonicalizes an XPath node set.byte[]canonicalizeXPathNodeSet(org.w3c.dom.NodeList xpathNodeSet, java.lang.String inclusiveNamespaces)Canonicalizes an XPath node set.java.lang.StringgetImplementingCanonicalizerClass()Returns the name of the implementingCanonicalizerSpiclassbooleangetIncludeComments()Method getIncludeCommentsstatic CanonicalizergetInstance(java.lang.String algorithmURI)Method getInstancejava.lang.StringgetURI()Method getURIbooleanisSecureValidation()voidnotReset()Set the canonicalizer behaviour to not reset.static voidregister(java.lang.String algorithmURI, java.lang.Class<? extends CanonicalizerSpi> implementingClass)Method registerstatic voidregister(java.lang.String algorithmURI, java.lang.String implementingClass)Method registerstatic voidregisterDefaultAlgorithms()This method registers the default algorithms.voidsetSecureValidation(boolean secureValidation)voidsetWriter(java.io.OutputStream os)Sets the writer where the canonicalization ends.
-
-
-
Field Detail
-
ENCODING
public static final java.lang.String ENCODING
The output encoding of canonicalized data
-
XPATH_C14N_WITH_COMMENTS_SINGLE_NODE
public static final java.lang.String XPATH_C14N_WITH_COMMENTS_SINGLE_NODE
XPath Expression for selecting every node and continuous comments joined in only one node- See Also:
- Constant Field Values
-
ALGO_ID_C14N_OMIT_COMMENTS
public static final java.lang.String ALGO_ID_C14N_OMIT_COMMENTS
The URL defined in XML-SEC Rec for inclusive c14n without comments.- See Also:
- Constant Field Values
-
ALGO_ID_C14N_WITH_COMMENTS
public static final java.lang.String ALGO_ID_C14N_WITH_COMMENTS
The URL defined in XML-SEC Rec for inclusive c14n with comments.- See Also:
- Constant Field Values
-
ALGO_ID_C14N_EXCL_OMIT_COMMENTS
public static final java.lang.String ALGO_ID_C14N_EXCL_OMIT_COMMENTS
The URL defined in XML-SEC Rec for exclusive c14n without comments.- See Also:
- Constant Field Values
-
ALGO_ID_C14N_EXCL_WITH_COMMENTS
public static final java.lang.String ALGO_ID_C14N_EXCL_WITH_COMMENTS
The URL defined in XML-SEC Rec for exclusive c14n with comments.- See Also:
- Constant Field Values
-
ALGO_ID_C14N11_OMIT_COMMENTS
public static final java.lang.String ALGO_ID_C14N11_OMIT_COMMENTS
The URI for inclusive c14n 1.1 without comments.- See Also:
- Constant Field Values
-
ALGO_ID_C14N11_WITH_COMMENTS
public static final java.lang.String ALGO_ID_C14N11_WITH_COMMENTS
The URI for inclusive c14n 1.1 with comments.- See Also:
- Constant Field Values
-
ALGO_ID_C14N_PHYSICAL
public static final java.lang.String ALGO_ID_C14N_PHYSICAL
Non-standard algorithm to serialize the physical representation for XML Encryption- See Also:
- Constant Field Values
-
canonicalizerHash
private static java.util.Map<java.lang.String,java.lang.Class<? extends CanonicalizerSpi>> canonicalizerHash
-
canonicalizerSpi
private final CanonicalizerSpi canonicalizerSpi
-
secureValidation
private boolean secureValidation
-
-
Constructor Detail
-
Canonicalizer
private Canonicalizer(java.lang.String algorithmURI) throws InvalidCanonicalizerExceptionConstructor Canonicalizer- Parameters:
algorithmURI-- Throws:
InvalidCanonicalizerException
-
-
Method Detail
-
getInstance
public static final Canonicalizer getInstance(java.lang.String algorithmURI) throws InvalidCanonicalizerException
Method getInstance- Parameters:
algorithmURI-- Returns:
- a Canonicalizer instance ready for the job
- Throws:
InvalidCanonicalizerException
-
register
public static void register(java.lang.String algorithmURI, java.lang.String implementingClass) throws AlgorithmAlreadyRegisteredException, java.lang.ClassNotFoundExceptionMethod register- Parameters:
algorithmURI-implementingClass-- Throws:
AlgorithmAlreadyRegisteredExceptionjava.lang.SecurityException- if a security manager is installed and the caller does not have permission to register the canonicalizerjava.lang.ClassNotFoundException
-
register
public static void register(java.lang.String algorithmURI, java.lang.Class<? extends CanonicalizerSpi> implementingClass) throws AlgorithmAlreadyRegisteredException, java.lang.ClassNotFoundExceptionMethod register- Parameters:
algorithmURI-implementingClass-- Throws:
AlgorithmAlreadyRegisteredExceptionjava.lang.SecurityException- if a security manager is installed and the caller does not have permission to register the canonicalizerjava.lang.ClassNotFoundException
-
registerDefaultAlgorithms
public static void registerDefaultAlgorithms()
This method registers the default algorithms.
-
getURI
public final java.lang.String getURI()
Method getURI- Returns:
- the URI defined for this c14n instance.
-
getIncludeComments
public boolean getIncludeComments()
Method getIncludeComments- Returns:
- true if the c14n respect the comments.
-
canonicalize
public byte[] canonicalize(byte[] inputBytes) throws javax.xml.parsers.ParserConfigurationException, java.io.IOException, org.xml.sax.SAXException, CanonicalizationExceptionThis method tries to canonicalize the given bytes. It's possible to even canonicalize non-wellformed sequences if they are well-formed after being wrapped with a>a<...>/a<.- Parameters:
inputBytes-- Returns:
- the result of the canonicalization.
- Throws:
CanonicalizationExceptionjava.io.IOExceptionjavax.xml.parsers.ParserConfigurationExceptionorg.xml.sax.SAXException
-
canonicalizeSubtree
public byte[] canonicalizeSubtree(org.w3c.dom.Node node) throws CanonicalizationExceptionCanonicalizes the subtree rooted bynode.- Parameters:
node- The node to canonicalize- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
canonicalizeSubtree
public byte[] canonicalizeSubtree(org.w3c.dom.Node node, java.lang.String inclusiveNamespaces) throws CanonicalizationExceptionCanonicalizes the subtree rooted bynode.- Parameters:
node-inclusiveNamespaces-- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
canonicalizeSubtree
public byte[] canonicalizeSubtree(org.w3c.dom.Node node, java.lang.String inclusiveNamespaces, boolean propagateDefaultNamespace) throws CanonicalizationExceptionCanonicalizes the subtree rooted bynode.- Parameters:
node-inclusiveNamespaces-- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
canonicalizeXPathNodeSet
public byte[] canonicalizeXPathNodeSet(org.w3c.dom.NodeList xpathNodeSet) throws CanonicalizationExceptionCanonicalizes an XPath node set. ThexpathNodeSetis treated as a list of XPath nodes, not as a list of subtrees.- Parameters:
xpathNodeSet-- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
canonicalizeXPathNodeSet
public byte[] canonicalizeXPathNodeSet(org.w3c.dom.NodeList xpathNodeSet, java.lang.String inclusiveNamespaces) throws CanonicalizationExceptionCanonicalizes an XPath node set. ThexpathNodeSetis treated as a list of XPath nodes, not as a list of subtrees.- Parameters:
xpathNodeSet-inclusiveNamespaces-- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
canonicalizeXPathNodeSet
public byte[] canonicalizeXPathNodeSet(java.util.Set<org.w3c.dom.Node> xpathNodeSet) throws CanonicalizationExceptionCanonicalizes an XPath node set.- Parameters:
xpathNodeSet-- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
canonicalizeXPathNodeSet
public byte[] canonicalizeXPathNodeSet(java.util.Set<org.w3c.dom.Node> xpathNodeSet, java.lang.String inclusiveNamespaces) throws CanonicalizationExceptionCanonicalizes an XPath node set.- Parameters:
xpathNodeSet-inclusiveNamespaces-- Returns:
- the result of the c14n.
- Throws:
CanonicalizationException
-
setWriter
public void setWriter(java.io.OutputStream os)
Sets the writer where the canonicalization ends. ByteArrayOutputStream if none is set.- Parameters:
os-
-
getImplementingCanonicalizerClass
public java.lang.String getImplementingCanonicalizerClass()
Returns the name of the implementingCanonicalizerSpiclass- Returns:
- the name of the implementing
CanonicalizerSpiclass
-
notReset
public void notReset()
Set the canonicalizer behaviour to not reset.
-
isSecureValidation
public boolean isSecureValidation()
-
setSecureValidation
public void setSecureValidation(boolean secureValidation)
-
-