Skip to content

Commit 8e9d744

Browse files
committed
Refactoring in TLS tests
1 parent a4b0638 commit 8e9d744

File tree

7 files changed

+58
-41
lines changed

7 files changed

+58
-41
lines changed

tls/src/test/java/org/bouncycastle/tls/test/DTLSAggregatedHandshakeRetransmissionTest.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import org.bouncycastle.tls.DTLSTransport;
77
import org.bouncycastle.tls.DTLSVerifier;
88
import org.bouncycastle.tls.DatagramTransport;
9+
import org.bouncycastle.tls.TlsServer;
910
import org.bouncycastle.tls.crypto.TlsCrypto;
10-
import org.bouncycastle.tls.crypto.impl.bc.BcTlsCrypto;
1111
import org.bouncycastle.util.Arrays;
1212
import org.bouncycastle.util.Strings;
1313

@@ -18,12 +18,15 @@ public class DTLSAggregatedHandshakeRetransmissionTest
1818
{
1919
public void testClientServer() throws Exception
2020
{
21+
MockDTLSClient client = new MockDTLSClient(null);
22+
MockDTLSServer server = new MockDTLSServer();
23+
2124
DTLSClientProtocol clientProtocol = new DTLSClientProtocol();
2225
DTLSServerProtocol serverProtocol = new DTLSServerProtocol();
2326

2427
MockDatagramAssociation network = new MockDatagramAssociation(1500);
2528

26-
ServerThread serverThread = new ServerThread(serverProtocol, network.getServer());
29+
ServerThread serverThread = new ServerThread(serverProtocol, server, network.getServer());
2730
serverThread.start();
2831

2932
DatagramTransport clientTransport = network.getClient();
@@ -34,8 +37,6 @@ public void testClientServer() throws Exception
3437

3538
clientTransport = new MinimalHandshakeAggregator(clientTransport, false, true);
3639

37-
MockDTLSClient client = new MockDTLSClient(null);
38-
3940
client.setHandshakeTimeoutMillis(30000); // Test gets stuck, so we need it to time out.
4041

4142
DTLSTransport dtlsClient = clientProtocol.connect(client, clientTransport);
@@ -61,20 +62,22 @@ static class ServerThread
6162
extends Thread
6263
{
6364
private final DTLSServerProtocol serverProtocol;
65+
private final TlsServer server;
6466
private final DatagramTransport serverTransport;
6567
private volatile boolean isShutdown = false;
6668

67-
ServerThread(DTLSServerProtocol serverProtocol, DatagramTransport serverTransport)
69+
ServerThread(DTLSServerProtocol serverProtocol, TlsServer server, DatagramTransport serverTransport)
6870
{
6971
this.serverProtocol = serverProtocol;
72+
this.server = server;
7073
this.serverTransport = serverTransport;
7174
}
7275

7376
public void run()
7477
{
7578
try
7679
{
77-
TlsCrypto serverCrypto = new BcTlsCrypto();
80+
TlsCrypto serverCrypto = server.getCrypto();
7881

7982
DTLSRequest request = null;
8083

@@ -105,7 +108,6 @@ public void run()
105108

106109
// NOTE: A real server would handle each DTLSRequest in a new task/thread and continue accepting
107110
{
108-
MockDTLSServer server = new MockDTLSServer(serverCrypto);
109111
DTLSTransport dtlsTransport = serverProtocol.accept(server, serverTransport, request);
110112
byte[] buf = new byte[dtlsTransport.getReceiveLimit()];
111113
while (!isShutdown)

tls/src/test/java/org/bouncycastle/tls/test/DTLSHandshakeRetransmissionTest.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import org.bouncycastle.tls.DTLSTransport;
77
import org.bouncycastle.tls.DTLSVerifier;
88
import org.bouncycastle.tls.DatagramTransport;
9+
import org.bouncycastle.tls.TlsServer;
910
import org.bouncycastle.tls.crypto.TlsCrypto;
10-
import org.bouncycastle.tls.crypto.impl.bc.BcTlsCrypto;
1111
import org.bouncycastle.util.Arrays;
1212
import org.bouncycastle.util.Strings;
1313

@@ -18,12 +18,15 @@ public class DTLSHandshakeRetransmissionTest
1818
{
1919
public void testClientServer() throws Exception
2020
{
21+
MockDTLSClient client = new MockDTLSClient(null);
22+
MockDTLSServer server = new MockDTLSServer();
23+
2124
DTLSClientProtocol clientProtocol = new DTLSClientProtocol();
2225
DTLSServerProtocol serverProtocol = new DTLSServerProtocol();
2326

2427
MockDatagramAssociation network = new MockDatagramAssociation(1500);
2528

26-
ServerThread serverThread = new ServerThread(serverProtocol, network.getServer());
29+
ServerThread serverThread = new ServerThread(serverProtocol, server, network.getServer());
2730
serverThread.start();
2831

2932
DatagramTransport clientTransport = network.getClient();
@@ -32,8 +35,6 @@ public void testClientServer() throws Exception
3235

3336
clientTransport = new LoggingDatagramTransport(clientTransport, System.out);
3437

35-
MockDTLSClient client = new MockDTLSClient(null);
36-
3738
DTLSTransport dtlsClient = clientProtocol.connect(client, clientTransport);
3839

3940
for (int i = 1; i <= 10; ++i)
@@ -57,20 +58,22 @@ static class ServerThread
5758
extends Thread
5859
{
5960
private final DTLSServerProtocol serverProtocol;
61+
private final TlsServer server;
6062
private final DatagramTransport serverTransport;
6163
private volatile boolean isShutdown = false;
6264

63-
ServerThread(DTLSServerProtocol serverProtocol, DatagramTransport serverTransport)
65+
ServerThread(DTLSServerProtocol serverProtocol, TlsServer server, DatagramTransport serverTransport)
6466
{
6567
this.serverProtocol = serverProtocol;
68+
this.server = server;
6669
this.serverTransport = serverTransport;
6770
}
6871

6972
public void run()
7073
{
7174
try
7275
{
73-
TlsCrypto serverCrypto = new BcTlsCrypto();
76+
TlsCrypto serverCrypto = server.getCrypto();
7477

7578
DTLSRequest request = null;
7679

@@ -101,7 +104,6 @@ public void run()
101104

102105
// NOTE: A real server would handle each DTLSRequest in a new task/thread and continue accepting
103106
{
104-
MockDTLSServer server = new MockDTLSServer(serverCrypto);
105107
DTLSTransport dtlsTransport = serverProtocol.accept(server, serverTransport, request);
106108
byte[] buf = new byte[dtlsTransport.getReceiveLimit()];
107109
while (!isShutdown)

tls/src/test/java/org/bouncycastle/tls/test/DTLSProtocolTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package org.bouncycastle.tls.test;
22

3-
import java.security.SecureRandom;
3+
import java.util.Random;
44

55
import org.bouncycastle.tls.DTLSClientProtocol;
66
import org.bouncycastle.tls.DTLSRequest;
77
import org.bouncycastle.tls.DTLSServerProtocol;
88
import org.bouncycastle.tls.DTLSTransport;
99
import org.bouncycastle.tls.DTLSVerifier;
1010
import org.bouncycastle.tls.DatagramTransport;
11+
import org.bouncycastle.tls.TlsServer;
1112
import org.bouncycastle.tls.crypto.TlsCrypto;
12-
import org.bouncycastle.tls.crypto.impl.bc.BcTlsCrypto;
1313
import org.bouncycastle.util.Arrays;
1414
import org.bouncycastle.util.Strings;
1515

@@ -20,24 +20,23 @@ public class DTLSProtocolTest
2020
{
2121
public void testClientServer() throws Exception
2222
{
23-
SecureRandom secureRandom = new SecureRandom();
23+
MockDTLSClient client = new MockDTLSClient(null);
24+
MockDTLSServer server = new MockDTLSServer();
2425

2526
DTLSClientProtocol clientProtocol = new DTLSClientProtocol();
2627
DTLSServerProtocol serverProtocol = new DTLSServerProtocol();
2728

2829
MockDatagramAssociation network = new MockDatagramAssociation(1500);
2930

30-
ServerThread serverThread = new ServerThread(serverProtocol, network.getServer());
31+
ServerThread serverThread = new ServerThread(serverProtocol, server, network.getServer());
3132
serverThread.start();
3233

3334
DatagramTransport clientTransport = network.getClient();
3435

35-
clientTransport = new UnreliableDatagramTransport(clientTransport, secureRandom, 0, 0);
36+
clientTransport = new UnreliableDatagramTransport(clientTransport, new Random(), 0, 0);
3637

3738
clientTransport = new LoggingDatagramTransport(clientTransport, System.out);
3839

39-
MockDTLSClient client = new MockDTLSClient(null);
40-
4140
DTLSTransport dtlsClient = clientProtocol.connect(client, clientTransport);
4241

4342
for (int i = 1; i <= 10; ++i)
@@ -61,20 +60,22 @@ static class ServerThread
6160
extends Thread
6261
{
6362
private final DTLSServerProtocol serverProtocol;
63+
private final TlsServer server;
6464
private final DatagramTransport serverTransport;
6565
private volatile boolean isShutdown = false;
6666

67-
ServerThread(DTLSServerProtocol serverProtocol, DatagramTransport serverTransport)
67+
ServerThread(DTLSServerProtocol serverProtocol, TlsServer server, DatagramTransport serverTransport)
6868
{
6969
this.serverProtocol = serverProtocol;
70+
this.server = server;
7071
this.serverTransport = serverTransport;
7172
}
7273

7374
public void run()
7475
{
7576
try
7677
{
77-
TlsCrypto serverCrypto = new BcTlsCrypto();
78+
TlsCrypto serverCrypto = server.getCrypto();
7879

7980
DTLSRequest request = null;
8081

@@ -105,7 +106,6 @@ public void run()
105106

106107
// NOTE: A real server would handle each DTLSRequest in a new task/thread and continue accepting
107108
{
108-
MockDTLSServer server = new MockDTLSServer(serverCrypto);
109109
DTLSTransport dtlsTransport = serverProtocol.accept(server, serverTransport, request);
110110
byte[] buf = new byte[dtlsTransport.getReceiveLimit()];
111111
while (!isShutdown)

tls/src/test/java/org/bouncycastle/tls/test/DTLSRawKeysProtocolTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -348,23 +348,23 @@ public void run()
348348
TlsCrypto serverCrypto = server.getCrypto();
349349

350350
DTLSRequest request = null;
351-
351+
352352
// Use DTLSVerifier to require a HelloVerifyRequest cookie exchange before accepting
353353
{
354354
DTLSVerifier verifier = new DTLSVerifier(serverCrypto);
355-
355+
356356
// NOTE: Test value only - would typically be the client IP address
357357
byte[] clientID = Strings.toUTF8ByteArray("MockRawKeysTlsClient");
358-
358+
359359
int receiveLimit = serverTransport.getReceiveLimit();
360360
int dummyOffset = serverCrypto.getSecureRandom().nextInt(16) + 1;
361361
byte[] buf = new byte[dummyOffset + serverTransport.getReceiveLimit()];
362-
362+
363363
do
364364
{
365365
if (isShutdown)
366366
return;
367-
367+
368368
int length = serverTransport.receive(buf, dummyOffset, receiveLimit, 100);
369369
if (length > 0)
370370
{

tls/src/test/java/org/bouncycastle/tls/test/MockDatagramAssociation.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ public MockDatagramAssociation(int mtu)
2222
this.server = new MockDatagramTransport(serverQueue, clientQueue);
2323
}
2424

25+
public int getMTU()
26+
{
27+
return mtu;
28+
}
29+
2530
public DatagramTransport getClient()
2631
{
2732
return client;
@@ -35,7 +40,7 @@ public DatagramTransport getServer()
3540
private class MockDatagramTransport
3641
implements DatagramTransport
3742
{
38-
private Vector receiveQueue, sendQueue;
43+
private final Vector receiveQueue, sendQueue;
3944

4045
MockDatagramTransport(Vector receiveQueue, Vector sendQueue)
4146
{
@@ -46,13 +51,13 @@ private class MockDatagramTransport
4651
public int getReceiveLimit()
4752
throws IOException
4853
{
49-
return mtu;
54+
return getMTU();
5055
}
5156

5257
public int getSendLimit()
5358
throws IOException
5459
{
55-
return mtu;
60+
return getMTU();
5661
}
5762

5863
public int receive(byte[] buf, int off, int len, int waitMillis)
@@ -85,7 +90,7 @@ public int receive(byte[] buf, int off, int len, int waitMillis)
8590
public void send(byte[] buf, int off, int len)
8691
throws IOException
8792
{
88-
if (len > mtu)
93+
if (len > getMTU())
8994
{
9095
// TODO Simulate rejection?
9196
}

tls/src/test/java/org/bouncycastle/tls/test/TlsProtocolTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.PipedOutputStream;
66

77
import org.bouncycastle.tls.TlsClientProtocol;
8+
import org.bouncycastle.tls.TlsServer;
89
import org.bouncycastle.tls.TlsServerProtocol;
910
import org.bouncycastle.util.Arrays;
1011
import org.bouncycastle.util.io.Streams;
@@ -24,10 +25,12 @@ public void testClientServer() throws Exception
2425
TlsClientProtocol clientProtocol = new TlsClientProtocol(clientRead, clientWrite);
2526
TlsServerProtocol serverProtocol = new TlsServerProtocol(serverRead, serverWrite);
2627

27-
ServerThread serverThread = new ServerThread(serverProtocol);
28+
MockTlsClient client = new MockTlsClient(null);
29+
MockTlsServer server = new MockTlsServer();
30+
31+
ServerThread serverThread = new ServerThread(serverProtocol, server);
2832
serverThread.start();
2933

30-
MockTlsClient client = new MockTlsClient(null);
3134
clientProtocol.connect(client);
3235

3336
// NOTE: Because we write-all before we read-any, this length can't be more than the pipe capacity
@@ -54,17 +57,18 @@ static class ServerThread
5457
extends Thread
5558
{
5659
private final TlsServerProtocol serverProtocol;
60+
private final TlsServer server;
5761

58-
ServerThread(TlsServerProtocol serverProtocol)
62+
ServerThread(TlsServerProtocol serverProtocol, TlsServer server)
5963
{
6064
this.serverProtocol = serverProtocol;
65+
this.server = server;
6166
}
6267

6368
public void run()
6469
{
6570
try
6671
{
67-
MockTlsServer server = new MockTlsServer();
6872
serverProtocol.accept(server);
6973
Streams.pipeAll(serverProtocol.getInputStream(), serverProtocol.getOutputStream());
7074
serverProtocol.close();

tls/src/test/java/org/bouncycastle/tls/test/TlsSRPProtocolTest.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.PipedOutputStream;
66

77
import org.bouncycastle.tls.TlsClientProtocol;
8+
import org.bouncycastle.tls.TlsServer;
89
import org.bouncycastle.tls.TlsServerProtocol;
910
import org.bouncycastle.util.Arrays;
1011
import org.bouncycastle.util.io.Streams;
@@ -24,10 +25,12 @@ public void testClientServer() throws Exception
2425
TlsClientProtocol clientProtocol = new TlsClientProtocol(clientRead, clientWrite);
2526
TlsServerProtocol serverProtocol = new TlsServerProtocol(serverRead, serverWrite);
2627

27-
ServerThread serverThread = new ServerThread(serverProtocol);
28+
MockSRPTlsClient client = new MockSRPTlsClient(null, MockSRPTlsServer.TEST_SRP_IDENTITY);
29+
MockSRPTlsServer server = new MockSRPTlsServer();
30+
31+
ServerThread serverThread = new ServerThread(serverProtocol, server);
2832
serverThread.start();
2933

30-
MockSRPTlsClient client = new MockSRPTlsClient(null, MockSRPTlsServer.TEST_SRP_IDENTITY);
3134
clientProtocol.connect(client);
3235

3336
// NOTE: Because we write-all before we read-any, this length can't be more than the pipe capacity
@@ -54,17 +57,18 @@ static class ServerThread
5457
extends Thread
5558
{
5659
private final TlsServerProtocol serverProtocol;
60+
private final TlsServer server;
5761

58-
ServerThread(TlsServerProtocol serverProtocol)
62+
ServerThread(TlsServerProtocol serverProtocol, TlsServer server)
5963
{
6064
this.serverProtocol = serverProtocol;
65+
this.server = server;
6166
}
6267

6368
public void run()
6469
{
6570
try
6671
{
67-
MockSRPTlsServer server = new MockSRPTlsServer();
6872
serverProtocol.accept(server);
6973
Streams.pipeAll(serverProtocol.getInputStream(), serverProtocol.getOutputStream());
7074
serverProtocol.close();

0 commit comments

Comments
 (0)