org.apache.xml.security.c14n.implementations
Class CanonicalizerPhysical

java.lang.Object
  extended by org.apache.xml.security.c14n.CanonicalizerSpi
      extended by org.apache.xml.security.c14n.implementations.CanonicalizerBase
          extended by org.apache.xml.security.c14n.implementations.CanonicalizerPhysical

public class CanonicalizerPhysical
extends CanonicalizerBase

Serializes the physical representation of the subtree. All the attributes present in the subtree are emitted. The attributes are sorted within an element, with the namespace declarations appearing before the regular attributes. This algorithm is not a true canonicalization since equivalent subtrees may produce different output. It is therefore unsuitable for digital signatures. This same property makes it ideal for XML Encryption Syntax and Processing, because the decrypted XML content will share the same physical representation as the original XML content that was encrypted.


Field Summary
 
Fields inherited from class org.apache.xml.security.c14n.implementations.CanonicalizerBase
COMPARE, NODE_AFTER_DOCUMENT_ELEMENT, NODE_BEFORE_DOCUMENT_ELEMENT, NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT, XML, XMLNS
 
Fields inherited from class org.apache.xml.security.c14n.CanonicalizerSpi
reset, secureValidation
 
Constructor Summary
CanonicalizerPhysical()
          Constructor Canonicalizer20010315
 
Method Summary
protected  void circumventBugIfNeeded(XMLSignatureInput input)
           
 byte[] engineCanonicalizeSubTree(Node rootNode, String inclusiveNamespaces)
          Always throws a CanonicalizationException.
 byte[] engineCanonicalizeSubTree(Node rootNode, String inclusiveNamespaces, boolean propagateDefaultNamespace)
          Always throws a CanonicalizationException.
 byte[] engineCanonicalizeXPathNodeSet(Set<Node> xpathNodeSet, String inclusiveNamespaces)
          Always throws a CanonicalizationException.
 boolean engineGetIncludeComments()
          Returns true if comments are included
 String engineGetURI()
          Returns the URI of this engine.
protected  Iterator<Attr> handleAttributes(Element element, NameSpaceSymbTable ns)
          Returns the Attr[]s to be output for the given element.
protected  Iterator<Attr> handleAttributesSubtree(Element element, NameSpaceSymbTable ns)
          Returns the Attr[]s to be output for the given element.
protected  void handleParent(Element e, NameSpaceSymbTable ns)
           
protected  void outputCommentToWriter(Comment currentComment, OutputStream writer, int position)
          Method outputCommentToWriter
protected  void outputPItoWriter(ProcessingInstruction currentPI, OutputStream writer, int position)
          Outputs a PI to the internal Writer.
 
Methods inherited from class org.apache.xml.security.c14n.implementations.CanonicalizerBase
canonicalizeSubTree, canonicalizeXPathNodeSet, engineCanonicalize, engineCanonicalizeSubTree, engineCanonicalizeSubTree, engineCanonicalizeXPathNodeSet, getNullNode, getParentNameSpaces, isVisible, isVisibleDO, isVisibleInt, outputAttrToWriter, outputTextToWriter, setWriter
 
Methods inherited from class org.apache.xml.security.c14n.CanonicalizerSpi
engineCanonicalize, engineCanonicalizeXPathNodeSet, engineCanonicalizeXPathNodeSet, isSecureValidation, setSecureValidation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CanonicalizerPhysical

public CanonicalizerPhysical()
Constructor Canonicalizer20010315

Method Detail

engineCanonicalizeXPathNodeSet

public byte[] engineCanonicalizeXPathNodeSet(Set<Node> xpathNodeSet,
                                             String inclusiveNamespaces)
                                      throws CanonicalizationException
Always throws a CanonicalizationException.

Specified by:
engineCanonicalizeXPathNodeSet in class CanonicalizerSpi
Parameters:
xpathNodeSet -
inclusiveNamespaces -
Returns:
none it always fails
Throws:
CanonicalizationException - always

engineCanonicalizeSubTree

public byte[] engineCanonicalizeSubTree(Node rootNode,
                                        String inclusiveNamespaces)
                                 throws CanonicalizationException
Always throws a CanonicalizationException.

Specified by:
engineCanonicalizeSubTree in class CanonicalizerSpi
Parameters:
rootNode -
inclusiveNamespaces -
Returns:
none it always fails
Throws:
CanonicalizationException

engineCanonicalizeSubTree

public byte[] engineCanonicalizeSubTree(Node rootNode,
                                        String inclusiveNamespaces,
                                        boolean propagateDefaultNamespace)
                                 throws CanonicalizationException
Always throws a CanonicalizationException.

Specified by:
engineCanonicalizeSubTree in class CanonicalizerSpi
Parameters:
rootNode -
inclusiveNamespaces -
propagateDefaultNamespace - If true the default namespace will be propagated to the c14n-ized root element
Returns:
none it always fails
Throws:
CanonicalizationException

handleAttributesSubtree

protected Iterator<Attr> handleAttributesSubtree(Element element,
                                                 NameSpaceSymbTable ns)
                                          throws CanonicalizationException
Returns the Attr[]s to be output for the given element.
The code of this method is a copy of handleAttributes(Element, NameSpaceSymbTable), whereas it takes into account that subtree-c14n is -- well -- subtree-based. So if the element in question isRoot of c14n, it's parent is not in the node set, as well as all other ancestors.

Parameters:
element -
ns -
Returns:
the Attr[]s to be output
Throws:
CanonicalizationException

handleAttributes

protected Iterator<Attr> handleAttributes(Element element,
                                          NameSpaceSymbTable ns)
                                   throws CanonicalizationException
Returns the Attr[]s to be output for the given element.

Parameters:
element -
ns -
Returns:
the Attr[]s to be output
Throws:
CanonicalizationException

circumventBugIfNeeded

protected void circumventBugIfNeeded(XMLSignatureInput input)
                              throws CanonicalizationException,
                                     ParserConfigurationException,
                                     IOException,
                                     SAXException
Throws:
CanonicalizationException
ParserConfigurationException
IOException
SAXException

handleParent

protected void handleParent(Element e,
                            NameSpaceSymbTable ns)
Overrides:
handleParent in class CanonicalizerBase

engineGetURI

public final String engineGetURI()
Description copied from class: CanonicalizerSpi
Returns the URI of this engine.

Specified by:
engineGetURI in class CanonicalizerSpi
Returns:
the URI

engineGetIncludeComments

public final boolean engineGetIncludeComments()
Description copied from class: CanonicalizerSpi
Returns true if comments are included

Specified by:
engineGetIncludeComments in class CanonicalizerSpi
Returns:
true if comments are included

outputPItoWriter

protected void outputPItoWriter(ProcessingInstruction currentPI,
                                OutputStream writer,
                                int position)
                         throws IOException
Description copied from class: CanonicalizerBase
Outputs a PI to the internal Writer.

Overrides:
outputPItoWriter in class CanonicalizerBase
writer - where to write the things
Throws:
IOException

outputCommentToWriter

protected void outputCommentToWriter(Comment currentComment,
                                     OutputStream writer,
                                     int position)
                              throws IOException
Description copied from class: CanonicalizerBase
Method outputCommentToWriter

Overrides:
outputCommentToWriter in class CanonicalizerBase
writer - writer where to write the things
Throws:
IOException


Copyright © 2000–2014 The Apache Software Foundation. All rights reserved.