commit:     6f6f1a15a5ab8192443e1e4d4f4da5909e04cb42
Author:     orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Sun May  8 18:10:24 2022 +0000
Commit:     Quentin Retornaz <gentoo <AT> retornaz <DOT> com>
CommitDate: Mon May  9 18:35:53 2022 +0000
URL:        https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=6f6f1a15

dev-libs/libp11: Add 0.4.11-r2

Signed-off-by: orbea <orbea <AT> riseup.net>
Signed-off-by: Quentin Retornaz <gentoo <AT> retornaz.com>

 dev-libs/libp11/files/libp11-0.4.11-libressl.patch | 165 ++++++++++++++++++++-
 dev-libs/libp11/libp11-0.4.11-r2.ebuild            |  32 ++++
 2 files changed, 194 insertions(+), 3 deletions(-)

diff --git a/dev-libs/libp11/files/libp11-0.4.11-libressl.patch 
b/dev-libs/libp11/files/libp11-0.4.11-libressl.patch
index 9f285b1..f074cd8 100644
--- a/dev-libs/libp11/files/libp11-0.4.11-libressl.patch
+++ b/dev-libs/libp11/files/libp11-0.4.11-libressl.patch
@@ -1,6 +1,163 @@
-diff -puriN libp11-0.4.11.orig/src/p11_rsa.c libp11-0.4.11/src/p11_rsa.c
---- libp11-0.4.11.orig/src/p11_rsa.c   2020-10-11 08:41:00.000000000 -0500
-+++ libp11-0.4.11/src/p11_rsa.c        2021-01-15 06:00:38.000000000 -0600
+Fix the build against libressl-3.5
+
+diff --git a/examples/auth.c b/examples/auth.c
+index 241db6d..7f1a905 100644
+--- a/examples/auth.c
++++ b/examples/auth.c
+@@ -267,7 +267,7 @@ int main(int argc, char *argv[])
+ 
+       /* now verify the result */
+       rc = RSA_verify(NID_sha1, random, RANDOM_SIZE,
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100003L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+                       signature, siglen, EVP_PKEY_get0_RSA(pubkey));
+ #else
+                       signature, siglen, pubkey->pkey.rsa);
+diff --git a/examples/decrypt.c b/examples/decrypt.c
+index d059fd4..2b51149 100644
+--- a/examples/decrypt.c
++++ b/examples/decrypt.c
+@@ -168,7 +168,7 @@ int main(int argc, char *argv[])
+       }
+ 
+       /* allocate destination buffer */
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100003L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       encrypted = OPENSSL_malloc(RSA_size(EVP_PKEY_get0_RSA(pubkey)));
+ #else
+       encrypted = OPENSSL_malloc(RSA_size(pubkey->pkey.rsa));
+@@ -181,7 +181,7 @@ int main(int argc, char *argv[])
+ 
+       /* use public key for encryption */
+       len = RSA_public_encrypt(RANDOM_SIZE, random, encrypted,
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100003L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+                       EVP_PKEY_get0_RSA(pubkey),
+ #else
+                       pubkey->pkey.rsa,
+@@ -248,7 +248,7 @@ loggedin:
+       }
+ 
+       /* allocate space for decrypted data */
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100003L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       decrypted = OPENSSL_malloc(RSA_size(EVP_PKEY_get0_RSA(pubkey)));
+ #else
+       decrypted = OPENSSL_malloc(RSA_size(pubkey->pkey.rsa));
+diff --git a/src/libp11-int.h b/src/libp11-int.h
+index 5c2b295..9b97119 100644
+--- a/src/libp11-int.h
++++ b/src/libp11-int.h
+@@ -152,7 +152,7 @@ void CRYPTO_THREAD_lock_free(int);
+ #endif
+ 
+ /* Emulate the OpenSSL 1.1 getters */
+-#if OPENSSL_VERSION_NUMBER < 0x10100003L || defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER < 0x10100003L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x3000000L )
+ #define EVP_PKEY_get0_RSA(key) ((key)->pkey.rsa)
+ #define EVP_PKEY_get0_EC_KEY(key) ((key)->pkey.ec)
+ #endif
+diff --git a/src/p11_cert.c b/src/p11_cert.c
+index da09278..fb0818f 100644
+--- a/src/p11_cert.c
++++ b/src/p11_cert.c
+@@ -304,7 +304,7 @@ int pkcs11_store_certificate(PKCS11_TOKEN *token, X509 
*x509, char *label,
+               (pkcs11_i2d_fn)i2d_X509_NAME, X509_get_issuer_name(x509));
+ 
+       /* Get digest algorithm from x509 certificate */
+-#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10002000L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       signature_nid = X509_get_signature_nid(x509);
+ #else
+       signature_nid = OBJ_obj2nid(x509->sig_alg->algorithm);
+diff --git a/src/p11_ec.c b/src/p11_ec.c
+index 7e4b676..568e8c2 100644
+--- a/src/p11_ec.c
++++ b/src/p11_ec.c
+@@ -470,7 +470,7 @@ static ECDSA_SIG *pkcs11_ecdsa_sign_sig(const unsigned 
char *dgst, int dlen,
+       sig = ECDSA_SIG_new();
+       if (!sig)
+               return NULL;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       ECDSA_SIG_set0(sig, r, s);
+ #else
+       BN_free(sig->r);
+diff --git a/src/p11_key.c b/src/p11_key.c
+index e2ffe3b..827d112 100644
+--- a/src/p11_key.c
++++ b/src/p11_key.c
+@@ -251,7 +251,7 @@ static int pkcs11_store_key(PKCS11_TOKEN *token, EVP_PKEY 
*pk,
+               pkcs11_addattr_bool(attrs + n++, CKA_VERIFY, TRUE);
+               pkcs11_addattr_bool(attrs + n++, CKA_WRAP, TRUE);
+       }
+-#if OPENSSL_VERSION_NUMBER >= 0x10100003L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100003L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       if (EVP_PKEY_base_id(pk) == EVP_PKEY_RSA) {
+               RSA *rsa = EVP_PKEY_get1_RSA(pk);
+               pkcs11_addattr_int(attrs + n++, CKA_KEY_TYPE, CKK_RSA);
+@@ -336,7 +336,7 @@ EVP_PKEY *pkcs11_get_key(PKCS11_KEY *key, int isPrivate)
+ #endif
+               }
+       }
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL ) 
+       EVP_PKEY_up_ref(key->evp_key);
+ #else
+       CRYPTO_add(&key->evp_key->references, 1, CRYPTO_LOCK_EVP_PKEY);
+diff --git a/src/p11_pkey.c b/src/p11_pkey.c
+index 50eef56..4536a67 100644
+--- a/src/p11_pkey.c
++++ b/src/p11_pkey.c
+@@ -621,7 +621,7 @@ static int pkcs11_try_pkey_ec_sign(EVP_PKEY_CTX 
*evp_pkey_ctx,
+               BIGNUM *r = BN_bin2bn(sig, size/2, NULL);
+               BIGNUM *s = BN_bin2bn(sig + size/2, size/2, NULL);
+ 
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+               ECDSA_SIG_set0(ossl_sig, r, s);
+ #else
+               BN_free(ossl_sig->r);
+diff --git a/src/p11_rsa.c b/src/p11_rsa.c
+index b6beef0..45acf2a 100644
+--- a/src/p11_rsa.c
++++ b/src/p11_rsa.c
+@@ -223,7 +223,7 @@ success:
+       rsa = RSA_new();
+       if (!rsa)
+               goto failure;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100005L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       RSA_set0_key(rsa, rsa_n, rsa_e, NULL);
+ #else
+       rsa->n = rsa_n;
+@@ -275,7 +275,7 @@ static EVP_PKEY *pkcs11_get_evp_key_rsa(PKCS11_KEY *key)
+ 
+       if (key->isPrivate) {
+               RSA_set_method(rsa, PKCS11_get_rsa_method());
+-#if OPENSSL_VERSION_NUMBER >= 0x10100005L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+               RSA_set_flags(rsa, RSA_FLAG_EXT_PKEY);
+ #else
+               rsa->flags |= RSA_FLAG_EXT_PKEY;
+@@ -301,7 +301,7 @@ int pkcs11_get_key_modulus(PKCS11_KEY *key, BIGNUM **bn)
+ 
+       if (!rsa)
+               return 0;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100005L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       RSA_get0_key(rsa, &rsa_n, NULL, NULL);
+ #else
+       rsa_n=rsa->n;
+@@ -318,7 +318,7 @@ int pkcs11_get_key_exponent(PKCS11_KEY *key, BIGNUM **bn)
+ 
+       if (!rsa)
+               return 0;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100005L && !defined(LIBRESSL_VERSION_NUMBER)
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L || ( 
defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x3050000fL )
+       RSA_get0_key(rsa, NULL, &rsa_e, NULL);
+ #else
+       rsa_e=rsa->e;
 @@ -336,7 +336,7 @@ int pkcs11_get_key_size(PKCS11_KEY *key)
        return RSA_size(rsa);
  }
@@ -10,4 +167,6 @@ diff -puriN libp11-0.4.11.orig/src/p11_rsa.c 
libp11-0.4.11/src/p11_rsa.c
  
  int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth))
                (int flen, const unsigned char *from,
+-- 
+2.35.1
 

diff --git a/dev-libs/libp11/libp11-0.4.11-r2.ebuild 
b/dev-libs/libp11/libp11-0.4.11-r2.ebuild
new file mode 100644
index 0000000..53ba90b
--- /dev/null
+++ b/dev-libs/libp11/libp11-0.4.11-r2.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Abstraction layer to simplify PKCS#11 API"
+HOMEPAGE="https://github.com/opensc/libp11/wiki";
+SRC_URI="https://github.com/OpenSC/${PN}/releases/download/${P}/${P}.tar.gz";
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86"
+IUSE="doc static-libs"
+
+RDEPEND="dev-libs/openssl:="
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig
+       doc? ( app-doc/doxygen )"
+
+PATCHES=("${FILESDIR}/libp11-0.4.11-libressl.patch")
+
+src_configure() {
+       econf \
+               --enable-shared \
+               $(use_enable static-libs static) \
+               $(use_enable doc api-doc)
+}
+
+src_install() {
+       default
+       find "${D}" -name '*.la' -delete || die
+}

Reply via email to