Fix checkstyle issues
This commit is contained in:
parent
cc198371b0
commit
474e327f42
|
@ -6,8 +6,12 @@ import org.jivesoftware.smack.SmackException;
|
||||||
import org.jivesoftware.smack.XMPPConnection;
|
import org.jivesoftware.smack.XMPPConnection;
|
||||||
import org.jivesoftware.smack.XMPPException;
|
import org.jivesoftware.smack.XMPPException;
|
||||||
import org.jivesoftware.smack.packet.Message;
|
import org.jivesoftware.smack.packet.Message;
|
||||||
|
import org.jivesoftware.smack.provider.ProviderManager;
|
||||||
import org.jivesoftware.smackx.ikey.element.IkeyElement;
|
import org.jivesoftware.smackx.ikey.element.IkeyElement;
|
||||||
|
import org.jivesoftware.smackx.ikey.element.SubordinateListElement;
|
||||||
import org.jivesoftware.smackx.ikey.mechanism.IkeySignatureVerificationMechanism;
|
import org.jivesoftware.smackx.ikey.mechanism.IkeySignatureVerificationMechanism;
|
||||||
|
import org.jivesoftware.smackx.ikey.provider.IkeyElementProvider;
|
||||||
|
import org.jivesoftware.smackx.ikey.provider.SubordinateListElementProvider;
|
||||||
import org.jivesoftware.smackx.ikey.record.IkeyStore;
|
import org.jivesoftware.smackx.ikey.record.IkeyStore;
|
||||||
import org.jivesoftware.smackx.ikey.util.IkeyConstants;
|
import org.jivesoftware.smackx.ikey.util.IkeyConstants;
|
||||||
import org.jivesoftware.smackx.ikey.util.UnsupportedSignatureAlgorithmException;
|
import org.jivesoftware.smackx.ikey.util.UnsupportedSignatureAlgorithmException;
|
||||||
|
@ -34,6 +38,12 @@ public final class IkeyManager extends Manager {
|
||||||
private static final Logger LOGGER = Logger.getLogger(IkeyManager.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(IkeyManager.class.getName());
|
||||||
private static final Map<XMPPConnection, IkeyManager> INSTANCES = new WeakHashMap<>();
|
private static final Map<XMPPConnection, IkeyManager> INSTANCES = new WeakHashMap<>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
// TODO: Replace with .providers file once merged into Smack
|
||||||
|
ProviderManager.addExtensionProvider(IkeyElement.ELEMENT, IkeyElement.NAMESPACE, new IkeyElementProvider());
|
||||||
|
ProviderManager.addExtensionProvider(SubordinateListElement.ELEMENT, SubordinateListElement.NAMESPACE, new SubordinateListElementProvider());
|
||||||
|
}
|
||||||
|
|
||||||
private IkeyStore store;
|
private IkeyStore store;
|
||||||
|
|
||||||
private IkeyManager(XMPPConnection connection) {
|
private IkeyManager(XMPPConnection connection) {
|
||||||
|
|
|
@ -18,8 +18,8 @@ public class IkeySignatureCreator {
|
||||||
|
|
||||||
public ProofElement createProofFor(SubordinateListElement subordinateListElement)
|
public ProofElement createProofFor(SubordinateListElement subordinateListElement)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
byte[] canonicalized = new SignedElement(subordinateListElement).getUtf8Bytes();
|
byte[] utf8 = new SignedElement(subordinateListElement).getUtf8Bytes();
|
||||||
byte[] signature = signatureCreationMechanism.createSignature(canonicalized);
|
byte[] signature = signatureCreationMechanism.createSignature(utf8);
|
||||||
|
|
||||||
return new ProofElement(Base64.encodeToString(signature));
|
return new ProofElement(Base64.encodeToString(signature));
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,10 @@ public class IkeySignatureVerifier {
|
||||||
throwIfMismatchingMechanism(element);
|
throwIfMismatchingMechanism(element);
|
||||||
throwIfMismatchingOwnerJid(element, owner);
|
throwIfMismatchingOwnerJid(element, owner);
|
||||||
|
|
||||||
byte[] canonicalizedXml = element.getSignedElement().getUtf8Bytes();
|
byte[] utf8 = element.getSignedElement().getUtf8Bytes();
|
||||||
byte[] signature = Base64.decode(element.getProof().getBase64Signature());
|
byte[] signature = Base64.decode(element.getProof().getBase64Signature());
|
||||||
|
|
||||||
return signatureVerificationMechanism.isSignatureValid(canonicalizedXml, signature);
|
return signatureVerificationMechanism.isSignatureValid(utf8, signature);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void throwIfMismatchingOwnerJid(IkeyElement element, EntityBareJid owner) {
|
private static void throwIfMismatchingOwnerJid(IkeyElement element, EntityBareJid owner) {
|
||||||
|
|
|
@ -39,11 +39,10 @@ public class SubordinateElement implements NamedElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
|
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
|
||||||
XmlStringBuilder xml = new XmlStringBuilder(this)
|
return new XmlStringBuilder(this)
|
||||||
.attribute(ATTR_SUB_URI, getUri().toString())
|
.attribute(ATTR_SUB_URI, getUri().toString())
|
||||||
.attribute(ATTR_SUB_FINGERPRINT, getFingerprint())
|
.attribute(ATTR_SUB_FINGERPRINT, getFingerprint())
|
||||||
.closeEmptyElement();
|
.closeEmptyElement();
|
||||||
return xml;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
package org.jivesoftware.smackx.ikey.element;
|
package org.jivesoftware.smackx.ikey.element;
|
||||||
|
|
||||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||||
import org.jivesoftware.smack.packet.NamedElement;
|
|
||||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||||
import org.jivesoftware.smack.util.EqualsUtil;
|
import org.jivesoftware.smack.util.EqualsUtil;
|
||||||
import org.jivesoftware.smack.util.HashCode;
|
import org.jivesoftware.smack.util.HashCode;
|
||||||
import org.jivesoftware.smack.util.Objects;
|
import org.jivesoftware.smack.util.Objects;
|
||||||
import org.jivesoftware.smack.util.ParserUtils;
|
|
||||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||||
import org.jivesoftware.smack.util.stringencoder.Base64;
|
import org.jivesoftware.smack.util.stringencoder.Base64;
|
||||||
import org.jivesoftware.smackx.ikey.util.IkeyConstants;
|
import org.jivesoftware.smackx.ikey.util.IkeyConstants;
|
||||||
|
|
|
@ -3,25 +3,16 @@ package org.jivesoftware.smackx.ikey.provider;
|
||||||
import org.jivesoftware.smack.packet.XmlEnvironment;
|
import org.jivesoftware.smack.packet.XmlEnvironment;
|
||||||
import org.jivesoftware.smack.parsing.SmackParsingException;
|
import org.jivesoftware.smack.parsing.SmackParsingException;
|
||||||
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
import org.jivesoftware.smack.provider.ExtensionElementProvider;
|
||||||
import org.jivesoftware.smack.util.PacketParserUtils;
|
|
||||||
import org.jivesoftware.smack.util.ParserUtils;
|
import org.jivesoftware.smack.util.ParserUtils;
|
||||||
import org.jivesoftware.smack.util.stringencoder.Base64;
|
|
||||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
import org.jivesoftware.smack.xml.XmlPullParser;
|
||||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||||
import org.jivesoftware.smackx.ikey.element.IkeyElement;
|
import org.jivesoftware.smackx.ikey.element.IkeyElement;
|
||||||
import org.jivesoftware.smackx.ikey.element.SignedElement;
|
|
||||||
import org.jivesoftware.smackx.ikey.element.ProofElement;
|
import org.jivesoftware.smackx.ikey.element.ProofElement;
|
||||||
import org.jivesoftware.smackx.ikey.element.SubordinateElement;
|
import org.jivesoftware.smackx.ikey.element.SignedElement;
|
||||||
import org.jivesoftware.smackx.ikey.element.SubordinateListElement;
|
|
||||||
import org.jivesoftware.smackx.ikey.element.SuperordinateElement;
|
import org.jivesoftware.smackx.ikey.element.SuperordinateElement;
|
||||||
import org.jivesoftware.smackx.ikey.mechanism.IkeyType;
|
import org.jivesoftware.smackx.ikey.mechanism.IkeyType;
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class IkeyElementProvider extends ExtensionElementProvider<IkeyElement> {
|
public class IkeyElementProvider extends ExtensionElementProvider<IkeyElement> {
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,10 @@ package org.jivesoftware.smackx.ikey.record;
|
||||||
|
|
||||||
import org.jivesoftware.smack.parsing.SmackParsingException;
|
import org.jivesoftware.smack.parsing.SmackParsingException;
|
||||||
import org.jivesoftware.smack.util.Objects;
|
import org.jivesoftware.smack.util.Objects;
|
||||||
import org.jivesoftware.smack.xml.SmackXmlParser;
|
import org.jivesoftware.smack.util.PacketParserUtils;
|
||||||
import org.jivesoftware.smack.xml.XmlPullParser;
|
|
||||||
import org.jivesoftware.smack.xml.XmlPullParserException;
|
import org.jivesoftware.smack.xml.XmlPullParserException;
|
||||||
import org.jivesoftware.smackx.ikey.element.IkeyElement;
|
import org.jivesoftware.smackx.ikey.element.IkeyElement;
|
||||||
import org.jivesoftware.smackx.ikey.provider.IkeyElementProvider;
|
import org.jivesoftware.smackx.ikey.provider.IkeyElementProvider;
|
||||||
import org.jivesoftware.smackx.ikey.record.IkeyStore;
|
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
|
@ -18,8 +16,6 @@ import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.io.Reader;
|
|
||||||
import java.io.StringReader;
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
public class FileBasedIkeyStore implements IkeyStore {
|
public class FileBasedIkeyStore implements IkeyStore {
|
||||||
|
@ -38,7 +34,7 @@ public class FileBasedIkeyStore implements IkeyStore {
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
String content = getFileContent(new FileInputStream(file));
|
String content = getFileContent(new FileInputStream(file));
|
||||||
return IkeyElementProvider.INSTANCE.parse(getParser(content));
|
return IkeyElementProvider.INSTANCE.parse(PacketParserUtils.getParserFor(content));
|
||||||
} catch (XmlPullParserException | SmackParsingException e) {
|
} catch (XmlPullParserException | SmackParsingException e) {
|
||||||
throw new IOException(e);
|
throw new IOException(e);
|
||||||
}
|
}
|
||||||
|
@ -71,36 +67,4 @@ public class FileBasedIkeyStore implements IkeyStore {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static XmlPullParser getParser(String xml) {
|
|
||||||
return getParser(new StringReader(xml), null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static XmlPullParser getParser(Reader reader, String startTag) {
|
|
||||||
XmlPullParser parser;
|
|
||||||
try {
|
|
||||||
parser = SmackXmlParser.newXmlParser(reader);
|
|
||||||
if (startTag == null) {
|
|
||||||
while (parser.getEventType() != XmlPullParser.Event.START_ELEMENT) {
|
|
||||||
parser.next();
|
|
||||||
}
|
|
||||||
return parser;
|
|
||||||
}
|
|
||||||
boolean found = false;
|
|
||||||
|
|
||||||
while (!found) {
|
|
||||||
if ((parser.next() == XmlPullParser.Event.START_ELEMENT) && parser.getName().equals(startTag))
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!found)
|
|
||||||
throw new IllegalArgumentException("Can not find start tag '" + startTag + "'");
|
|
||||||
} catch (XmlPullParserException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
return parser;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,5 +4,4 @@ public class IkeyConstants {
|
||||||
|
|
||||||
public static final String NAMESPACE = "urn:xmpp:ikey:0";
|
public static final String NAMESPACE = "urn:xmpp:ikey:0";
|
||||||
public static final String IKEY_NODE = NAMESPACE + ":ikey";
|
public static final String IKEY_NODE = NAMESPACE + ":ikey";
|
||||||
public static final String SUB_NODE = NAMESPACE + ":sub";
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue