|
@@ -0,0 +1,105 @@
|
|
|
+From 1e7071684329f23ee3447310d203d193c283979e Mon Sep 17 00:00:00 2001
|
|
|
+From: James Hilliard <james.hilliard1@gmail.com>
|
|
|
+Date: Wed, 5 Oct 2022 15:30:32 -0600
|
|
|
+Subject: [PATCH] Fix missing EVP_PKEY_ED25519 build error on libressl
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
|
+
|
|
|
+Fixes:
|
|
|
+gensio_filter_certauth.c: In function ‘v3_certauth_add_challenge_rsp’:
|
|
|
+gensio_filter_certauth.c:838:44: error: ‘EVP_PKEY_ED25519’ undeclared (first use in this function); did you mean ‘EVP_PKEY_DSA1’?
|
|
|
+ 838 | if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519) {
|
|
|
+ | ^~~~~~~~~~~~~~~~
|
|
|
+ | EVP_PKEY_DSA1
|
|
|
+gensio_filter_certauth.c:838:44: note: each undeclared identifier is reported only once for each function it appears in
|
|
|
+gensio_filter_certauth.c: In function ‘certauth_add_challenge_rsp’:
|
|
|
+gensio_filter_certauth.c:901:44: error: ‘EVP_PKEY_ED25519’ undeclared (first use in this function); did you mean ‘EVP_PKEY_DSA1’?
|
|
|
+ 901 | if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519)
|
|
|
+ | ^~~~~~~~~~~~~~~~
|
|
|
+ | EVP_PKEY_DSA1
|
|
|
+gensio_filter_certauth.c: In function ‘certauth_check_challenge’:
|
|
|
+gensio_filter_certauth.c:1048:35: error: ‘EVP_PKEY_ED25519’ undeclared (first use in this function); did you mean ‘EVP_PKEY_DSA1’?
|
|
|
+ 1048 | if (EVP_PKEY_base_id(pkey) == EVP_PKEY_ED25519)
|
|
|
+ | ^~~~~~~~~~~~~~~~
|
|
|
+ | EVP_PKEY_DSA1
|
|
|
+
|
|
|
+Signed-off-by: Corey Minyard <cminyard@mvista.com>
|
|
|
+[Retrieved from:
|
|
|
+https://github.com/cminyard/gensio/commit/1e7071684329f23ee3447310d203d193c283979e]
|
|
|
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
+---
|
|
|
+ lib/gensio_filter_certauth.c | 6 ++++++
|
|
|
+ tools/gtlssh-keygen.c | 11 ++++++++++-
|
|
|
+ 2 files changed, 16 insertions(+), 1 deletion(-)
|
|
|
+
|
|
|
+diff --git a/lib/gensio_filter_certauth.c b/lib/gensio_filter_certauth.c
|
|
|
+index 642379b6..c4552e79 100644
|
|
|
+--- a/lib/gensio_filter_certauth.c
|
|
|
++++ b/lib/gensio_filter_certauth.c
|
|
|
+@@ -835,11 +835,13 @@ v3_certauth_add_challenge_rsp(struct certauth_filter *sfilter)
|
|
|
+ unsigned int lenpos, len;
|
|
|
+ int rv = 0;
|
|
|
+
|
|
|
++#ifdef EVP_PKEY_ED25519
|
|
|
+ if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519) {
|
|
|
+ gca_log_err(sfilter,
|
|
|
+ "Remote end or SSL too old to support ed25519 key");
|
|
|
+ return GE_KEYINVALID;
|
|
|
+ }
|
|
|
++#endif
|
|
|
+
|
|
|
+ certauth_write_byte(sfilter, CERTAUTH_CHALLENGE_RSP);
|
|
|
+ lenpos = sfilter->write_buf_len;
|
|
|
+@@ -898,8 +900,10 @@ certauth_add_challenge_rsp(struct certauth_filter *sfilter)
|
|
|
+ if (sfilter->version < 4 || sfilter->my_version < 4)
|
|
|
+ return v3_certauth_add_challenge_rsp(sfilter);
|
|
|
+
|
|
|
++#ifdef EVP_PKEY_ED25519
|
|
|
+ if (EVP_PKEY_base_id(sfilter->pkey) == EVP_PKEY_ED25519)
|
|
|
+ digest = NULL;
|
|
|
++#endif
|
|
|
+
|
|
|
+ certauth_write_byte(sfilter, CERTAUTH_CHALLENGE_RSP);
|
|
|
+ lenpos = sfilter->write_buf_len;
|
|
|
+@@ -1045,8 +1049,10 @@ certauth_check_challenge(struct certauth_filter *sfilter)
|
|
|
+ goto out_nomem;
|
|
|
+ }
|
|
|
+
|
|
|
++#ifdef EVP_PKEY_ED25519
|
|
|
+ if (EVP_PKEY_base_id(pkey) == EVP_PKEY_ED25519)
|
|
|
+ digest = NULL;
|
|
|
++#endif
|
|
|
+
|
|
|
+ if (!EVP_DigestVerifyInit(sign_ctx, NULL, digest, NULL, pkey)) {
|
|
|
+ gca_logs_err(sfilter, "Digest verify init failed");
|
|
|
+diff --git a/tools/gtlssh-keygen.c b/tools/gtlssh-keygen.c
|
|
|
+index c8c28937..0779dd78 100644
|
|
|
+--- a/tools/gtlssh-keygen.c
|
|
|
++++ b/tools/gtlssh-keygen.c
|
|
|
+@@ -108,7 +108,12 @@ help(const char *progname)
|
|
|
+ P(" The default is your username for normal certificates and\n");
|
|
|
+ P(" the fully qualified domain name for server certificates.\n");
|
|
|
+ P(" --algorithm <algname> - Set the algorithm to use for the key,\n");
|
|
|
+- P(" either ed25519, rsa or ec. The default is ed25519.\n");
|
|
|
++ P(" either ed25519, rsa or ec. ");
|
|
|
++#ifdef EVP_PKEY_ED25519
|
|
|
++ P("The default is ed25519.\n");
|
|
|
++#else
|
|
|
++ P("The default is ec.\n");
|
|
|
++#endif
|
|
|
+ P(" --force, -f - Don't ask questions, just do the operation. This\n");
|
|
|
+ P(" may overwrite data without asking.\n");
|
|
|
+ P(" --version - Print the version number and exit.\n");
|
|
|
+@@ -831,7 +836,11 @@ genpkey_ed25519(const char *key)
|
|
|
+ return rc != 0;
|
|
|
+ }
|
|
|
+
|
|
|
++#ifdef EVP_PKEY_ED25519
|
|
|
+ static int (*genpkey)(const char *key) = genpkey_ed25519;
|
|
|
++#else
|
|
|
++static int (*genpkey)(const char *key) = genpkey_ec;
|
|
|
++#endif
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Create a single key. If name is NULL, it's a server key, otherwise
|