Class CanonicalizerPhysical

java.lang.Object

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.
  • Constructor Details

    • CanonicalizerPhysical

      public CanonicalizerPhysical()
      Constructor Canonicalizer20010315
  • Method Details

    • engineCanonicalizeXPathNodeSet

      public byte[] engineCanonicalizeXPathNodeSet​(java.util.Set<org.w3c.dom.Node> xpathNodeSet, java.lang.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​(org.w3c.dom.Node rootNode, java.lang.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​(org.w3c.dom.Node rootNode, java.lang.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 java.util.Iterator<org.w3c.dom.Attr> handleAttributesSubtree​(org.w3c.dom.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 java.util.Iterator<org.w3c.dom.Attr> handleAttributes​(org.w3c.dom.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, javax.xml.parsers.ParserConfigurationException, java.io.IOException, org.xml.sax.SAXException
      Throws:
      CanonicalizationException
      javax.xml.parsers.ParserConfigurationException
      java.io.IOException
      org.xml.sax.SAXException
    • handleParent

      protected void handleParent​(org.w3c.dom.Element e, NameSpaceSymbTable ns)
      Overrides:
      handleParent in class CanonicalizerBase
    • engineGetURI

      public final java.lang.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​(org.w3c.dom.ProcessingInstruction currentPI, java.io.OutputStream writer, int position) throws java.io.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:
      java.io.IOException
    • outputCommentToWriter

      protected void outputCommentToWriter​(org.w3c.dom.Comment currentComment, java.io.OutputStream writer, int position) throws java.io.IOException
      Description copied from class: CanonicalizerBase
      Method outputCommentToWriter
      Overrides:
      outputCommentToWriter in class CanonicalizerBase
      writer - writer where to write the things
      Throws:
      java.io.IOException