/* $Id$ */ package org.noreply.fancydress.type3.mmtp; import org.noreply.fancydress.type3.routing.*; import org.noreply.fancydress.type3.*; import org.noreply.fancydress.crypto.*; import org.noreply.fancydress.misc.*; import org.noreply.fancydress.status.*; import javax.net.ssl.*; import java.net.*; import java.io.*; import java.util.*; import java.security.*; public class MMTP { static final String TLS_PROTO = "TLSv1"; static final String SSL_PROTO = "SSLv3"; static final String TLS_DHE_RSA_WITH_AES_128_CBC_SHA = "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"; static final String SSL3_RSA_DES_192_CBC3_SHA = "SSL_RSA_WITH_3DES_EDE_CBC_SHA"; public static void send(Packet packet) throws Exception { byte[] hash = CryptoPrimitives.hash(packet.asOctets(), Util.toOctets("SEND")); byte[] ackExpected = Util.concat( Util.toOctets("RECEIVED\r\n"), CryptoPrimitives.hash(packet.asOctets(), Util.toOctets("RECEIVED"))); byte[] ackRead = new byte[30]; MMTPTrustManager trustManager = new MMTPTrustManager(packet.getRoute().getKeyID()); TrustManager[] trustManagers = { trustManager }; SSLContext context = SSLContext.getInstance("TLS"); context.init(null, trustManagers, null); SSLSocketFactory socketFactory = context.getSocketFactory(); SSLSocket socket = (SSLSocket) socketFactory.createSocket("127.0.0.1", 48099); String[] supportedProtocols = socket.getSupportedProtocols(); boolean haveTLSv1 = false; boolean haveSSLv3 = false; for (int i=0; i