Class Canonicalizer
java.lang.Object
org.docx4j.org.apache.xml.security.c14n.Canonicalizer
public class Canonicalizer
extends java.lang.Object
- Author:
- Christian Geuer-Pollmann
-
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.static java.lang.StringENCODINGThe output encoding of canonicalized datastatic java.lang.StringXPATH_C14N_WITH_COMMENTS_SINGLE_NODEXPath Expression for selecting every node and continuous comments joined in only one node -
Method Summary
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 Details
-
ENCODING
public static final java.lang.String ENCODINGThe output encoding of canonicalized data- See Also:
- Constant Field Values
-
XPATH_C14N_WITH_COMMENTS_SINGLE_NODE
public static final java.lang.String XPATH_C14N_WITH_COMMENTS_SINGLE_NODEXPath 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_COMMENTSThe 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_COMMENTSThe 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_COMMENTSThe 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_COMMENTSThe 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_COMMENTSThe 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_COMMENTSThe 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_PHYSICALNon-standard algorithm to serialize the physical representation for XML Encryption- See Also:
- Constant Field Values
-
-
Method Details
-
getInstance
public static final Canonicalizer getInstance(java.lang.String algorithmURI) throws InvalidCanonicalizerExceptionMethod 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
Canonicalizes 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)
-