Skip to content

Commit 6d0cd76

Browse files
committed
SulRA, SulBuilderRA, MultiBuilderRA and a new main.
1 parent ab1bee6 commit 6d0cd76

File tree

4 files changed

+547
-0
lines changed

4 files changed

+547
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package se.uu.it.dtlsfuzzer;
2+
3+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.statistics.RegisterAutomatonWrapper;
4+
import com.github.protocolfuzzing.protocolstatefuzzer.entrypoints.CommandLineParser;
5+
6+
import de.learnlib.ralib.words.PSymbolInstance;
7+
import de.learnlib.ralib.words.ParameterizedSymbol;
8+
9+
import java.io.IOException;
10+
import java.security.Security;
11+
import javax.xml.stream.XMLStreamException;
12+
import org.bouncycastle.jce.provider.BouncyCastleProvider;
13+
14+
public class MainRA {
15+
16+
public static void main(String args[]) throws IOException, XMLStreamException {
17+
Security.addProvider(new BouncyCastleProvider());
18+
MultiBuilder mb = new MultiBuilder();
19+
// String[] parentLoggers = {Main.class.getPackageName()};
20+
21+
CommandLineParser<?> commandLineParser = new CommandLineParser<>(mb, mb, mb, mb);
22+
// commandLineParser.setExternalParentLoggers(parentLoggers);
23+
commandLineParser.parse(args);
24+
}
25+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
package se.uu.it.dtlsfuzzer;
2+
3+
import java.util.Map;
4+
5+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.alphabet.AlphabetBuilder;
6+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.alphabet.AlphabetBuilderStandard;
7+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.alphabet.xml.AlphabetSerializerXml;
8+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.config.LearnerConfigStandard;
9+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.statistics.MealyMachineWrapper;
10+
import com.github.protocolfuzzing.protocolstatefuzzer.components.sul.core.SulBuilder;
11+
import com.github.protocolfuzzing.protocolstatefuzzer.components.sul.core.SulWrapper;
12+
import com.github.protocolfuzzing.protocolstatefuzzer.components.sul.core.SulWrapperStandard;
13+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.StateFuzzer;
14+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.StateFuzzerBuilder;
15+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.StateFuzzerComposerRA;
16+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.StateFuzzerComposerStandard;
17+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.StateFuzzerRA;
18+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.StateFuzzerStandard;
19+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.config.StateFuzzerClientConfig;
20+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.config.StateFuzzerClientConfigStandard;
21+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.config.StateFuzzerConfigBuilder;
22+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.config.StateFuzzerEnabler;
23+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.config.StateFuzzerServerConfig;
24+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.core.config.StateFuzzerServerConfigStandard;
25+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.core.TestRunner;
26+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.core.TestRunnerBuilder;
27+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.core.TestRunnerStandard;
28+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.core.config.TestRunnerConfigStandard;
29+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.core.config.TestRunnerEnabler;
30+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.timingprobe.TimingProbe;
31+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.timingprobe.TimingProbeBuilder;
32+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.timingprobe.TimingProbeStandard;
33+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.timingprobe.config.TimingProbeConfigStandard;
34+
import com.github.protocolfuzzing.protocolstatefuzzer.statefuzzer.testrunner.timingprobe.config.TimingProbeEnabler;
35+
import com.github.protocolfuzzing.protocolstatefuzzer.components.learner.statistics.RegisterAutomatonWrapper;
36+
37+
import de.learnlib.ralib.data.DataType;
38+
import de.learnlib.ralib.theory.Theory;
39+
import de.learnlib.ralib.words.ParameterizedSymbol;
40+
import de.learnlib.ralib.words.PSymbolInstance;
41+
42+
import se.uu.it.dtlsfuzzer.components.sul.core.TlsSulBuilder;
43+
import se.uu.it.dtlsfuzzer.components.sul.core.TlsSulBuilderRA;
44+
import se.uu.it.dtlsfuzzer.components.sul.core.config.TlsSulClientConfig;
45+
import se.uu.it.dtlsfuzzer.components.sul.core.config.TlsSulServerConfig;
46+
import se.uu.it.dtlsfuzzer.components.sul.mapper.TlsExecutionContextRA;
47+
import se.uu.it.dtlsfuzzer.components.sul.mapper.TlsProtocolMessage;
48+
import se.uu.it.dtlsfuzzer.components.sul.mapper.symbols.inputs.TlsAlphabetPojoXml;
49+
import se.uu.it.dtlsfuzzer.components.sul.mapper.symbols.inputs.TlsInput;
50+
import se.uu.it.dtlsfuzzer.components.sul.mapper.symbols.outputs.TlsOutput;
51+
52+
public class MultiBuilderRA implements StateFuzzerConfigBuilder,
53+
StateFuzzerBuilder<RegisterAutomatonWrapper<ParameterizedSymbol, PSymbolInstance>>, TestRunnerBuilder,
54+
TimingProbeBuilder {
55+
56+
private AlphabetBuilder<ParameterizedSymbol> alphabetBuilder = new AlphabetBuilderStandard<ParameterizedSymbol>(
57+
new AlphabetSerializerXml<ParameterizedSymbol, TlsAlphabetPojoXml>(TlsInput.class,
58+
TlsAlphabetPojoXml.class));
59+
60+
// SulBuilderImpl needs to be implemented
61+
private SulBuilder<PSymbolInstance, PSymbolInstance, TlsExecutionContextRA> sulBuilder = new TlsSulBuilderRA();
62+
private SulWrapper<PSymbolInstance, PSymbolInstance, TlsExecutionContextRA> sulWrapper = new SulWrapperStandard<PSymbolInstance, PSymbolInstance, TlsExecutionContextRA>();
63+
64+
MultiBuilderRA() {
65+
}
66+
67+
@Override
68+
public TimingProbe build(TimingProbeEnabler timingProbeEnabler) {
69+
return null;
70+
// return new TimingProbeStandard<TlsInput, TlsOutput, TlsProtocolMessage,
71+
// TlsExecutionContext>(
72+
// timingProbeEnabler,
73+
// alphabetBuilder, sulBuilder, sulWrapper);
74+
}
75+
76+
@Override
77+
public TestRunner build(TestRunnerEnabler testRunnerEnabler) {
78+
return null;
79+
// return new TestRunnerStandard<TlsInput, TlsOutput, TlsProtocolMessage,
80+
// TlsExecutionContext>(
81+
// testRunnerEnabler,
82+
// alphabetBuilder, sulBuilder, sulWrapper);
83+
}
84+
85+
@Override
86+
public StateFuzzerRA<ParameterizedSymbol, TlsExecutionContextRA> build(
87+
StateFuzzerEnabler stateFuzzerEnabler) {
88+
Map<DataType, Theory> teachers = null;
89+
StateFuzzerComposerRA<ParameterizedSymbol, TlsExecutionContextRA> composer = new StateFuzzerComposerRA<ParameterizedSymbol, TlsExecutionContextRA>(
90+
stateFuzzerEnabler, alphabetBuilder, sulBuilder, sulWrapper, teachers);
91+
composer.initialize();
92+
return new StateFuzzerRA<>(composer);
93+
}
94+
95+
@Override
96+
public StateFuzzerClientConfig buildClientConfig() {
97+
return new StateFuzzerClientConfigStandard(new LearnerConfigStandard(), new TlsSulClientConfig(),
98+
new TestRunnerConfigStandard(), new TimingProbeConfigStandard());
99+
}
100+
101+
@Override
102+
public StateFuzzerServerConfig buildServerConfig() {
103+
return new StateFuzzerServerConfigStandard(new LearnerConfigStandard(), new TlsSulServerConfig(),
104+
new TestRunnerConfigStandard(), new TimingProbeConfigStandard());
105+
}
106+
107+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package se.uu.it.dtlsfuzzer.components.sul.core;
2+
3+
import com.github.protocolfuzzing.protocolstatefuzzer.components.sul.core.SulBuilder;
4+
import com.github.protocolfuzzing.protocolstatefuzzer.components.sul.core.config.SulConfig;
5+
6+
import de.learnlib.ralib.words.PSymbolInstance;
7+
import se.uu.it.dtlsfuzzer.components.sul.core.config.TlsSulConfig;
8+
import se.uu.it.dtlsfuzzer.components.sul.mapper.DtlsInputMapperRA;
9+
import se.uu.it.dtlsfuzzer.components.sul.mapper.DtlsMapperComposerRA;
10+
import se.uu.it.dtlsfuzzer.components.sul.mapper.DtlsOutputMapperRA;
11+
import se.uu.it.dtlsfuzzer.components.sul.mapper.TlsExecutionContextRA;
12+
import se.uu.it.dtlsfuzzer.components.sul.mapper.symbols.outputs.TlsOutputBuilderRA;
13+
import se.uu.it.dtlsfuzzer.components.sul.mapper.symbols.outputs.TlsOutputCheckerRA;
14+
15+
public class TlsSulBuilderRA implements SulBuilder<PSymbolInstance, PSymbolInstance, TlsExecutionContextRA> {
16+
17+
private TlsSulAdapter sulAdapter = null;
18+
19+
public TlsSulBuilderRA() {
20+
}
21+
22+
@Override
23+
public TlsSulRA build(SulConfig sulConfig,
24+
com.github.protocolfuzzing.protocolstatefuzzer.utils.CleanupTasks cleanupTasks) {
25+
26+
TlsOutputBuilderRA outputBuilder = new TlsOutputBuilderRA();
27+
TlsOutputCheckerRA outputChecker = new TlsOutputCheckerRA();
28+
29+
DtlsOutputMapperRA outputMapper = new DtlsOutputMapperRA(sulConfig.getMapperConfig(), outputBuilder);
30+
DtlsInputMapperRA inputMapper = new DtlsInputMapperRA(sulConfig.getMapperConfig(), outputChecker);
31+
32+
DtlsMapperComposerRA mapperComposer = new DtlsMapperComposerRA(inputMapper, outputMapper);
33+
34+
TlsSulRA tlsSul = new TlsSulRA((TlsSulConfig) sulConfig, sulConfig.getMapperConfig(), mapperComposer,
35+
cleanupTasks);
36+
37+
if (sulConfig.getSulAdapterConfig().getAdapterPort() != null) {
38+
if (sulAdapter == null) {
39+
sulAdapter = new TlsSulAdapter(sulConfig.getSulAdapterConfig(), cleanupTasks,
40+
sulConfig.isFuzzingClient());
41+
}
42+
tlsSul.setSulAdapter(sulAdapter);
43+
}
44+
return tlsSul;
45+
}
46+
}

0 commit comments

Comments
 (0)