@Override protected PskDheServerKeyExchangeMessage createHandshakeMessage() { return new PskDheServerKeyExchangeMessage(); }
/** * Reads the next bytes as the PSKIdentityHint and writes them in the * message * * @param msg * Message to write in */ private void parsePskIdentityHint(PskDheServerKeyExchangeMessage msg) { msg.setIdentityHint(parseByteArrayField(msg.getIdentityHintLength().getValue())); LOGGER.debug("SerializedPSK-Identity: " + ArrayConverter.bytesToHexString(msg.getIdentityHint().getValue())); } }
private void preparePskPublicKey(PskDheServerKeyExchangeMessage msg) { msg.setPublicKey(chooser.getPSKServerPublicKey().toByteArray()); LOGGER.debug("PublicKey: " + ArrayConverter.bytesToHexString(msg.getPublicKey().getValue())); }
private void parsePskIdentityHintLength(PskDheServerKeyExchangeMessage msg) { msg.setIdentityHintLength(parseIntField(HandshakeByteLength.PSK_IDENTITY_LENGTH)); LOGGER.debug("SerializedPSL-IdentityLength: " + msg.getIdentityHintLength().getValue()); }
@Override public void prepareHandshakeMessageContents() { msg.setIdentityHint(chooser.getPSKIdentityHint()); msg.setIdentityHintLength(msg.getIdentityHint().getValue().length); setPskDheParams(); preparePskPublicKey(msg); super.prepareDheParams(); }
protected void setComputedPskDhModulus(PskDheServerKeyExchangeMessage msg) { msg.getComputations().setModulus(chooser.getPSKModulus()); LOGGER.debug("Modulus used for Computations: " + msg.getComputations().getModulus().getValue().toString(16)); }
private void adjustServerPublicKey(PskDheServerKeyExchangeMessage message) { tlsContext.setServerPSKPublicKey(new BigInteger(1, message.getPublicKey().getValue())); LOGGER.debug("Server PublicKey: " + tlsContext.getServerPSKPublicKey()); }
private void writePSKIdentityHintLength(PskDheServerKeyExchangeMessage msg) { appendInt(msg.getIdentityHintLength().getValue(), HandshakeByteLength.PSK_IDENTITY_LENGTH); LOGGER.debug("SerializedPSKIdentityHintLength: " + msg.getIdentityHintLength()); }
/** * Writes the SerializedPublicKey of the PskDheServerKeyExchangeMessage into * the final byte[] */ private void writePSKIdentityHint(PskDheServerKeyExchangeMessage msg) { appendBytes(msg.getIdentityHint().getValue()); LOGGER.debug("SerializedPSKIdentityHint: " + ArrayConverter.bytesToHexString(msg.getIdentityHint().getValue())); } }
/** * * @param context */ private void adjustPSKGenerator(PskDheServerKeyExchangeMessage message) { tlsContext.setPSKGenerator(new BigInteger(1, message.getGenerator().getValue())); LOGGER.debug("PSK Generator: " + tlsContext.getPSKGenerator()); }
private void adjustPSKModulus(PskDheServerKeyExchangeMessage message) { tlsContext.setPSKModulus(new BigInteger(1, message.getModulus().getValue())); LOGGER.debug("PSK Modulus: " + tlsContext.getPSKModulus()); }
private void setPskDheParams() { msg.prepareComputations(); setComputedPskDhGenerator(msg); setComputedPskDhModulus(msg); setComputedPskDhPrivateKey(msg); }
protected void setComputedPskDhPrivateKey(PskDheServerKeyExchangeMessage msg) { msg.getComputations().setPrivateKey(chooser.getPSKServerPrivateKey()); LOGGER.debug("PrivateKey: " + msg.getComputations().getPrivateKey().getValue()); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("PskDheServerKeyExchangeMessage:"); sb.append("\n Modulus p: "); if (super.modulus != null && super.modulus.getValue() != null) { sb.append(ArrayConverter.bytesToHexString(modulus.getValue())); } else { sb.append("null"); } sb.append("\n Generator g: "); if (generator != null && generator.getValue() != null) { sb.append(ArrayConverter.bytesToHexString(generator.getValue())); } else { sb.append("null"); } sb.append("\n Public Key: "); if (getPublicKey() != null) { sb.append(ArrayConverter.bytesToHexString(getPublicKey().getValue(), false)); } else { sb.append("null"); } return sb.toString(); }
protected void setComputedPskDhGenerator(PskDheServerKeyExchangeMessage msg) { msg.getComputations().setGenerator(chooser.getPSKGenerator()); LOGGER.debug("Generator used for Computations: " + msg.getComputations().getGenerator().getValue().toString(16)); }
break; case DHE_PSK: messages.add(new PskDheServerKeyExchangeMessage(config)); break; case ECDHE_PSK:
@Override public void adjustTLSContext(PskDheServerKeyExchangeMessage message) { adjustPSKGenerator(message); adjustPSKModulus(message); adjustServerPublicKey(message); if (message.getComputations() != null && message.getComputations().getPrivateKey() != null) { adjustServerPrivateKey(message); } }
private void adjustServerPrivateKey(PskDheServerKeyExchangeMessage message) { tlsContext.setServerPSKPrivateKey(message.getComputations().getPrivateKey().getValue()); LOGGER.debug("Server PrivateKey: " + tlsContext.getServerPSKPrivateKey()); } }