Class CanonicalizerBase

    • Field Detail

      • END_PI

        private static final byte[] END_PI
      • BEGIN_PI

        private static final byte[] BEGIN_PI
      • END_COMM

        private static final byte[] END_COMM
      • BEGIN_COMM

        private static final byte[] BEGIN_COMM
      • XA

        private static final byte[] XA
      • X9

        private static final byte[] X9
      • QUOT

        private static final byte[] QUOT
      • XD

        private static final byte[] XD
      • GT

        private static final byte[] GT
      • LT

        private static final byte[] LT
      • END_TAG

        private static final byte[] END_TAG
      • AMP

        private static final byte[] AMP
      • EQUALS_STR

        private static final byte[] EQUALS_STR
      • NODE_BEFORE_DOCUMENT_ELEMENT

        protected static final int NODE_BEFORE_DOCUMENT_ELEMENT
        See Also:
        Constant Field Values
      • NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT

        protected static final int NODE_NOT_BEFORE_OR_AFTER_DOCUMENT_ELEMENT
        See Also:
        Constant Field Values
      • NODE_AFTER_DOCUMENT_ELEMENT

        protected static final int NODE_AFTER_DOCUMENT_ELEMENT
        See Also:
        Constant Field Values
      • nodeFilter

        private java.util.List<NodeFilter> nodeFilter
      • includeComments

        private boolean includeComments
      • xpathNodeSet

        private java.util.Set<org.w3c.dom.Node> xpathNodeSet
      • excludeNode

        private org.w3c.dom.Node excludeNode
        The node to be skipped/excluded from the DOM tree in subtree canonicalizations.
      • writer

        private java.io.OutputStream writer
      • nullNode

        private org.w3c.dom.Attr nullNode
        The null xmlns definition.
    • Constructor Detail

      • CanonicalizerBase

        public CanonicalizerBase​(boolean includeComments)
        Constructor CanonicalizerBase
        Parameters:
        includeComments -
    • Method Detail

      • setWriter

        public void setWriter​(java.io.OutputStream writer)
        Description copied from class: CanonicalizerSpi
        Sets the writer where the canonicalization ends. ByteArrayOutputStream if none is set.
        Specified by:
        setWriter in class CanonicalizerSpi
        Parameters:
        writer - The writer to set.
      • getWriter

        protected java.io.OutputStream getWriter()
      • engineCanonicalizeSubTree

        protected byte[] engineCanonicalizeSubTree​(org.w3c.dom.Node rootNode,
                                                   org.w3c.dom.Node excludeNode)
                                            throws CanonicalizationException
        Canonicalizes a Subtree node.
        Parameters:
        rootNode - the root of the subtree to canonicalize
        excludeNode - a node to be excluded from the canonicalize operation
        Returns:
        The canonicalize stream.
        Throws:
        CanonicalizationException
      • canonicalizeSubTree

        protected final void canonicalizeSubTree​(org.w3c.dom.Node currentNode,
                                                 NameSpaceSymbTable ns,
                                                 org.w3c.dom.Node endnode,
                                                 int documentLevel)
                                          throws CanonicalizationException,
                                                 java.io.IOException
        Method canonicalizeSubTree, this function is a recursive one.
        Parameters:
        currentNode -
        ns -
        endnode -
        Throws:
        CanonicalizationException
        java.io.IOException
      • canonicalizeXPathNodeSet

        protected final void canonicalizeXPathNodeSet​(org.w3c.dom.Node currentNode,
                                                      org.w3c.dom.Node endnode)
                                               throws CanonicalizationException,
                                                      java.io.IOException
        Canonicalizes all the nodes included in the currentNode and contained in the xpathNodeSet field.
        Parameters:
        currentNode -
        endnode -
        Throws:
        CanonicalizationException
        java.io.IOException
      • isVisibleDO

        protected int isVisibleDO​(org.w3c.dom.Node currentNode,
                                  int level)
      • isVisibleInt

        protected int isVisibleInt​(org.w3c.dom.Node currentNode)
      • isVisible

        protected boolean isVisible​(org.w3c.dom.Node currentNode)
      • handleParent

        protected void handleParent​(org.w3c.dom.Element e,
                                    NameSpaceSymbTable ns)
      • getParentNameSpaces

        protected final void getParentNameSpaces​(org.w3c.dom.Element el,
                                                 NameSpaceSymbTable ns)
        Adds to ns the definitions from the parent elements of el
        Parameters:
        el -
        ns -
      • outputAttributes

        abstract void outputAttributes​(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 attributes for this node in XPathNodeSet c14n.
        Parameters:
        element -
        ns -
        cache -
        Throws:
        CanonicalizationException
        org.w3c.dom.DOMException
        java.io.IOException
      • outputAttributesSubtree

        abstract 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 attributes for this node in a Subtree c14n.
        Parameters:
        element -
        ns -
        cache -
        Throws:
        CanonicalizationException
        org.w3c.dom.DOMException
        java.io.IOException
      • circumventBugIfNeeded

        abstract 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
      • outputAttrToWriter

        protected static final void outputAttrToWriter​(java.lang.String name,
                                                       java.lang.String value,
                                                       java.io.OutputStream writer,
                                                       java.util.Map<java.lang.String,​byte[]> cache)
                                                throws java.io.IOException
        Outputs an Attribute to the internal Writer. The string value of the node is modified by replacing
        • all ampersands with &amp;
        • all open angle brackets with &lt;
        • all quotation mark characters with &quot;
        • and the whitespace characters #x9, #xA, and #xD, with character references. The character references are written in uppercase hexadecimal with no leading zeroes (for example, #xD is represented by the character reference &#xD;)
        Parameters:
        name -
        value -
        writer -
        Throws:
        java.io.IOException
      • outputPItoWriter

        protected void outputPItoWriter​(org.w3c.dom.ProcessingInstruction currentPI,
                                        java.io.OutputStream writer,
                                        int position)
                                 throws java.io.IOException
        Outputs a PI to the internal Writer.
        Parameters:
        currentPI -
        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
        Method outputCommentToWriter
        Parameters:
        currentComment -
        writer - writer where to write the things
        Throws:
        java.io.IOException
      • outputTextToWriter

        protected static final void outputTextToWriter​(java.lang.String text,
                                                       java.io.OutputStream writer)
                                                throws java.io.IOException
        Outputs a Text of CDATA section to the internal Writer.
        Parameters:
        text -
        writer - writer where to write the things
        Throws:
        java.io.IOException
      • getNullNode

        protected org.w3c.dom.Attr getNullNode​(org.w3c.dom.Document ownerDocument)