summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2015-02-23 05:04:21 +1100
committerDarren Tucker <dtucker@zip.com.au>2015-02-23 05:04:21 +1100
commitf2004cd1adf34492eae0a44b1ef84e0e31b06088 (patch)
treec8173512b60c3b9719df735b9b6752bd58613fde
parent37f9220db8d1a52c75894c3de1e5f2ae5bd71b6f (diff)
Repair for non-ECC OpenSSL.
Ifdef out the ECC parts when building with an OpenSSL that doesn't have it.
-rw-r--r--monitor.c2
-rw-r--r--opacket.c4
-rw-r--r--ssh-keyscan.c2
-rw-r--r--ssh_api.c4
-rw-r--r--sshconnect2.c2
-rw-r--r--sshd.c2
6 files changed, 16 insertions, 0 deletions
diff --git a/monitor.c b/monitor.c
index 8f5ab7204..4f9c9fed6 100644
--- a/monitor.c
+++ b/monitor.c
@@ -1853,7 +1853,9 @@ monitor_apply_keystate(struct monitor *pmonitor)
1853 kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; 1853 kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server;
1854 kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; 1854 kex->kex[KEX_DH_GEX_SHA1] = kexgex_server;
1855 kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; 1855 kex->kex[KEX_DH_GEX_SHA256] = kexgex_server;
1856# ifdef OPENSSL_HAS_ECC
1856 kex->kex[KEX_ECDH_SHA2] = kexecdh_server; 1857 kex->kex[KEX_ECDH_SHA2] = kexecdh_server;
1858# endif
1857#endif /* WITH_OPENSSL */ 1859#endif /* WITH_OPENSSL */
1858 kex->kex[KEX_C25519_SHA256] = kexc25519_server; 1860 kex->kex[KEX_C25519_SHA256] = kexc25519_server;
1859 kex->load_host_public_key=&get_hostkey_public_by_type; 1861 kex->load_host_public_key=&get_hostkey_public_by_type;
diff --git a/opacket.c b/opacket.c
index 7618eae48..dd443c331 100644
--- a/opacket.c
+++ b/opacket.c
@@ -93,6 +93,7 @@ ssh_packet_put_bignum2(struct ssh *ssh, BIGNUM * value)
93 fatal("%s: %s", __func__, ssh_err(r)); 93 fatal("%s: %s", __func__, ssh_err(r));
94} 94}
95 95
96# ifdef OPENSSL_HAS_ECC
96void 97void
97ssh_packet_put_ecpoint(struct ssh *ssh, const EC_GROUP *curve, 98ssh_packet_put_ecpoint(struct ssh *ssh, const EC_GROUP *curve,
98 const EC_POINT *point) 99 const EC_POINT *point)
@@ -102,6 +103,7 @@ ssh_packet_put_ecpoint(struct ssh *ssh, const EC_GROUP *curve,
102 if ((r = sshpkt_put_ec(ssh, point, curve)) != 0) 103 if ((r = sshpkt_put_ec(ssh, point, curve)) != 0)
103 fatal("%s: %s", __func__, ssh_err(r)); 104 fatal("%s: %s", __func__, ssh_err(r));
104} 105}
106# endif
105#endif /* WITH_OPENSSL */ 107#endif /* WITH_OPENSSL */
106 108
107void 109void
@@ -165,6 +167,7 @@ ssh_packet_get_bignum2(struct ssh *ssh, BIGNUM * value)
165 fatal("%s: %s", __func__, ssh_err(r)); 167 fatal("%s: %s", __func__, ssh_err(r));
166} 168}
167 169
170# ifdef OPENSSL_HAS_ECC
168void 171void
169ssh_packet_get_ecpoint(struct ssh *ssh, const EC_GROUP *curve, EC_POINT *point) 172ssh_packet_get_ecpoint(struct ssh *ssh, const EC_GROUP *curve, EC_POINT *point)
170{ 173{
@@ -173,6 +176,7 @@ ssh_packet_get_ecpoint(struct ssh *ssh, const EC_GROUP *curve, EC_POINT *point)
173 if ((r = sshpkt_get_ec(ssh, point, curve)) != 0) 176 if ((r = sshpkt_get_ec(ssh, point, curve)) != 0)
174 fatal("%s: %s", __func__, ssh_err(r)); 177 fatal("%s: %s", __func__, ssh_err(r));
175} 178}
179# endif
176#endif /* WITH_OPENSSL */ 180#endif /* WITH_OPENSSL */
177 181
178void * 182void *
diff --git a/ssh-keyscan.c b/ssh-keyscan.c
index 2b1303026..c5fb3b524 100644
--- a/ssh-keyscan.c
+++ b/ssh-keyscan.c
@@ -282,7 +282,9 @@ keygrab_ssh2(con *c)
282 c->c_ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; 282 c->c_ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client;
283 c->c_ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; 283 c->c_ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
284 c->c_ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; 284 c->c_ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
285# ifdef OPENSSL_HAS_ECC
285 c->c_ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; 286 c->c_ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client;
287# endif
286#endif 288#endif
287 c->c_ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client; 289 c->c_ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client;
288 ssh_set_verify_host_key_callback(c->c_ssh, key_print_wrapper); 290 ssh_set_verify_host_key_callback(c->c_ssh, key_print_wrapper);
diff --git a/ssh_api.c b/ssh_api.c
index ca4789b54..6c712584f 100644
--- a/ssh_api.c
+++ b/ssh_api.c
@@ -105,7 +105,9 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params)
105 ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; 105 ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server;
106 ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; 106 ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_server;
107 ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; 107 ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_server;
108# ifdef OPENSSL_HAS_ECC
108 ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_server; 109 ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_server;
110# endif
109#endif /* WITH_OPENSSL */ 111#endif /* WITH_OPENSSL */
110 ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_server; 112 ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_server;
111 ssh->kex->load_host_public_key=&_ssh_host_public_key; 113 ssh->kex->load_host_public_key=&_ssh_host_public_key;
@@ -117,7 +119,9 @@ ssh_init(struct ssh **sshp, int is_server, struct kex_params *kex_params)
117 ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; 119 ssh->kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client;
118 ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; 120 ssh->kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
119 ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; 121 ssh->kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
122# ifdef OPENSSL_HAS_ECC
120 ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client; 123 ssh->kex->kex[KEX_ECDH_SHA2] = kexecdh_client;
124# endif
121#endif /* WITH_OPENSSL */ 125#endif /* WITH_OPENSSL */
122 ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client; 126 ssh->kex->kex[KEX_C25519_SHA256] = kexc25519_client;
123 ssh->kex->verify_host_key =&_ssh_verify_host_key; 127 ssh->kex->verify_host_key =&_ssh_verify_host_key;
diff --git a/sshconnect2.c b/sshconnect2.c
index 804194aab..ba56f6433 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -213,7 +213,9 @@ ssh_kex2(char *host, struct sockaddr *hostaddr, u_short port)
213 kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client; 213 kex->kex[KEX_DH_GRP14_SHA1] = kexdh_client;
214 kex->kex[KEX_DH_GEX_SHA1] = kexgex_client; 214 kex->kex[KEX_DH_GEX_SHA1] = kexgex_client;
215 kex->kex[KEX_DH_GEX_SHA256] = kexgex_client; 215 kex->kex[KEX_DH_GEX_SHA256] = kexgex_client;
216# ifdef OPENSSL_HAS_ECC
216 kex->kex[KEX_ECDH_SHA2] = kexecdh_client; 217 kex->kex[KEX_ECDH_SHA2] = kexecdh_client;
218# endif
217#endif 219#endif
218 kex->kex[KEX_C25519_SHA256] = kexc25519_client; 220 kex->kex[KEX_C25519_SHA256] = kexc25519_client;
219 kex->client_version_string=client_version_string; 221 kex->client_version_string=client_version_string;
diff --git a/sshd.c b/sshd.c
index 312dcd89e..e1c767c14 100644
--- a/sshd.c
+++ b/sshd.c
@@ -2570,7 +2570,9 @@ do_ssh2_kex(void)
2570 kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server; 2570 kex->kex[KEX_DH_GRP14_SHA1] = kexdh_server;
2571 kex->kex[KEX_DH_GEX_SHA1] = kexgex_server; 2571 kex->kex[KEX_DH_GEX_SHA1] = kexgex_server;
2572 kex->kex[KEX_DH_GEX_SHA256] = kexgex_server; 2572 kex->kex[KEX_DH_GEX_SHA256] = kexgex_server;
2573# ifdef OPENSSL_HAS_ECC
2573 kex->kex[KEX_ECDH_SHA2] = kexecdh_server; 2574 kex->kex[KEX_ECDH_SHA2] = kexecdh_server;
2575# endif
2574#endif 2576#endif
2575 kex->kex[KEX_C25519_SHA256] = kexc25519_server; 2577 kex->kex[KEX_C25519_SHA256] = kexc25519_server;
2576 kex->server = 1; 2578 kex->server = 1;