diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2014-09-03 09:32:32 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2015-02-02 14:45:52 +0100 |
commit | c02b260e7ef8548d61d6491d76d0150da66c19c7 (patch) | |
tree | 21a8ac17e9a2953210135ba38eef37da0d5f151d /src/server.c | |
parent | 01a6004171c6a899192c87dfe5a8ff27c30b1eaf (diff) | |
download | libssh-c02b260e7ef8548d61d6491d76d0150da66c19c7.tar.gz libssh-c02b260e7ef8548d61d6491d76d0150da66c19c7.tar.xz libssh-c02b260e7ef8548d61d6491d76d0150da66c19c7.zip |
server: Add support for ed25519 keys in the server.
Signed-off-by: Aris Adamantiadis <aris@0xbadc0de.be>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/server.c')
-rw-r--r-- | src/server.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/server.c b/src/server.c index 3a38fc7b..61641a6e 100644 --- a/src/server.c +++ b/src/server.c @@ -94,10 +94,17 @@ static int server_set_kex(ssh_session session) { ZERO_STRUCTP(server); ssh_get_random(server->cookie, 16, 0); + if (session->srv.ed25519_key != NULL) { + snprintf(hostkeys, + sizeof(hostkeys), + "%s", + ssh_key_type_to_char(ssh_key_type(session->srv.ed25519_key))); + } #ifdef HAVE_ECC if (session->srv.ecdsa_key != NULL) { - snprintf(hostkeys, sizeof(hostkeys), - "%s", session->srv.ecdsa_key->type_c); + len = strlen(hostkeys); + snprintf(hostkeys + len, sizeof(hostkeys) - len, + ",%s", session->srv.ecdsa_key->type_c); } #endif if (session->srv.dsa_key != NULL) { @@ -225,6 +232,9 @@ int ssh_get_key_params(ssh_session session, ssh_key *privkey){ case SSH_KEYTYPE_ECDSA: *privkey = session->srv.ecdsa_key; break; + case SSH_KEYTYPE_ED25519: + *privkey = session->srv.ed25519_key; + break; case SSH_KEYTYPE_UNKNOWN: default: *privkey = NULL; |