From 666db37e210c4d880cb1d9cfbfca9c11ed374ba7 Mon Sep 17 00:00:00 2001 From: Aris Adamantiadis Date: Sat, 21 Sep 2013 23:34:50 +0200 Subject: kex: implement curve25519-sha256@libssh.org --- src/dh.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/dh.c') diff --git a/src/dh.c b/src/dh.c index aa01c198..f96a94a3 100644 --- a/src/dh.c +++ b/src/dh.c @@ -770,6 +770,18 @@ int make_sessionid(ssh_session session) { if (rc < 0) { goto error; } +#endif +#ifdef HAVE_CURVE25519 + } else if(session->next_crypto->kex_type == SSH_KEX_CURVE25519_SHA256_LIBSSH_ORG){ + rc = buffer_add_u32(buf, htonl(CURVE25519_PUBKEY_SIZE)); + rc += buffer_add_data(buf, session->next_crypto->curve25519_client_pubkey, + CURVE25519_PUBKEY_SIZE); + rc += buffer_add_u32(buf, htonl(CURVE25519_PUBKEY_SIZE)); + rc += buffer_add_data(buf, session->next_crypto->curve25519_server_pubkey, + CURVE25519_PUBKEY_SIZE); + if (rc != SSH_OK) { + goto error; + } #endif } num = make_bignum_string(session->next_crypto->k); @@ -800,6 +812,7 @@ int make_sessionid(ssh_session session) { session->next_crypto->secret_hash); break; case SSH_KEX_ECDH_SHA2_NISTP256: + case SSH_KEX_CURVE25519_SHA256_LIBSSH_ORG: session->next_crypto->digest_len = SHA256_DIGEST_LENGTH; session->next_crypto->mac_type = SSH_MAC_SHA256; session->next_crypto->secret_hash = malloc(session->next_crypto->digest_len); -- cgit