@Override public List<ModifiableVariableHolder> getAllModifiableVariableHolders() { List<ModifiableVariableHolder> holders = super.getAllModifiableVariableHolders(); if (computations != null) { holders.add(computations); } return holders; } }
private void computeMasterSecret(TlsContext tlsContext, WorkflowTrace trace) { ClientKeyExchangeMessage clientKeyExchangeMessage = (ClientKeyExchangeMessage) WorkflowTraceUtil .getFirstReceivedMessage(HandshakeMessageType.CLIENT_KEY_EXCHANGE, trace); ClientKeyExchangeHandler handler = (ClientKeyExchangeHandler) clientKeyExchangeMessage.getHandler(tlsContext); handler.getPreparator(clientKeyExchangeMessage).prepareAfterParse(false); tlsContext.setPreMasterSecret(clientKeyExchangeMessage.getComputations().getPremasterSecret().getValue()); handler.adjustPremasterSecret(clientKeyExchangeMessage); handler.adjustMasterSecret(clientKeyExchangeMessage); }
modifiableBoolean.setModification(new BooleanExplicitValueModification(false)); if (!targetOpenssl1_0_0) { message.setIncludeInDigest(modifiableBoolean); message.setAdjustContext(modifiableBoolean); ClientKeyExchangeHandler handler = (ClientKeyExchangeHandler) message.getHandler(state.getTlsContext()); byte[] protocolMessageBytes = handler.prepareMessage(message); if (targetOpenssl1_0_0) {
public void adjustPremasterSecret(ClientKeyExchangeMessage message) { if (message.getComputations().getPremasterSecret() != null) { byte[] premasterSecret = message.getComputations().getPremasterSecret().getValue(); tlsContext.setPreMasterSecret(premasterSecret); LOGGER.debug("Set PremasterSecret in Context to " + ArrayConverter.bytesToHexString(premasterSecret)); } else { LOGGER.debug("Did not set in Context PremasterSecret"); } }
protected byte[] calculateMasterSecret(ClientKeyExchangeMessage message) throws CryptoException { Chooser chooser = tlsContext.getChooser(); if (chooser.getSelectedProtocolVersion() == ProtocolVersion.SSL3) { LOGGER.debug("Calculate SSL MasterSecret with Client and Server Nonces, which are: " + ArrayConverter.bytesToHexString(message.getComputations().getClientServerRandom().getValue())); return SSLUtils.calculateMasterSecretSSL3(chooser.getPreMasterSecret(), message.getComputations() .getClientServerRandom().getValue()); } else { PRFAlgorithm prfAlgorithm = AlgorithmResolver.getPRFAlgorithm(chooser.getSelectedProtocolVersion(), chooser.getSelectedCipherSuite()); if (chooser.isUseExtendedMasterSecret()) { LOGGER.debug("Calculating ExtendedMasterSecret"); byte[] sessionHash = tlsContext.getDigest().digest(chooser.getSelectedProtocolVersion(), chooser.getSelectedCipherSuite()); LOGGER.debug("Premastersecret: " + ArrayConverter.bytesToHexString(chooser.getPreMasterSecret())); LOGGER.debug("SessionHash: " + ArrayConverter.bytesToHexString(sessionHash)); byte[] extendedMasterSecret = PseudoRandomFunction.compute(prfAlgorithm, chooser.getPreMasterSecret(), PseudoRandomFunction.EXTENDED_MASTER_SECRET_LABEL, sessionHash, HandshakeByteLength.MASTER_SECRET); return extendedMasterSecret; } else { LOGGER.debug("Calculating MasterSecret"); byte[] masterSecret = PseudoRandomFunction.compute(prfAlgorithm, chooser.getPreMasterSecret(), PseudoRandomFunction.MASTER_SECRET_LABEL, message.getComputations().getClientServerRandom() .getValue(), HandshakeByteLength.MASTER_SECRET); return masterSecret; } } }
@Override public List<ModifiableVariableHolder> getAllModifiableVariableHolders() { List<ModifiableVariableHolder> holders = super.getAllModifiableVariableHolders(); if (computations != null) { holders.add(computations); } return holders; }
@Override public List<ModifiableVariableHolder> getAllModifiableVariableHolders() { List<ModifiableVariableHolder> holders = super.getAllModifiableVariableHolders(); if (computations != null) { holders.add(computations); } return holders; }
@Override public List<ModifiableVariableHolder> getAllModifiableVariableHolders() { List<ModifiableVariableHolder> holders = super.getAllModifiableVariableHolders(); if (computations != null) { holders.add(computations); } return holders; } }
@Override public List<ModifiableVariableHolder> getAllModifiableVariableHolders() { List<ModifiableVariableHolder> holders = super.getAllModifiableVariableHolders(); if (computations != null) { holders.add(computations); } return holders; }
@Override public List<ModifiableVariableHolder> getAllModifiableVariableHolders() { List<ModifiableVariableHolder> holders = super.getAllModifiableVariableHolders(); if (computations != null) { holders.add(computations); } return holders; }