Я делаю приложение для Android 2.2 SDK и в настоящее время отправляю данные по Wi-Fi из одного экземпляра приложения в другой (другое мобильное устройство) через Java-сокет, и он отлично работает.Я хотел добавить шифрование, чтобы данные не отправлялись в виде открытого текста.
Я использовал
SSLServerSocketFactory factory = (SSLServerSocketFactory)
SSLServerSocketFactory.getDefault();
server = (SSLServerSocket) factory.createServerSocket(incomingConnectionPort);
while(!Thread.interrupted()) {
SSLSocket incoming = (SSLSocket) server.accept();
.......
}
Для создания SSLServer в одной точке и
SocketAddress sockAddress = new InetSocketAddress(address.getIP(), address.getPort());
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
connectionSocket = (SSLSocket) factory.createSocket();
connectionSocket.connect(sockAddress, 6000);
в другой точке для подключения к серверу.После некоторого поиска я также создал самозаверяющий сертификат с чем-то вроде
keytool -keystore mykeystore -storepass mypass -genkey -keyalg RSA -alias mycert
и добавил это в мой код
System.setProperty("javax.net.ssl.keyStore", "mykeystore");
System.setProperty("javax.net.ssl.keyStorePassword","mypass");
//add cert as trusted
System.setProperty("javax.net.ssl.trustStore","mykeystore");
System.setProperty("javax.net.ssl.trustStorePassword","mypass");
, но это явно не работает в Android по причинамя читаю здесь http://groups.google.com/group/android-developers/browse_thread/thread/16c7eb8e65451d27/26edb971d390e2a3?pli=1.
Я проверил код (решение?) Здесь https://github.com/k9mail/k-9/blob/master/src/com/fsck/k9/mail/store/TrustManagerFactory.java, но я не могу точно определить, что делать, чтобы импортировать сертификат.
Не могли бы вы дать мне несколько советов о том, как правильно импортировать сертификат в хранилище ключей?
Я также был бы признателен за альтернативный способ безопасной передачи данных через сокет TCP в Java (неспецифичен для Android, так как приложение, которое я создаю, будет подключаться и к немобильным устройствам).
Спасибо и, пожалуйста, извините за любые ошибки, которые я сделал.Я еще учусь.:)