diff --git a/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegate.java b/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegate.java index 569b6c864..723769860 100644 --- a/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegate.java +++ b/TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegate.java @@ -49,7 +49,6 @@ public void applyDelegate(Config config) { th = TransportHandlerType.UDP; config.setDefaultLayerConfiguration(StackConfiguration.DTLS); config.setWorkflowExecutorType(WorkflowExecutorType.DTLS); - config.setFinishWithCloseNotify(true); config.setIgnoreRetransmittedCssInDtls(true); } diff --git a/TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegateTest.java b/TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegateTest.java index 50d5603ef..e78d85a1a 100644 --- a/TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegateTest.java +++ b/TLS-Core/src/test/java/de/rub/nds/tlsattacker/core/config/delegate/ProtocolVersionDelegateTest.java @@ -91,4 +91,47 @@ public void testNothingSetNothingChanges() { delegate.applyDelegate(config); assertTrue(EqualsBuilder.reflectionEquals(config, config2, "certificateChainConfig")); } + + @Test + public void testDTLSDoesNotOverrideFinishWithCloseNotify() { + Config config = new Config(); + // Set finishWithCloseNotify to false explicitly + config.setFinishWithCloseNotify(false); + + String[] args = new String[2]; + args[0] = "-version"; + args[1] = "DTLS12"; + + jcommander.parse(args); + delegate.applyDelegate(config); + + // Verify that finishWithCloseNotify remains false and is not overridden + assertFalse(config.isFinishWithCloseNotify()); + + // Verify other DTLS settings are still applied correctly + assertSame(ProtocolVersion.DTLS12, config.getHighestProtocolVersion()); + assertSame( + TransportHandlerType.UDP, + config.getDefaultClientConnection().getTransportHandlerType()); + assertSame( + TransportHandlerType.UDP, + config.getDefaultServerConnection().getTransportHandlerType()); + } + + @Test + public void testDTLSRespectsTrueFinishWithCloseNotify() { + Config config = new Config(); + // Set finishWithCloseNotify to true explicitly + config.setFinishWithCloseNotify(true); + + String[] args = new String[2]; + args[0] = "-version"; + args[1] = "DTLS12"; + + jcommander.parse(args); + delegate.applyDelegate(config); + + // Verify that finishWithCloseNotify remains true + assertTrue(config.isFinishWithCloseNotify()); + } }