summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordjm <djm>2014-08-20 01:06:50 +0000
committerdjm <djm>2014-08-20 01:06:50 +0000
commit2b7c8f0b269c2a1d4fb5e0bef56a082b5de3f3fe (patch)
tree1bfa59f7f7d7bf4939dc02854805ef296aad54c3
parent49d4c101b7659d6a7df135ef551692447b20ccfe (diff)
downloadopenssh-2b7c8f0b269c2a1d4fb5e0bef56a082b5de3f3fe.tar.gz
- (djm) [sshkey.h] Fix compilation when OpenSSL lacks ECC
-rw-r--r--ChangeLog1
-rw-r--r--sshkey.h38
2 files changed, 25 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 2ab238d4..1abd358a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
suggested by Kevin Brott
- (djm) [Makefile.in] refer to libtest_helper.a by explicit path rather than
-L/-l; fixes linking problems on some platforms
+ - (djm) [sshkey.h] Fix compilation when OpenSSL lacks ECC
20140819
- (djm) [serverloop.c] Fix syntax error on Cygwin; from Corinna Vinschen
diff --git a/sshkey.h b/sshkey.h
index 4127db24..450b30c1 100644
--- a/sshkey.h
+++ b/sshkey.h
@@ -31,13 +31,19 @@
#ifdef WITH_OPENSSL
#include <openssl/rsa.h>
#include <openssl/dsa.h>
-#include <openssl/ec.h>
-#else /* OPENSSL */
-#define RSA void
-#define DSA void
-#define EC_KEY void
-#define EC_GROUP void
-#define EC_POINT void
+# ifdef OPENSSL_HAS_ECC
+# include <openssl/ec.h>
+# else /* OPENSSL_HAS_ECC */
+# define EC_KEY void
+# define EC_GROUP void
+# define EC_POINT void
+# endif /* OPENSSL_HAS_ECC */
+#else /* WITH_OPENSSL */
+# define RSA void
+# define DSA void
+# define EC_KEY void
+# define EC_GROUP void
+# define EC_POINT void
#endif /* WITH_OPENSSL */
#define SSH_RSA_MINIMUM_MODULUS_SIZE 768
@@ -211,12 +217,16 @@ int ssh_ed25519_verify(const struct sshkey *key,
const u_char *data, size_t datalen, u_int compat);
#endif
-#ifndef WITH_OPENSSL
-#undef RSA
-#undef DSA
-#undef EC_KEY
-#undef EC_GROUP
-#undef EC_POINT
-#endif /* WITH_OPENSSL */
+#if !defined(WITH_OPENSSL)
+# undef RSA
+# undef DSA
+# undef EC_KEY
+# undef EC_GROUP
+# undef EC_POINT
+#elif !defined(OPENSSL_HAS_ECC)
+# undef EC_KEY
+# undef EC_GROUP
+# undef EC_POINT
+#endif
#endif /* SSHKEY_H */