Skip to content

Commit 5340f9c

Browse files
authored
Upgrade to TLS-Attacker v5.3.0 (#128)
1 parent 108c4c6 commit 5340f9c

File tree

3 files changed

+86
-3
lines changed

3 files changed

+86
-3
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
diff --git a/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/dtls/FragmentManager.java b/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/dtls/FragmentManager.java
2+
index 4af681aa8..3b03b78de 100644
3+
--- a/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/dtls/FragmentManager.java
4+
+++ b/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/dtls/FragmentManager.java
5+
@@ -22,12 +22,11 @@ public class FragmentManager {
6+
7+
private static final Logger LOGGER = LogManager.getLogger();
8+
9+
- private Map<FragmentKey, FragmentCollector> fragments;
10+
+ private LinkedHashMap<FragmentKey, FragmentCollector> fragments;
11+
private Config config;
12+
- private int lastInterpretedMessageSeq = -1;
13+
14+
public FragmentManager(Config config) {
15+
- fragments = new HashMap<>();
16+
+ fragments = new LinkedHashMap<>();
17+
this.config = config;
18+
}
19+
20+
@@ -70,21 +69,6 @@ public class FragmentManager {
21+
boolean onlyIfComplete, boolean skipMessageSequences) {
22+
List<DtlsHandshakeMessageFragment> handshakeFragmentList = new LinkedList<>();
23+
List<FragmentKey> orderedFragmentKeys = new ArrayList<>(fragments.keySet());
24+
- orderedFragmentKeys.sort(
25+
- new Comparator<FragmentKey>() {
26+
- @Override
27+
- public int compare(FragmentKey fragmentKey1, FragmentKey fragmentKey2) {
28+
- if (fragmentKey1.getEpoch() > fragmentKey2.getEpoch()) {
29+
- return -1;
30+
- } else if (fragmentKey1.getEpoch() < fragmentKey2.getEpoch()) {
31+
- return 1;
32+
- } else {
33+
- return fragmentKey1
34+
- .getMessageSeq()
35+
- .compareTo(fragmentKey2.getMessageSeq());
36+
- }
37+
- }
38+
- });
39+
40+
for (FragmentKey key : orderedFragmentKeys) {
41+
FragmentCollector fragmentCollector = fragments.get(key);
42+
@@ -101,11 +85,6 @@ public class FragmentManager {
43+
}
44+
}
45+
if (!fragmentCollector.isInterpreted()) {
46+
- if (!skipMessageSequences
47+
- && key.getMessageSeq() != lastInterpretedMessageSeq + 1
48+
- && !fragmentCollector.isRetransmission()) {
49+
- break;
50+
- }
51+
if (onlyIfComplete && !fragmentCollector.isMessageComplete()) {
52+
LOGGER.debug(
53+
"Incomplete message. Not processing: msg_sqn: "
54+
@@ -115,7 +94,7 @@ public class FragmentManager {
55+
} else {
56+
handshakeFragmentList.add(fragmentCollector.buildCombinedFragment());
57+
fragmentCollector.setInterpreted(true);
58+
- lastInterpretedMessageSeq = key.getMessageSeq();
59+
+ clearFragmentedMessage(key.getMessageSeq(), key.getEpoch());
60+
}
61+
}
62+
}
63+
diff --git a/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/record/crypto/RecordDecryptor.java b/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/record/crypto/RecordDecryptor.java
64+
index 34778e092..2f8c02119 100644
65+
--- a/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/record/crypto/RecordDecryptor.java
66+
+++ b/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/record/crypto/RecordDecryptor.java
67+
@@ -11,6 +11,7 @@ package de.rub.nds.tlsattacker.core.record.crypto;
68+
import de.rub.nds.tlsattacker.core.constants.ProtocolMessageType;
69+
import de.rub.nds.tlsattacker.core.constants.ProtocolVersion;
70+
import de.rub.nds.tlsattacker.core.exceptions.CryptoException;
71+
+import de.rub.nds.tlsattacker.core.exceptions.EndOfStreamException;
72+
import de.rub.nds.tlsattacker.core.exceptions.ParserException;
73+
import de.rub.nds.tlsattacker.core.layer.context.TlsContext;
74+
import de.rub.nds.tlsattacker.core.record.Record;
75+
@@ -59,7 +60,7 @@ public class RecordDecryptor extends Decryptor {
76+
|| record.getContentMessageType() != ProtocolMessageType.CHANGE_CIPHER_SPEC) {
77+
try {
78+
recordCipher.decrypt(record);
79+
- } catch (ParserException | CryptoException ex) {
80+
+ } catch (ParserException | CryptoException | EndOfStreamException ex) {
81+
if (recordCipherList.indexOf(recordCipher) > 0) {
82+
LOGGER.warn(
83+
"Failed to decrypt record, will try to process with previous cipher");

install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ readonly PROTOCOLSTATEFUZZER_REP_URL="https://github.com/protocol-fuzzing/protoc
1212
readonly PROTOCOLSTATEFUZZER_FOLDER="ProtocolState-Fuzzer"
1313
readonly PROTOCOLSTATEFUZZER_PATCH="$PATCHES_DIR/protocolstate-fuzzer-$PROTOCOLSTATEFUZZER_COMMIT.patch"
1414

15-
readonly TLSATTACKER_VERSION="v5.2.1"
15+
readonly TLSATTACKER_VERSION="v5.3.0"
1616
readonly TLSATTACKER_REP_URL="https://github.com/tls-attacker/TLS-Attacker.git"
1717
readonly TLSATTACKER_FOLDER="TLS-Attacker"
1818
readonly TLSATTACKER_PATCH="$PATCHES_DIR/TLS-Attacker-$TLSATTACKER_VERSION.patch"

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
<log4j.version>2.23.1</log4j.version>
1818
<modifiable-variable.version>4.1.2</modifiable-variable.version>
1919
<osgi.version>8.1.0</osgi.version>
20-
<tlsattacker.core.version>5.2.1</tlsattacker.core.version>
21-
<tlsattacker.transport.version>5.2.1</tlsattacker.transport.version>
20+
<tlsattacker.core.version>5.3.0</tlsattacker.core.version>
21+
<tlsattacker.transport.version>5.3.0</tlsattacker.transport.version>
2222
</properties>
2323

2424
<dependencyManagement>

0 commit comments

Comments
 (0)