Skip to content

Commit acf5b98

Browse files
authored
Fixed NPE in EarlyCCSAction for PQ cipher suites (#921)
1 parent c9579fa commit acf5b98

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

TLS-Core/src/main/java/de/rub/nds/tlsattacker/core/workflow/action/EarlyCcsAction.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import de.rub.nds.tlsattacker.core.constants.ProtocolMessageType;
1515
import de.rub.nds.tlsattacker.core.protocol.handler.ClientKeyExchangeHandler;
1616
import de.rub.nds.tlsattacker.core.protocol.message.ClientKeyExchangeMessage;
17+
import de.rub.nds.tlsattacker.core.protocol.message.RSAClientKeyExchangeMessage;
1718
import de.rub.nds.tlsattacker.core.record.AbstractRecord;
1819
import de.rub.nds.tlsattacker.core.record.Record;
1920
import de.rub.nds.tlsattacker.core.state.State;
@@ -61,6 +62,11 @@ public void execute(State state) {
6162
WorkflowConfigurationFactory factory = new WorkflowConfigurationFactory(state.getConfig());
6263
ClientKeyExchangeMessage message = factory.createClientKeyExchangeMessage(
6364
AlgorithmResolver.getKeyExchangeAlgorithm(state.getTlsContext().getChooser().getSelectedCipherSuite()));
65+
if (message == null) {
66+
// the factory will fail to provide a CKE message in some cases
67+
// e.g for TLS_CECPQ1 cipher suites
68+
message = new RSAClientKeyExchangeMessage(state.getConfig());
69+
}
6470
if (!targetOpenssl100) {
6571
message.setIncludeInDigest(Modifiable.explicit(false));
6672
}

0 commit comments

Comments
 (0)