aboutsummaryrefslogtreecommitdiff
path: root/src/server.c
diff options
context:
space:
mode:
authorJakub Jelen <jjelen@redhat.com>2018-07-03 16:54:35 +0200
committerAndreas Schneider <asn@cryptomilk.org>2018-08-31 14:18:34 +0200
commit5d1300665061736c3ebfb4728ee1a96a2a345f3f (patch)
treed2b26d70479edab7df653255221be1bfba0c3258 /src/server.c
parent6fa5e8adb0f35c4c90067d81967a38f57ebaec67 (diff)
downloadlibssh-5d1300665061736c3ebfb4728ee1a96a2a345f3f.tar.gz
libssh-5d1300665061736c3ebfb4728ee1a96a2a345f3f.tar.xz
libssh-5d1300665061736c3ebfb4728ee1a96a2a345f3f.zip
server: We should list SHA2 variants in offered hostkeys
The SHA2 variants should be preferred. Also the buffer needs to be extended to fit all possible public key algorithms. Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/server.c')
-rw-r--r--src/server.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server.c b/src/server.c
index dfabbe83..ff85d3a7 100644
--- a/src/server.c
+++ b/src/server.c
@@ -86,7 +86,7 @@ static int server_set_kex(ssh_session session) {
struct ssh_kex_struct *server = &session->next_crypto->server_kex;
int i, j, rc;
const char *wanted;
- char hostkeys[64] = {0};
+ char hostkeys[128] = {0};
enum ssh_keytypes_e keytype;
size_t len;
int ok;
@@ -122,6 +122,11 @@ static int server_set_kex(ssh_session session) {
}
#endif
if (session->srv.rsa_key != NULL) {
+ /* We support also the SHA2 variants */
+ len = strlen(hostkeys);
+ snprintf(hostkeys + len, sizeof(hostkeys) - len,
+ ",rsa-sha2-512,rsa-sha2-256");
+
len = strlen(hostkeys);
keytype = ssh_key_type(session->srv.rsa_key);