Skip to content

Commit 46dfc01

Browse files
author
jan
committed
Added SupplementalDataParserTest
Testvalues from https://pike.lysator.liu.se/docs/ietf/rfc/58/rfc5878.xml
1 parent 05eef76 commit 46dfc01

File tree

4 files changed

+83
-17
lines changed

4 files changed

+83
-17
lines changed

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/parser/SupplementalDataParser.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
import java.util.LinkedList;
2020
import java.util.List;
2121

22-
/**
23-
* TODO
24-
*/
2522
public class SupplementalDataParser extends HandshakeMessageParser<SupplementalDataMessage> {
2623

2724
/**

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/protocol/parser/suppData/SupplementalDataEntryParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ private void parseSupplementalDataEntryLength(SupplementalDataEntry entry) {
4141

4242
private void parseSupplementalDataEntry(SupplementalDataEntry entry) {
4343
entry.setSupplementalDataEntry(parseByteArrayField(entry.getSupplementalDataEntryLength().getValue()));
44-
LOGGER.debug("SupplementalDataEntry: " + ArrayConverter.bytesToHexString(entry.getSupplementalDataEntry().getValue()));
44+
LOGGER.debug("SupplementalDataEntry: "
45+
+ ArrayConverter.bytesToHexString(entry.getSupplementalDataEntry().getValue()));
4546
}
4647

4748
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/**
2+
* TLS-Attacker - A Modular Penetration Testing Framework for TLS
3+
*
4+
* Copyright 2014-2017 Ruhr University Bochum / Hackmanit GmbH
5+
*
6+
* Licensed under Apache License 2.0
7+
* http://www.apache.org/licenses/LICENSE-2.0
8+
*/
9+
package de.rub.nds.tlsattacker.core.protocol.parser;
10+
11+
import de.rub.nds.modifiablevariable.util.ArrayConverter;
12+
import de.rub.nds.tlsattacker.core.constants.HandshakeMessageType;
13+
import de.rub.nds.tlsattacker.core.constants.ProtocolVersion;
14+
import de.rub.nds.tlsattacker.core.protocol.message.SupplementalDataMessage;
15+
import java.util.Arrays;
16+
import java.util.Collection;
17+
import static org.junit.Assert.assertArrayEquals;
18+
import static org.junit.Assert.assertTrue;
19+
import org.junit.Test;
20+
import org.junit.runner.RunWith;
21+
import org.junit.runners.Parameterized;
22+
23+
@RunWith(Parameterized.class)
24+
public class SupplementalDataParserTest {
25+
26+
@Parameterized.Parameters
27+
public static Collection<Object[]> generateData() {
28+
return Arrays
29+
.asList(new Object[][] {
30+
{ ArrayConverter.hexStringToByteArray("1700001100000e4002000a0008010005aaaaaaaaaa"),
31+
HandshakeMessageType.SUPPLEMENTAL_DATA, 17, 14,
32+
ArrayConverter.hexStringToByteArray("4002000a0008010005aaaaaaaaaa"),
33+
ProtocolVersion.TLS11 },
34+
{
35+
ArrayConverter
36+
.hexStringToByteArray("1700001F00001c4002000a0008010005aaaaaaaaaa4002000a0008010005aaaaaaaaaa"),
37+
HandshakeMessageType.SUPPLEMENTAL_DATA,
38+
31,
39+
28,
40+
ArrayConverter
41+
.hexStringToByteArray("4002000a0008010005aaaaaaaaaa4002000a0008010005aaaaaaaaaa"),
42+
ProtocolVersion.TLS11 } });
43+
}
44+
45+
private byte[] message;
46+
private HandshakeMessageType type;
47+
private int length;
48+
49+
private int supplementalDataLength;
50+
private byte[] supplementalDataBytes;
51+
private ProtocolVersion version;
52+
53+
public SupplementalDataParserTest(byte[] message, HandshakeMessageType type, int length,
54+
int supplementalDataLength, byte[] supplementalDataBytes, ProtocolVersion version) {
55+
this.message = message;
56+
this.type = type;
57+
this.length = length;
58+
this.supplementalDataLength = supplementalDataLength;
59+
this.supplementalDataBytes = supplementalDataBytes;
60+
this.version = version;
61+
}
62+
63+
@Test
64+
public void testParse() {
65+
SupplementalDataParser parser = new SupplementalDataParser(0, message, version);
66+
SupplementalDataMessage suppDataMessage = parser.parse();
67+
assertArrayEquals(suppDataMessage.getCompleteResultingMessage().getValue(), message);
68+
assertTrue(suppDataMessage.getType().getValue() == type.getValue());
69+
assertTrue(suppDataMessage.getLength().getValue() == length);
70+
assertTrue(suppDataMessage.getSupplementalDataLength().getValue() == supplementalDataLength);
71+
assertArrayEquals(suppDataMessage.getSupplementalDataBytes().getValue(), supplementalDataBytes);
72+
}
73+
74+
}

TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/protocol/parser/suppData/SupplementalDataEntryParserTest.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,26 @@
2020

2121
@RunWith(Parameterized.class)
2222
public class SupplementalDataEntryParserTest {
23-
23+
2424
@Parameterized.Parameters
2525
public static Collection<Object[]> generateData() {
26-
return Arrays.asList(new Object[][] {
27-
{
28-
ArrayConverter.hexStringToByteArray("4002000a0008010005aaaaaaaaaa"),
29-
16386,
30-
10,
31-
ArrayConverter.hexStringToByteArray("0008010005aaaaaaaaaa"),
32-
}
33-
});
26+
return Arrays.asList(new Object[][] { { ArrayConverter.hexStringToByteArray("4002000a0008010005aaaaaaaaaa"),
27+
16386, 10, ArrayConverter.hexStringToByteArray("0008010005aaaaaaaaaa") } });
3428
}
35-
29+
3630
private int supplementalDataEntryType;
3731
private int supplementalDataEntryLength;
3832
private byte[] supplementalDataEntry;
3933
private byte[] supplementalDataTestEntry;
40-
41-
public SupplementalDataEntryParserTest(byte[] supplementalDataTestEntry, int supplementalDataEntryType,
34+
35+
public SupplementalDataEntryParserTest(byte[] supplementalDataTestEntry, int supplementalDataEntryType,
4236
int supplementalDataEntryLength, byte[] supplementalDataEntry) {
4337
this.supplementalDataEntryType = supplementalDataEntryType;
4438
this.supplementalDataEntryLength = supplementalDataEntryLength;
4539
this.supplementalDataEntry = supplementalDataEntry;
4640
this.supplementalDataTestEntry = supplementalDataTestEntry;
4741
}
48-
42+
4943
@Test
5044
public void testParse() {
5145
SupplementalDataEntryParser parser = new SupplementalDataEntryParser(0, supplementalDataTestEntry);

0 commit comments

Comments
 (0)