@Override public void prepareAfterParse(boolean clientMode) { if (!clientMode) { BigInteger privateKey = chooser.getSRPServerPrivateKey(); BigInteger clientPublic = new BigInteger(1, msg.getPublicKey().getValue()); msg.prepareComputations(); premasterSecret = calculatePremasterSecretServer(chooser.getSRPModulus(), chooser.getSRPGenerator(), privateKey, chooser.getSRPServerPublicKey(), clientPublic, chooser.getSRPServerSalt(), chooser.getSRPIdentity(), chooser.getSRPPassword()); preparePremasterSecret(msg); prepareClientServerRandom(msg); } }
@Override public void prepareHandshakeMessageContents() { LOGGER.debug("Preparing SRPClientExchangeMessage"); msg.prepareComputations(); setComputationGenerator(msg); setComputationModulus(msg); setComputationPrivateKey(msg); setComputationServerPublicKey(msg); setComputationSalt(msg); setSRPIdentity(msg); setSRPPassword(msg); clientPublicKey = calculatePublicKey(msg.getComputations().getGenerator().getValue(), msg.getComputations() .getModulus().getValue(), msg.getComputations().getPrivateKey().getValue()); prepareModulus(msg); prepareModulusLength(msg); prepareGenerator(msg); prepareGeneratorLength(msg); prepareSalt(msg); prepareSaltLength(msg); preparePublicKey(msg); preparePublicKeyLength(msg); premasterSecret = calculateClientPremasterSecret(msg.getComputations().getModulus().getValue(), msg .getComputations().getGenerator().getValue(), msg.getComputations().getPrivateKey().getValue(), msg .getComputations().getServerPublicKey().getValue(), clientPublicKey, msg.getComputations().getSalt() .getValue(), msg.getComputations().getSRPIdentity().getValue(), msg.getComputations().getSRPPassword() .getValue()); preparePremasterSecret(msg); prepareClientServerRandom(msg); }