commit:     9c156d7fcfb4d76fbb14570df5e9a8d1e77e183e
Author:     Julien Roy <julien <AT> jroy <DOT> ca>
AuthorDate: Wed Dec 21 02:57:55 2022 +0000
Commit:     Julien Roy <julien <AT> jroy <DOT> ca>
CommitDate: Wed Dec 21 02:58:32 2022 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=9c156d7f

app-crypt/clevis: fix for openssl:3
Closes: https://bugs.gentoo.org/887205

Signed-off-by: Julien Roy <julien <AT> jroy.ca>

 app-crypt/clevis/clevis-18.ebuild           |  1 +
 app-crypt/clevis/files/clevis-openssl.patch | 44 +++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)

diff --git a/app-crypt/clevis/clevis-18.ebuild 
b/app-crypt/clevis/clevis-18.ebuild
index da0dc9637..a08573ab8 100644
--- a/app-crypt/clevis/clevis-18.ebuild
+++ b/app-crypt/clevis/clevis-18.ebuild
@@ -26,4 +26,5 @@ BDEPEND=""
 PATCHES=(
        "${FILESDIR}/${PN}-dracut.patch"
        "${FILESDIR}/${PN}-meson.patch"
+       "${FILESDIR}/${PN}-openssl.patch"
 )

diff --git a/app-crypt/clevis/files/clevis-openssl.patch 
b/app-crypt/clevis/files/clevis-openssl.patch
new file mode 100644
index 000000000..5b9090980
--- /dev/null
+++ b/app-crypt/clevis/files/clevis-openssl.patch
@@ -0,0 +1,44 @@
+From ee1dfedb9baca107e66a0fec76693c9d479dcfd9 Mon Sep 17 00:00:00 2001
+From: Sergio Correia <scorr...@redhat.com>
+Date: Mon, 3 May 2021 22:36:36 -0300
+Subject: [PATCH] sss: use BN_set_word(x, 0) instead of BN_zero()
+
+Different OpenSSL versions define BN_zero() differently -- sometimes
+returning an integer, sometimes as void --, so let's use instead
+BN_set_word() instead, not to have issues when building with these
+different versions.
+---
+ src/pins/sss/sss.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/pins/sss/sss.c b/src/pins/sss/sss.c
+index a37215d7..7486d6c5 100644
+--- a/src/pins/sss/sss.c
++++ b/src/pins/sss/sss.c
+@@ -214,7 +214,7 @@ sss_point(const json_t *sss, size_t *len)
+     if (BN_rand_range(xx, pp) <= 0)
+         return NULL;
+ 
+-    if (BN_zero(yy) <= 0)
++    if (BN_set_word(yy, 0) <= 0)
+         return NULL;
+ 
+     for (size_t i = 0; i < json_array_size(e); i++) {
+@@ -272,7 +272,7 @@ sss_recover(const json_t *p, size_t npnts, const uint8_t 
*pnts[])
+     if (!ctx || !pp || !acc || !tmp || !k)
+         return NULL;
+ 
+-    if (BN_zero(k) <= 0)
++    if (BN_set_word(k, 0) <= 0)
+         return NULL;
+ 
+     len = jose_b64_dec(p, NULL, 0);
+@@ -303,7 +303,7 @@ sss_recover(const json_t *p, size_t npnts, const uint8_t 
*pnts[])
+ 
+             /* acc *= (0 - xi) / (xo - xi) */
+ 
+-            if (BN_zero(tmp) <= 0)
++            if (BN_set_word(tmp, 0) <= 0)
+                 return NULL;
+ 
+             if (BN_mod_sub(tmp, tmp, xi, pp, ctx) <= 0)

Reply via email to