Mercury-IM/domain/src/main/java/org/jivesoftware/smackx/ikey/util/canonicalization/ElementCanonicalizer.java

27 lines
960 B
Java
Raw Normal View History

2020-09-02 16:40:36 +02:00
package org.jivesoftware.smackx.ikey.util.canonicalization;
import org.apache.xml.security.c14n.CanonicalizationException;
import org.apache.xml.security.parser.XMLParserException;
import org.jivesoftware.smack.packet.Element;
import java.io.IOException;
2020-09-11 14:41:48 +02:00
import java.nio.charset.StandardCharsets;
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 {
2020-09-11 14:41:48 +02:00
return canonicalize(xml.toString().getBytes(StandardCharsets.UTF_8));
}
byte[] canonicalize(byte[] xml) throws XMLParserException, IOException, CanonicalizationException;
2020-09-02 16:40:36 +02:00
default String removeInterElementWhitespace(String xml) {
return xml.replaceAll(">\\s*<", "><");
}
}