Class 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.
    • Constructor Detail

      • CanonicalizerPhysical

        public CanonicalizerPhysical()
        Constructor Canonicalizer20010315
    • Method Detail

      • 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
      • outputAttributesSubtree

        protected void outputAttributesSubtree​(org.w3c.dom.Element element,
                                               NameSpaceSymbTable ns,
                                               java.util.Map<java.lang.String,​byte[]> cache)
                                        throws CanonicalizationException,
                                               org.w3c.dom.DOMException,
                                               java.io.IOException
        Output the Attr[]s for the given element.
        The code of this method is a copy of outputAttributes(Element, NameSpaceSymbTable, Map), 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 -
        cache -
        Throws:
        CanonicalizationException
        org.w3c.dom.DOMException
        java.io.IOException
      • 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
      • engineGetURI

        public final java.lang.String engineGetURI()
        Returns the URI of this engine.
        Specified by:
        engineGetURI in class CanonicalizerSpi
        Returns:
        the URI
      • engineGetIncludeComments

        public final boolean engineGetIncludeComments()
        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