summaryrefslogtreecommitdiffstats
path: root/luni
diff options
context:
space:
mode:
authorAlex Klyubin <klyubin@google.com>2013-11-07 17:08:07 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-11-07 17:08:08 +0000
commit3a33c8aa9c68df87f46a1d78080b7b526aee939e (patch)
tree5040282ffa53361f5845b6b10753946448fbe9fd /luni
parent35dca2033cdc015b528e01a1f97d2bcc65cdceaf (diff)
parent038cb91ddb127750737055649f6171dc1af3985a (diff)
downloadlibcore-3a33c8aa9c68df87f46a1d78080b7b526aee939e.zip
libcore-3a33c8aa9c68df87f46a1d78080b7b526aee939e.tar.gz
libcore-3a33c8aa9c68df87f46a1d78080b7b526aee939e.tar.bz2
Merge "BEAST attack mitigation for OpenSSL-backed SSLSockets."
Diffstat (limited to 'luni')
-rw-r--r--luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java34
1 files changed, 25 insertions, 9 deletions
diff --git a/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java b/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
index 98bcdc6..456a1e3 100644
--- a/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
+++ b/luni/src/test/java/libcore/javax/net/ssl/SSLSocketTest.java
@@ -54,6 +54,7 @@ import javax.net.ssl.TrustManager;
import javax.net.ssl.X509KeyManager;
import javax.net.ssl.X509TrustManager;
import junit.framework.TestCase;
+import libcore.io.Streams;
import libcore.java.security.StandardNames;
import libcore.java.security.TestKeyStore;
@@ -177,17 +178,32 @@ public class SSLSocketTest extends TestCase {
SSLSocket server = pair[0];
SSLSocket client = pair[1];
+
+ // Check that the client can read the message sent by the server
server.getOutputStream().write(serverToClient);
+ byte[] clientFromServer = new byte[serverToClient.length];
+ Streams.readFully(client.getInputStream(), clientFromServer);
+ assertEquals(serverToClientString, new String(clientFromServer));
+
+ // Check that the server can read the message sent by the client
client.getOutputStream().write(clientToServer);
- // arrays are too big to make sure we get back only what we expect
- byte[] clientFromServer = new byte[serverToClient.length+1];
- byte[] serverFromClient = new byte[clientToServer.length+1];
- int readFromServer = client.getInputStream().read(clientFromServer);
- int readFromClient = server.getInputStream().read(serverFromClient);
- assertEquals(serverToClient.length, readFromServer);
- assertEquals(clientToServer.length, readFromClient);
- assertEquals(clientToServerString, new String(serverFromClient, 0, readFromClient));
- assertEquals(serverToClientString, new String(clientFromServer, 0, readFromServer));
+ byte[] serverFromClient = new byte[clientToServer.length];
+ Streams.readFully(server.getInputStream(), serverFromClient);
+ assertEquals(clientToServerString, new String(serverFromClient));
+
+ // Check that the server and the client cannot read anything else
+ // (reads should time out)
+ server.setSoTimeout(10);
+ try {
+ server.getInputStream().read();
+ fail();
+ } catch (IOException expected) {}
+ client.setSoTimeout(10);
+ try {
+ client.getInputStream().read();
+ fail();
+ } catch (IOException expected) {}
+
client.close();
server.close();
assertFalse(errorExpected);