Estoy tratando de implementar el intercambio de claves SSH2 en Java y tengo algunas dificultades. El RFC4419 establece que:
El servidor responde con:
byte SSH_MSG_KEX_DH_GEX_REPLY string server public host key and certificates (K_S) mpint f string signature of H
Mi pregunta es: ¿cómo se debe componer la "clave pública de servidor y certificados (K_S)"? ¿Dónde puedo encontrar esta información?
Tengo claves públicas y privadas del host, y puedo leer toda la información necesaria, por ejemplo:
/*
Read the required variables from the public key.
*/
DSAParams pubKeyDSAParams = ((DSAPublicKey) pair.getPublic()).getParams();
BigInteger p = pubKeyDSAParams.getP();
BigInteger q = pubKeyDSAParams.getQ();
BigInteger g = pubKeyDSAParams.getG();
/*
Read the private exponent from the private key.
*/
DSAPrivateKey privKey = (DSAPrivateKey) pair.getPrivate();
BigInteger x = privKey.getX();