@Override protected ServerHelloDoneMessage createHandshakeMessage() { return new ServerHelloDoneMessage(); }
public boolean speaksTls(Config config) { config.setHttpsParsingEnabled(Boolean.TRUE); WorkflowTrace trace = new WorkflowTrace(); trace.addTlsAction(new SendAction(new ClientHelloMessage(config))); ReceiveTillAction receiveTillAction = new ReceiveTillAction(new ServerHelloDoneMessage()); trace.addTlsAction(receiveTillAction); State state = new State(config, trace); WorkflowExecutor executor = WorkflowExecutorFactory.createWorkflowExecutor(WorkflowExecutorType.DEFAULT, state); executor.executeWorkflow(); if (receiveTillAction.getRecords().size() > 0) { if (receiveTillAction.getRecords().get(0) instanceof Record) { return true; } else { for (ProtocolMessage message : receiveTillAction.getReceivedMessages()) { if (message instanceof ServerHelloMessage || message instanceof ServerHelloDoneMessage || message instanceof SSL2ServerHelloMessage) { return true; } } return false; } } else { return false; } } }
messages.add(certRequest); messages.add(new ServerHelloDoneMessage(config));
messageList.add(new ServerHelloMessage(tlsConfig)); messageList.add(new CertificateMessage(tlsConfig)); messageList.add(new ServerHelloDoneMessage(tlsConfig)); workflowTrace.addTlsAction(new ReceiveAction(messageList));
/** * * @param config * @return */ @Override public List<WorkflowTrace> getPaddingOracleVectors(Config config) { List<WorkflowTrace> traceList = new LinkedList<>(); for (Record record : recordGenerator.getRecords(config.getDefaultSelectedCipherSuite(), config.getDefaultSelectedProtocolVersion())) { WorkflowTrace trace = new WorkflowTrace(); trace.addTlsAction(new SendAction(new ClientHelloMessage(config))); trace.addTlsAction(new ReceiveTillAction(new ServerHelloDoneMessage())); trace.addTlsAction(new SendDynamicClientKeyExchangeAction()); trace.addTlsAction(new SendAction(new ChangeCipherSpecMessage(), new FinishedMessage())); trace.addTlsAction(new ReceiveAction(new ChangeCipherSpecMessage(), new FinishedMessage())); ApplicationMessage applicationMessage = new ApplicationMessage(config); SendAction sendAction = new SendAction(applicationMessage); sendAction.setRecords(new LinkedList<AbstractRecord>()); sendAction.getRecords().add(record); trace.addTlsAction(sendAction); trace.addTlsAction(new GenericReceiveAction()); traceList.add(trace); } return traceList; } }