diff options
author | Vitaly Takmazov | 2016-07-07 15:13:47 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2016-07-07 15:13:47 +0300 |
commit | e5c8298beee5dde90ca98cc4707faac4bf0e2f0c (patch) | |
tree | 10178a0103ae8ac17849e56914b87b0ee681d0ba /src/main/java/com/juick/xmpp/s2s/Connection.java | |
parent | d85424021a63c1519e18bd6518ad3424de61fb9f (diff) |
reorganize project
Diffstat (limited to 'src/main/java/com/juick/xmpp/s2s/Connection.java')
-rw-r--r-- | src/main/java/com/juick/xmpp/s2s/Connection.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/src/main/java/com/juick/xmpp/s2s/Connection.java b/src/main/java/com/juick/xmpp/s2s/Connection.java deleted file mode 100644 index eae6efaa..00000000 --- a/src/main/java/com/juick/xmpp/s2s/Connection.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.juick.xmpp.s2s; - -import org.xmlpull.mxp1.MXParser; -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; -import javax.net.ssl.KeyManagerFactory; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import java.io.*; -import java.net.Socket; -import java.security.*; -import java.security.cert.CertificateException; -import java.util.UUID; -import java.util.logging.Logger; - -/** - * - * @author ugnich - */ -public class Connection { - - protected static final Logger LOGGER = Logger.getLogger(Connection.class.getName()); - - public String streamID; - public long tsCreated = 0; - public long tsLocalData = 0; - public long bytesLocal = 0; - public long packetsLocal = 0; - XMPPComponent xmpp; - Socket socket; - public static final String NS_DB = "jabber:server:dialback"; - public static final String NS_TLS = "urn:ietf:params:xml:ns:xmpp-tls"; - public static final String NS_STREAM = "http://etherx.jabber.org/streams"; - XmlPullParser parser = new MXParser(); - OutputStreamWriter writer; - private boolean secured = false; - SSLContext sc; - private TrustManager[] trustAllCerts = new TrustManager[]{ - new X509TrustManager() { - public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) { - } - - public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) { - } - public java.security.cert.X509Certificate[] getAcceptedIssuers() { - return null; - } - } - }; - - - public Connection(XMPPComponent xmpp) throws XmlPullParserException, KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException, UnrecoverableKeyException, KeyManagementException { - this.xmpp = xmpp; - tsCreated = System.currentTimeMillis(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - KeyStore ks = KeyStore.getInstance("JKS"); - try (InputStream ksIs = new FileInputStream(xmpp.keystore)) { - ks.load(ksIs, xmpp.keystorePassword.toCharArray()); - } - - KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory - .getDefaultAlgorithm()); - kmf.init(ks, xmpp.keystorePassword.toCharArray()); - sc = SSLContext.getInstance("TLSv1.2"); - - sc.init(kmf.getKeyManagers(), trustAllCerts, new SecureRandom()); - - } - - public void logParser() { - if (streamID == null) { - return; - } - String tag = "IN: <" + parser.getName(); - for (int i = 0; i < parser.getAttributeCount(); i++) { - tag += " " + parser.getAttributeName(i) + "=\"" + parser.getAttributeValue(i) + "\""; - } - tag += ">...</" + parser.getName() + ">\n"; - LOGGER.fine(tag); - } - - public void sendStanza(String xml) throws IOException { - if (streamID != null) { - LOGGER.fine("OUT: " + xml + "\n"); - } - writer.write(xml); - writer.flush(); - tsLocalData = System.currentTimeMillis(); - bytesLocal += xml.length(); - packetsLocal++; - } - - void closeConnection() { - if (streamID != null) { - LOGGER.info(String.format("CLOSING STREAM %s", streamID)); - } - - try { - writer.write("</stream:stream>"); - } catch (Exception e) { - } - - try { - writer.close(); - } catch (Exception e) { - } - - try { - socket.close(); - } catch (Exception e) { - } - } - - static String generateDialbackKey(String to, String from, String id) throws Exception { - Mac hmacSha256 = Mac.getInstance("hmacSHA256"); - - SecretKeySpec secret_key = new SecretKeySpec("$UppPerSeCCret4".getBytes(), "SHA-256"); - hmacSha256.init(secret_key); - byte key[] = hmacSha256.doFinal((to + " " + from + " " + id).getBytes()); - - StringBuilder hexkey = new StringBuilder(); - for (int i = 0; i < key.length; i++) { - hexkey.append(Integer.toHexString(0xFF & key[i])); - } - - return hexkey.toString(); - } - - public boolean isSecured() { - return secured; - } - - public void setSecured(boolean secured) { - this.secured = secured; - } - - public void restartParser() throws XmlPullParserException, IOException { - parser = new MXParser(); - parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true); - parser.setInput(new InputStreamReader(socket.getInputStream())); - writer = new OutputStreamWriter(socket.getOutputStream()); - streamID = UUID.randomUUID().toString(); - } -} |