Skip to content

Commit d2d856d

Browse files
authored
Merge pull request #578 from DaJeZi/master
Added Unittest for the SSL2ClientMasterKeySerializer Class
2 parents 538a98e + 3d25671 commit d2d856d

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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.serializer;
10+
11+
import static org.junit.Assert.*;
12+
13+
import java.math.BigInteger;
14+
import java.util.Arrays;
15+
import java.util.Collection;
16+
17+
import org.junit.Test;
18+
import org.junit.runner.RunWith;
19+
import org.junit.runners.Parameterized;
20+
21+
import de.rub.nds.modifiablevariable.util.ArrayConverter;
22+
import de.rub.nds.tlsattacker.core.constants.HandshakeMessageType;
23+
import de.rub.nds.tlsattacker.core.constants.ProtocolVersion;
24+
import de.rub.nds.tlsattacker.core.constants.SSL2CipherSuite;
25+
import de.rub.nds.tlsattacker.core.protocol.message.SSL2ClientMasterKeyMessage;
26+
27+
@RunWith(Parameterized.class)
28+
public class SSL2ClientMasterKeySerializerTest {
29+
30+
private final ProtocolVersion version = ProtocolVersion.SSL2;
31+
private SSL2ClientMasterKeyMessage message;
32+
private byte[] expectedClientMasterKeyMessage;
33+
34+
@Parameterized.Parameters
35+
public static Collection<Object[]> generateData() {
36+
byte[] expectedClientMasterKeyMessage = ArrayConverter
37+
.hexStringToByteArray("808a02010080000000800000b28367d5b44f6f585096540ab798705ecb6ce66336d5068952db71542701870754fdc25da8414d0977ec0401b5ff4cc853779d6069be867bf65a2250d14a189d74c608f4f76a9aa8a4f1a909370b86f5fd0740d368083e78e1034e38573b32799cf59ea52a771633ffdbd0e8123ada764f677cd09b05106ea9af8168a71249d4");
38+
byte[] encryptedKey = ArrayConverter
39+
.hexStringToByteArray("b28367d5b44f6f585096540ab798705ecb6ce66336d5068952db71542701870754fdc25da8414d0977ec0401b5ff4cc853779d6069be867bf65a2250d14a189d74c608f4f76a9aa8a4f1a909370b86f5fd0740d368083e78e1034e38573b32799cf59ea52a771633ffdbd0e8123ada764f677cd09b05106ea9af8168a71249d4");
40+
byte[] cipher = BigInteger.valueOf(SSL2CipherSuite.SSL_CK_RC4_128_WITH_MD5.getValue()).toByteArray();
41+
42+
return Arrays.asList(new Object[][] { { 138, HandshakeMessageType.SSL2_CLIENT_MASTER_KEY.getValue(), cipher, 0,
43+
128, 0, new byte[0], encryptedKey, expectedClientMasterKeyMessage } });
44+
}
45+
46+
public SSL2ClientMasterKeySerializerTest(int messageLength, byte messageType, byte[] cipher, int clearKeyLength,
47+
int encryptedKeyLength, int keyArgLength, byte[] clearKeyData, byte[] encryptedKey,
48+
byte[] expectedClientMasterKeyMessage) {
49+
this.expectedClientMasterKeyMessage = expectedClientMasterKeyMessage;
50+
this.message = new SSL2ClientMasterKeyMessage();
51+
this.message.setMessageLength(messageLength);
52+
this.message.setType(messageType);
53+
this.message.setCipherKind(cipher);
54+
this.message.setClearKeyLength(clearKeyLength);
55+
this.message.setEncryptedKeyLength(encryptedKeyLength);
56+
this.message.setKeyArgLength(keyArgLength);
57+
this.message.setClearKeyData(clearKeyData);
58+
this.message.setEncryptedKeyData(encryptedKey);
59+
}
60+
61+
@Test
62+
public void test() {
63+
SSL2ClientMasterKeySerializer serializer = new SSL2ClientMasterKeySerializer(this.message, this.version);
64+
byte[] result = serializer.serializeProtocolMessageContent();
65+
assertArrayEquals(this.expectedClientMasterKeyMessage, result);
66+
}
67+
}

0 commit comments

Comments
 (0)