Skip to content

Commit 62dc592

Browse files
Merge branch 'master' into bleichenbacherFull
2 parents 483000b + d6a5db9 commit 62dc592

File tree

191 files changed

+1533
-642
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

191 files changed

+1533
-642
lines changed

Attacks/src/main/java/de/rub/nds/tlsattacker/attacks/impl/DtlsPaddingOracleAttacker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public void executeAttack() {
147147

148148
private long[] executeAttackRound() throws IOException {
149149
byte[] roundMessageData = new byte[config.getTrainMessageSize()];
150-
RandomHelper.getRandom().nextBytes(roundMessageData);
150+
tlsContext.getRandom().nextBytes(roundMessageData);
151151
HeartbeatMessage sentHbMessage = new HeartbeatMessage(tlsConfig);
152152
HeartbeatMessagePreparator preparator = new HeartbeatMessagePreparator(tlsContext.getChooser(), sentHbMessage);
153153
preparator.prepare();

Attacks/src/test/java/de/rub/nds/tlsattacker/attacks/pkcs1/BleichenbacherAttackPlaintextTest.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import de.rub.nds.tlsattacker.attacks.pkcs1.oracles.Pkcs1Oracle;
1414
import de.rub.nds.tlsattacker.attacks.pkcs1.oracles.StdPlainPkcs1Oracle;
1515
import de.rub.nds.tlsattacker.attacks.pkcs1.oracles.TestPkcs1Oracle;
16+
import de.rub.nds.tlsattacker.core.state.TlsContext;
1617
import java.io.BufferedInputStream;
1718
import java.io.FileInputStream;
1819
import java.math.BigInteger;
@@ -28,6 +29,7 @@
2829
import javax.crypto.Cipher;
2930
import org.bouncycastle.jce.provider.BouncyCastleProvider;
3031
import org.junit.Assert;
32+
import org.junit.Before;
3133
import org.junit.Test;
3234

3335
/**
@@ -38,13 +40,20 @@ public class BleichenbacherAttackPlaintextTest {
3840

3941
private static final int PREMASTER_SECRET_LENGTH = 48;
4042

43+
private TlsContext context;
44+
45+
@Before
46+
public void setUp() {
47+
context = new TlsContext();
48+
}
49+
4150
@Test
4251
public void testBleichenbacherAttack() throws Exception {
4352

4453
Security.addProvider(new BouncyCastleProvider());
4554
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
46-
RandomHelper.getBadSecureRandom().setSeed(0);
47-
keyPairGenerator.initialize(2048, RandomHelper.getBadSecureRandom());
55+
context.getBadSecureRandom().setSeed(0);
56+
keyPairGenerator.initialize(2048, context.getBadSecureRandom());
4857
KeyPair keyPair = keyPairGenerator.genKeyPair();
4958

5059
SecureRandom sr = new SecureRandom();

TLS-Client/src/main/resources/log4j2.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Configuration status="WARN">
33
<Appenders>
44
<Console name="Console" target="SYSTEM_OUT">
5-
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
5+
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %c{-4} - %msg%n"/>
66
</Console>
77
</Appenders>
88
<Loggers>

TLS-Client/src/test/java/de/rub/nds/tlsattacker/client/main/TlsClientTest.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
*/
99
package de.rub.nds.tlsattacker.client.main;
1010

11+
import de.rub.nds.modifiablevariable.util.BadRandom;
1112
import de.rub.nds.tlsattacker.client.config.ClientCommandConfig;
1213
import de.rub.nds.tlsattacker.core.config.Config;
1314
import de.rub.nds.tlsattacker.core.config.delegate.ClientDelegate;
@@ -53,6 +54,7 @@
5354
import java.util.Arrays;
5455
import java.util.LinkedList;
5556
import java.util.List;
57+
import java.util.Random;
5658
import java.util.Set;
5759
import org.apache.logging.log4j.Level;
5860
import org.apache.logging.log4j.LogManager;
@@ -74,10 +76,12 @@ public class TlsClientTest {
7476

7577
private static final Logger LOGGER = LogManager.getLogger(TlsClientTest.class);
7678

77-
private static final int PORT = 4433;
79+
private static final int PORT = 44330;
7880

7981
private static final int TIMEOUT = 2000;
8082

83+
private BadRandom random = new BadRandom(new Random(0), null);
84+
8185
@Rule
8286
public ErrorCollector collector = new ErrorCollector();
8387

@@ -92,8 +96,8 @@ public TlsClientTest() {
9296
public void testRSAWorkflows() throws OperatorCreationException {
9397
try {
9498
TimeHelper.setProvider(new FixedTimeProvider(0));
95-
KeyPair k = KeyStoreGenerator.createRSAKeyPair(1024);
96-
KeyStore ks = KeyStoreGenerator.createKeyStore(k);
99+
KeyPair k = KeyStoreGenerator.createRSAKeyPair(1024, random);
100+
KeyStore ks = KeyStoreGenerator.createKeyStore(k, random);
97101
tlsServer = new BasicTlsServer(ks, KeyStoreGenerator.PASSWORD, "TLS", PORT);
98102
new Thread(tlsServer).start();
99103
while (!tlsServer.isInitialized())
@@ -113,8 +117,8 @@ public void testRSAWorkflows() throws OperatorCreationException {
113117
@Category(IntegrationTests.class)
114118
public void testECWorkflows() throws OperatorCreationException {
115119
try {
116-
KeyPair k = KeyStoreGenerator.createECKeyPair(256);
117-
KeyStore ks = KeyStoreGenerator.createKeyStore(k);
120+
KeyPair k = KeyStoreGenerator.createECKeyPair(256, random);
121+
KeyStore ks = KeyStoreGenerator.createKeyStore(k, random);
118122
tlsServer = new BasicTlsServer(ks, KeyStoreGenerator.PASSWORD, "TLS", PORT + 1);
119123
new Thread(tlsServer).start();
120124
while (!tlsServer.isInitialized())

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/Config.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public static Config createEmptyConfig() {
111111
try {
112112
field.set(c, null);
113113
} catch (IllegalAccessException e) {
114-
e.printStackTrace();
114+
LOGGER.warn("Could not set field in Config!", e);
115115
}
116116
}
117117
}
@@ -1780,11 +1780,11 @@ public void setKeyShareType(NamedCurve keyShareType) {
17801780
}
17811781

17821782
public boolean isDynamicWorkflow() {
1783-
return dynamicWorkflow;
1783+
throw new UnsupportedOperationException("DynamicWorkflow is currently not supported.");
17841784
}
17851785

17861786
public void setDynamicWorkflow(boolean dynamicWorkflow) {
1787-
this.dynamicWorkflow = dynamicWorkflow;
1787+
throw new UnsupportedOperationException("DynamicWorkflow is currently not supported.");
17881788
}
17891789

17901790
public List<CipherSuite> getDefaultClientSupportedCiphersuites() {

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/DynamicWorkflowDelegate.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,16 @@ public DynamicWorkflowDelegate() {
2424
}
2525

2626
public Boolean isDynamicWorkflow() {
27-
return dynamicWorkflow;
27+
throw new UnsupportedOperationException("DynamicWorkflow is currently not supported.");
2828
}
2929

3030
public void setDynamicWorkflow(boolean dynamicWorkflow) {
31-
this.dynamicWorkflow = dynamicWorkflow;
31+
throw new UnsupportedOperationException("DynamicWorkflow is currently not supported.");
3232
}
3333

3434
@Override
3535
public void applyDelegate(Config config) {
36-
if (dynamicWorkflow != null) {
37-
config.setDynamicWorkflow(dynamicWorkflow);
38-
}
36+
throw new UnsupportedOperationException("DynamicWorkflow is currently not supported.");
3937
}
4038

4139
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/SessionResumptionDelegate.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,25 @@
1818
*/
1919
public class SessionResumptionDelegate extends Delegate {
2020

21-
@Parameter(names = "-session_id", description = "The sessionID to resume in hex", converter = ByteArrayConverter.class)
22-
private byte[] sessionID = null;
21+
@Parameter(names = "-session_id", description = "The session ID to resume in hex", converter = ByteArrayConverter.class)
22+
private byte[] sessionId = null;
2323

2424
public SessionResumptionDelegate() {
2525
}
2626

27-
public byte[] getSessionID() {
28-
return sessionID;
27+
public byte[] getSessionId() {
28+
return sessionId;
2929
}
3030

31-
public void setSessionID(byte[] sessionID) {
32-
this.sessionID = sessionID;
31+
public void setSessionId(byte[] sessionId) {
32+
this.sessionId = sessionId;
3333
}
3434

3535
@Override
3636
public void applyDelegate(Config config) {
37-
if (sessionID != null) {
38-
config.setDefaultClientSessionId(sessionID);
39-
config.setDefaultServerSessionId(sessionID);
37+
if (sessionId != null) {
38+
config.setDefaultClientSessionId(sessionId);
39+
config.setDefaultServerSessionId(sessionId);
4040
}
4141
}
4242
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/constants/CipherSuite.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1212
import de.rub.nds.modifiablevariable.util.RandomHelper;
1313
import de.rub.nds.tlsattacker.core.exceptions.UnknownCiphersuiteException;
14+
import de.rub.nds.tlsattacker.core.state.TlsContext;
1415
import java.util.HashMap;
1516
import java.util.LinkedList;
1617
import java.util.List;
1718
import java.util.Map;
19+
import java.util.Random;
1820

1921
/**
2022
* @author Juraj Somorovsky <juraj.somorovsky@rub.de>
@@ -438,11 +440,11 @@ private CipherSuite(int value) {
438440
this.value = value;
439441
}
440442

441-
public static CipherSuite getRandom() {
443+
public static CipherSuite getRandom(Random random) {
442444
CipherSuite c = null;
443445
while (c == null) {
444446
Object[] o = MAP.values().toArray();
445-
c = (CipherSuite) o[RandomHelper.getRandom().nextInt(o.length)];
447+
c = (CipherSuite) o[random.nextInt(o.length)];
446448
}
447449
return c;
448450
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/constants/CompressionMethod.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
package de.rub.nds.tlsattacker.core.constants;
1010

1111
import de.rub.nds.modifiablevariable.util.RandomHelper;
12+
import de.rub.nds.tlsattacker.core.state.TlsContext;
1213
import java.util.HashMap;
1314
import java.util.LinkedList;
1415
import java.util.List;
1516
import java.util.Map;
17+
import java.util.Random;
1618

1719
/**
1820
* @author Juraj Somorovsky <juraj.somorovsky@rub.de>
@@ -55,11 +57,11 @@ public byte getValue() {
5557
return value;
5658
}
5759

58-
public static CompressionMethod getRandom() {
60+
public static CompressionMethod getRandom(Random random) {
5961
CompressionMethod c = null;
6062
while (c == null) {
6163
Object[] o = MAP.values().toArray();
62-
c = (CompressionMethod) o[RandomHelper.getRandom().nextInt(o.length)];
64+
c = (CompressionMethod) o[random.nextInt(o.length)];
6365
}
6466
return c;
6567
}

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/constants/ECPointFormat.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
package de.rub.nds.tlsattacker.core.constants;
1010

1111
import de.rub.nds.modifiablevariable.util.RandomHelper;
12+
import de.rub.nds.tlsattacker.core.state.TlsContext;
1213
import java.io.ByteArrayInputStream;
1314
import java.io.ByteArrayOutputStream;
1415
import java.io.IOException;
@@ -17,6 +18,7 @@
1718
import java.util.HashMap;
1819
import java.util.List;
1920
import java.util.Map;
21+
import java.util.Random;
2022

2123
/**
2224
* @author Juraj Somorovsky <juraj.somorovsky@rub.de>
@@ -50,11 +52,11 @@ public byte getValue() {
5052
return value;
5153
}
5254

53-
public static ECPointFormat getRandom() {
55+
public static ECPointFormat getRandom(Random random) {
5456
ECPointFormat c = null;
5557
while (c == null) {
5658
Object[] o = MAP.values().toArray();
57-
c = (ECPointFormat) o[RandomHelper.getRandom().nextInt(o.length)];
59+
c = (ECPointFormat) o[random.nextInt(o.length)];
5860
}
5961
return c;
6062
}
@@ -69,7 +71,7 @@ public short getShortValue() {
6971

7072
public static byte[] pointFormatsToByteArray(List<ECPointFormat> pointFormats) throws IOException {
7173
if (pointFormats == null || pointFormats.isEmpty()) {
72-
return null;
74+
return new byte[0];
7375
}
7476

7577
ByteArrayOutputStream bytes = new ByteArrayOutputStream();

0 commit comments

Comments
 (0)