Skip to content

Commit 3eea10a

Browse files
authored
Merge pull request #477 from tls-attacker/release_fix
updated bom version and adjusted code to new modifiable variable version
2 parents dfb19ae + 4417be2 commit 3eea10a

File tree

12 files changed

+40
-49
lines changed

12 files changed

+40
-49
lines changed

TLS-Scanner-Core/src/main/java/de/rub/nds/tlsscanner/core/probe/padding/vector/LongPaddingGenerator.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import de.rub.nds.modifiablevariable.bytearray.ByteArrayDeleteModification;
1212
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
13-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
1413
import de.rub.nds.modifiablevariable.bytearray.ByteArrayXorModification;
1514
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1615
import de.rub.nds.tlsattacker.core.constants.AlgorithmResolver;
@@ -414,9 +413,6 @@ private List<ByteArrayXorModification> createFlippedModifications(int byteLength
414413

415414
private PaddingVector createVectorWithPlainData(String name, String identifier, byte[] plain) {
416415
return new PlainPaddingVector(
417-
name,
418-
identifier,
419-
(ByteArrayExplicitValueModification)
420-
ByteArrayModificationFactory.explicitValue(plain));
416+
name, identifier, new ByteArrayExplicitValueModification(plain));
421417
}
422418
}

TLS-Scanner-Core/src/main/java/de/rub/nds/tlsscanner/core/probe/padding/vector/MediumPaddingGenerator.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import de.rub.nds.modifiablevariable.bytearray.ByteArrayDeleteModification;
1212
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
13-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
1413
import de.rub.nds.modifiablevariable.bytearray.ByteArrayXorModification;
1514
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1615
import de.rub.nds.tlsattacker.core.constants.AlgorithmResolver;
@@ -354,9 +353,6 @@ List<ByteArrayXorModification> createFlippedModifications(int byteLength) {
354353

355354
private PaddingVector createVectorWithPlainData(String name, String identifier, byte[] plain) {
356355
return new PlainPaddingVector(
357-
name,
358-
identifier,
359-
(ByteArrayExplicitValueModification)
360-
ByteArrayModificationFactory.explicitValue(plain));
356+
name, identifier, new ByteArrayExplicitValueModification(plain));
361357
}
362358
}

TLS-Scanner-Core/src/main/java/de/rub/nds/tlsscanner/core/probe/padding/vector/PlainPaddingVector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public Record createRecord() {
3030
Record r = new Record();
3131
r.prepareComputations();
3232
ModifiableByteArray byteArray = new ModifiableByteArray();
33-
byteArray.setModification(modification);
33+
byteArray.setModifications(modification);
3434
r.getComputations().setPlainRecordBytes(byteArray);
3535
return r;
3636
}

TLS-Scanner-Core/src/main/java/de/rub/nds/tlsscanner/core/probe/padding/vector/ShortPaddingGenerator.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import de.rub.nds.modifiablevariable.bytearray.ByteArrayDeleteModification;
1212
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
13-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
1413
import de.rub.nds.modifiablevariable.bytearray.ByteArrayXorModification;
1514
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1615
import de.rub.nds.tlsattacker.core.constants.AlgorithmResolver;
@@ -340,9 +339,6 @@ List<ByteArrayXorModification> createFlippedModifications(int byteLength) {
340339

341340
private PaddingVector createVectorWithPlainData(String name, String identifier, byte[] plain) {
342341
return new PlainPaddingVector(
343-
name,
344-
identifier,
345-
(ByteArrayExplicitValueModification)
346-
ByteArrayModificationFactory.explicitValue(plain));
342+
name, identifier, new ByteArrayExplicitValueModification(plain));
347343
}
348344
}

TLS-Scanner-Core/src/main/java/de/rub/nds/tlsscanner/core/probe/padding/vector/TripleVector.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,19 @@ public Record createRecord() {
4040
Record r = new Record();
4141
r.prepareComputations();
4242
ModifiableByteArray byteArray = new ModifiableByteArray();
43-
byteArray.setModification(paddingModification);
43+
if (paddingModification != null) {
44+
byteArray.setModifications(paddingModification);
45+
}
4446
r.getComputations().setPadding(byteArray);
4547
byteArray = new ModifiableByteArray();
46-
byteArray.setModification(cleanModification);
48+
if (cleanModification != null) {
49+
byteArray.setModifications(cleanModification);
50+
}
4751
r.setCleanProtocolMessageBytes(byteArray);
4852
byteArray = new ModifiableByteArray();
49-
byteArray.setModification(macModification);
53+
if (macModification != null) {
54+
byteArray.setModifications(macModification);
55+
}
5056
r.getComputations().setMac(byteArray);
5157
return r;
5258
}

TLS-Scanner-Core/src/main/java/de/rub/nds/tlsscanner/core/probe/padding/vector/VeryShortPaddingGenerator.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
package de.rub.nds.tlsscanner.core.probe.padding.vector;
1010

1111
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
12-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
1312
import de.rub.nds.modifiablevariable.bytearray.ByteArrayXorModification;
1413
import de.rub.nds.tlsattacker.core.constants.AlgorithmResolver;
1514
import de.rub.nds.tlsattacker.core.constants.CipherSuite;
@@ -184,9 +183,6 @@ List<ByteArrayXorModification> createFlippedModifications(int byteLength) {
184183

185184
private PaddingVector createVectorWithPlainData(String name, String identifier, byte[] plain) {
186185
return new PlainPaddingVector(
187-
name,
188-
identifier,
189-
(ByteArrayExplicitValueModification)
190-
ByteArrayModificationFactory.explicitValue(plain));
186+
name, identifier, new ByteArrayExplicitValueModification(plain));
191187
}
192188
}

TLS-Scanner-Core/src/test/java/de/rub/nds/tlsscanner/core/probe/padding/vector/ShortPaddingGeneratorTest.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ public void testCreateBasicMacVectors() {
6262
.getMacLength();
6363
VariableModification modification = ((TripleVector) vectors.get(0)).getCleanModification();
6464
ModifiableByteArray array = new ModifiableByteArray();
65-
array.setModification(modification);
65+
array.setOriginalValue(new byte[0]);
66+
array.setModifications(modification);
6667
byte[] expectedPlain =
6768
new byte
6869
[ShortPaddingGenerator.DEFAULT_CIPHERTEXT_LENGTH
@@ -85,12 +86,14 @@ public void testCreateMissingMacByteVectors() {
8586
.getMacLength();
8687
VariableModification modification = ((TripleVector) vectors.get(0)).getCleanModification();
8788
ModifiableByteArray array = new ModifiableByteArray();
88-
array.setModification(modification);
89+
array.setOriginalValue(new byte[0]);
90+
array.setModifications(modification);
8991
assertArrayEquals(new byte[0], array.getValue(), "Validation of clean bytes");
9092

9193
modification = ((TripleVector) vectors.get(0)).getPaddingModification();
9294
array = new ModifiableByteArray();
93-
array.setModification(modification);
95+
array.setOriginalValue(new byte[0]);
96+
array.setModifications(modification);
9497
byte[] expectedPadding =
9598
generator.createPaddingBytes(
9699
ShortPaddingGenerator.DEFAULT_CIPHERTEXT_LENGTH - macSize);
@@ -100,15 +103,15 @@ public void testCreateMissingMacByteVectors() {
100103
modification = ((TripleVector) vectors.get(0)).getMacModification();
101104
array = new ModifiableByteArray();
102105
array.setOriginalValue(macToModify);
103-
array.setModification(modification);
106+
array.setModifications(modification);
104107
byte[] expectedMac = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
105108
assertArrayEquals(
106109
expectedMac, array.getValue(), "Validation of the deleted first byte in MAC");
107110

108111
modification = ((TripleVector) vectors.get(1)).getMacModification();
109112
array = new ModifiableByteArray();
110113
array.setOriginalValue(macToModify);
111-
array.setModification(modification);
114+
array.setModifications(modification);
112115
expectedMac = new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18};
113116
assertArrayEquals(
114117
expectedMac, array.getValue(), "Validation of the deleted last byte in MAC");
@@ -487,13 +490,13 @@ public void testCreateFlippedModifications() {
487490
ModifiableByteArray array = new ModifiableByteArray();
488491
array.setOriginalValue(new byte[10]);
489492
byte[] expected = new byte[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
490-
array.setModification(modifications.get(0));
493+
array.setModifications(modifications.get(0));
491494
assertArrayEquals(expected, array.getValue(), "Last byte should be xored with 0x01");
492495
expected = new byte[] {0, 0, 0, 0, 0, 8, 0, 0, 0, 0};
493-
array.setModification(modifications.get(1));
496+
array.setModifications(modifications.get(1));
494497
assertArrayEquals(expected, array.getValue(), "Middle byte should be xored with 0x08");
495498
expected = new byte[] {(byte) 128, 0, 0, 0, 0, 0, 0, 0, 0, 0};
496-
array.setModification(modifications.get(2));
499+
array.setModifications(modifications.get(2));
497500
assertArrayEquals(expected, array.getValue(), "First byte should be xored with 0x80");
498501
}
499502
}

TLS-Server-Scanner/src/main/java/de/rub/nds/tlsscanner/serverscanner/probe/MacProbe.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
package de.rub.nds.tlsscanner.serverscanner.probe;
1010

1111
import de.rub.nds.modifiablevariable.VariableModification;
12-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
12+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayXorModification;
1313
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
1414
import de.rub.nds.modifiablevariable.util.Modifiable;
1515
import de.rub.nds.scanner.core.probe.requirements.ProbeRequirement;
@@ -215,8 +215,8 @@ private WorkflowTrace getAppDataTrace(Config config, int xorPosition) {
215215
r.getComputations().setMac(modMac);
216216

217217
VariableModification<byte[]> xor =
218-
ByteArrayModificationFactory.xor(new byte[] {1}, xorPosition);
219-
modMac.setModification(xor);
218+
new ByteArrayXorModification(new byte[] {1}, xorPosition);
219+
modMac.setModifications(xor);
220220
lastSendingAction.setConfiguredRecords(List.of(r));
221221
trace.addTlsAction(new GenericReceiveAction());
222222
return trace;
@@ -237,7 +237,7 @@ private WorkflowTrace getVerifyDataTrace(Config config, int xorPosition) {
237237

238238
private WorkflowTrace getFinishedTrace(Config config, int xorPosition) {
239239
VariableModification<byte[]> xor =
240-
ByteArrayModificationFactory.xor(new byte[] {1}, xorPosition);
240+
new ByteArrayXorModification(new byte[] {1}, xorPosition);
241241
WorkflowTrace trace =
242242
new WorkflowConfigurationFactory(config)
243243
.createWorkflowTrace(
@@ -247,7 +247,7 @@ private WorkflowTrace getFinishedTrace(Config config, int xorPosition) {
247247
r.prepareComputations();
248248
ModifiableByteArray modMac = new ModifiableByteArray();
249249
r.getComputations().setMac(modMac);
250-
modMac.setModification(xor);
250+
modMac.setModifications(xor);
251251
lastSendingAction.setConfiguredRecords(List.of(new Record(), new Record(), r));
252252
return trace;
253253
}

TLS-Server-Scanner/src/main/java/de/rub/nds/tlsscanner/serverscanner/probe/bleichenbacher/trace/BleichenbacherWorkflowGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*/
99
package de.rub.nds.tlsscanner.serverscanner.probe.bleichenbacher.trace;
1010

11-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
11+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
1212
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
1313
import de.rub.nds.tlsattacker.core.config.Config;
1414
import de.rub.nds.tlsattacker.core.constants.RunningModeType;
@@ -34,7 +34,7 @@ public static WorkflowTrace generateWorkflow(
3434
WorkflowTraceType.DYNAMIC_HELLO, RunningModeType.CLIENT);
3535
RSAClientKeyExchangeMessage cke = new RSAClientKeyExchangeMessage();
3636
ModifiableByteArray epms = new ModifiableByteArray();
37-
epms.setModification(ByteArrayModificationFactory.explicitValue(encryptedPMS));
37+
epms.setModifications(new ByteArrayExplicitValueModification(encryptedPMS));
3838
cke.setPublicKey(epms);
3939
if (null != type) {
4040
switch (type) {

TLS-Server-Scanner/src/main/java/de/rub/nds/tlsscanner/serverscanner/probe/invalidcurve/InvalidCurveAttacker.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
*/
99
package de.rub.nds.tlsscanner.serverscanner.probe.invalidcurve;
1010

11-
import de.rub.nds.modifiablevariable.ModifiableVariableFactory;
12-
import de.rub.nds.modifiablevariable.bytearray.ByteArrayModificationFactory;
11+
import de.rub.nds.modifiablevariable.bytearray.ByteArrayExplicitValueModification;
1312
import de.rub.nds.modifiablevariable.bytearray.ModifiableByteArray;
1413
import de.rub.nds.modifiablevariable.util.ArrayConverter;
1514
import de.rub.nds.protocol.constants.EcCurveEquationType;
@@ -200,8 +199,7 @@ private void setPremasterSecret(EllipticCurve curve, int i, Point point) {
200199

201200
private State buildState() {
202201
EllipticCurve curve = vector.getTargetedCurve();
203-
ModifiableByteArray serializedPublicKey =
204-
ModifiableVariableFactory.createByteArrayModifiableVariable();
202+
ModifiableByteArray serializedPublicKey = new ModifiableByteArray();
205203
Point basepoint =
206204
new Point(
207205
new FieldElementFp(publicPointBaseX, curve.getModulus()),
@@ -217,13 +215,13 @@ private State buildState() {
217215
basepoint,
218216
pointCompressionFormat.getFormat());
219217
}
220-
serializedPublicKey.setModification(ByteArrayModificationFactory.explicitValue(serialized));
221-
ModifiableByteArray pms = ModifiableVariableFactory.createByteArrayModifiableVariable();
218+
serializedPublicKey.setModifications(new ByteArrayExplicitValueModification(serialized));
219+
ModifiableByteArray pms = new ModifiableByteArray();
222220
byte[] explicitPMS =
223221
BigIntegers.asUnsignedByteArray(
224222
ArrayConverter.bigIntegerToByteArray(curve.getModulus()).length,
225223
premasterSecret);
226-
pms.setModification(ByteArrayModificationFactory.explicitValue(explicitPMS));
224+
pms.setModifications(new ByteArrayExplicitValueModification(explicitPMS));
227225

228226
WorkflowTrace trace;
229227
tlsConfig.setWorkflowExecutorShouldClose(false);

0 commit comments

Comments
 (0)