2

我在使用 tls 和 psk 的 spongycastle 实现时遇到问题。

我从网络服务中获得一个 psk 并尝试连接到网络服务器。在我的HttpTransportLayer课堂上,我创建了一个带有服务器地址和端口的套接字。然后我创建一个TLSIdentity获取sessionIdentifier和共享密钥。

try {
    socket = new Socket(hostAddress, port);
}catch(UnknownHostException e){
    e.printStackTrace();
}

TlsPSKIdentity identity = new BcTlsPSKIdentity(sessionID.getBytes("UTF-8"), Util.hexStringToByteArray(psk));
BcPSKTlsClient pskTlsClient = new BcPSKTlsClient(identity);

this.tlsClientProtocol = new TlsClientProtocol(socket.getInputStream(), socket.getOutputStream());
this.tlsClientProtocol.connect(pskTlsClient);

outputStream = tlsClientProtocol.getOutputStream(); 

当我尝试连接服务器时出现异常。有谁知道如何解决这个问题?非常感谢!

    07-04 09:17:38.726: W/System.err(3889): java.io.IOException: Internal TLS error, this could be an attack
07-04 09:17:38.726: W/System.err(3889):     at org.spongycastle.crypto.tls.TlsProtocol.failWithError(TlsProtocol.java:637)
07-04 09:17:38.736: W/System.err(3889):     at org.spongycastle.crypto.tls.TlsProtocol.safeReadRecord(TlsProtocol.java:457)
07-04 09:17:38.736: W/System.err(3889):     at org.spongycastle.crypto.tls.TlsProtocol.completeHandshake(TlsProtocol.java:148)
07-04 09:17:38.746: W/System.err(3889):     at org.spongycastle.crypto.tls.TlsClientProtocol.connect(TlsClientProtocol.java:97)
07-04 09:17:38.756: W/System.err(3889):     at de.rs.webserviceprovider.HttpTransportLayer.connect(HttpTransportLayer.java:135)
07-04 09:17:38.756: W/System.err(3889):     at de.rs.webserviceprovider.HttpTransportLayer.<init>(HttpTransportLayer.java:77)
07-04 09:17:38.766: W/System.err(3889):     at de.rs.eidserviceprovider.ServiceProvider.setServerConnection(ServiceProvider.java:106)
07-04 09:17:38.776: W/System.err(3889):     at de.rs.eidservices.tools.AsyncConnectionTask.doInBackground(AsyncConnectionTask.java:47)
07-04 09:17:38.776: W/System.err(3889):     at de.rs.eidservices.tools.AsyncConnectionTask.doInBackground(AsyncConnectionTask.java:1)
07-04 09:17:38.796: W/System.err(3889):     at android.os.AsyncTask$2.call(AsyncTask.java)
07-04 09:17:38.796: W/System.err(3889):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-04 09:17:38.806: W/System.err(3889):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java)
07-04 09:17:38.816: W/System.err(3889):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-04 09:17:38.826: W/System.err(3889):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-04 09:17:38.826: W/System.err(3889):     at java.lang.Thread.run(Thread.java:864)
4

0 回答 0