package org.jivesoftware.smackx.ikey; import org.apache.xml.security.c14n.CanonicalizationException; import org.apache.xml.security.parser.XMLParserException; import org.jivesoftware.smack.packet.Element; import java.io.IOException; public interface ElementCanonicalizer { default byte[] canonicalize(Element e) throws XMLParserException, IOException, CanonicalizationException { String xml = e.toXML().toString(); return canonicalize(xml); } default byte[] canonicalize(CharSequence xml) throws XMLParserException, IOException, CanonicalizationException { return canonicalize(xml.toString().getBytes()); } byte[] canonicalize(byte[] xml) throws XMLParserException, IOException, CanonicalizationException; }