diff options
author | orbea <orbea@riseup.net> | 2022-06-03 21:26:09 -0700 |
---|---|---|
committer | Quentin Retornaz <gentoo@retornaz.com> | 2022-06-05 03:45:35 +0200 |
commit | 5af83b8575d6b469c6fac13d87c6e8d34c87da51 (patch) | |
tree | ef419376275d65adc43c486dc8409b4979d6b6b7 /app-crypt | |
parent | dev-lang/ruby: Added 3.0 (diff) | |
download | libressl-5af83b8575d6b469c6fac13d87c6e8d34c87da51.tar.gz libressl-5af83b8575d6b469c6fac13d87c6e8d34c87da51.tar.bz2 libressl-5af83b8575d6b469c6fac13d87c6e8d34c87da51.zip |
app-crypt/qca: Updated for version 2.3.4
Signed-off-by: orbea <orbea@riseup.net>
Signed-off-by: Quentin Retornaz <gentoo@retornaz.com>
Diffstat (limited to 'app-crypt')
-rw-r--r-- | app-crypt/qca/Manifest | 1 | ||||
-rw-r--r-- | app-crypt/qca/files/qca-2.3.4-libressl.patch | 103 | ||||
-rw-r--r-- | app-crypt/qca/metadata.xml | 45 | ||||
-rw-r--r-- | app-crypt/qca/qca-2.3.4.ebuild | 85 |
4 files changed, 211 insertions, 23 deletions
diff --git a/app-crypt/qca/Manifest b/app-crypt/qca/Manifest index df985ae..a5a57d8 100644 --- a/app-crypt/qca/Manifest +++ b/app-crypt/qca/Manifest @@ -1,2 +1,3 @@ DIST qca-2.3.0.tar.xz 729504 BLAKE2B 71cf9dfae00066c14e1055da1fa1a8e1210f538b1addfde1b99a9b26b1e8f7dd61e289d0f505b5ec04d5f4745216d4fd0f8be8f8de9e9cbf74123907ba703d0e SHA512 ca9251868e073834562fa62ffc64b3e7817c9ddadc6bc3fb99cf8b5c8d859969562170a98874be9590c617b2dd8e5590d2c83792554f54bb880c677902db22fe DIST qca-2.3.1.tar.xz 725984 BLAKE2B a99121dd95822ef5e1057dc9ad9250bb14486f42b0571936453644bc7c5649f16cbc918fa04d4a5af2c62bc35cc672159a84e27a86e685cfe320518a42076052 SHA512 092704a8d7c5973f05c82584ea55b4f8f874965aea943277e50fde873913a9bdad6a51ea74fc0036bbb632a13141cb4c030504229c06779890286205929f6021 +DIST qca-2.3.4.tar.xz 737072 BLAKE2B 64e698135f02bf115269203d44a53d40449be1620487340551c1e45f66f042132beb2cfa2363d1249f92de3ffd670f1807219cb3ce3d6e7c05afd8c22242b703 SHA512 af27338b5c018d39c8c745b63691dec3914e29ff79347ab338f4391ee1dc9832d158b222bc9ef6c7681cf4b2893a38829a4daadf1d53622d6947de2efeb880a8 diff --git a/app-crypt/qca/files/qca-2.3.4-libressl.patch b/app-crypt/qca/files/qca-2.3.4-libressl.patch new file mode 100644 index 0000000..8bee8ad --- /dev/null +++ b/app-crypt/qca/files/qca-2.3.4-libressl.patch @@ -0,0 +1,103 @@ +From aa07e1eacdbfeefa5ff21c5d7e45ce9e02e91dbb Mon Sep 17 00:00:00 2001 +From: Stefan Strogin <steils@gentoo.org> +Date: Fri, 3 Jun 2022 21:11:45 -0700 +Subject: [PATCH] LibreSSL 3.0.x support + +--- + plugins/qca-ossl/qca-ossl.cpp | 25 ++++++++++++++++++++++++- + 1 file changed, 24 insertions(+), 1 deletion(-) + +diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp +index b2c5d3d..79775cd 100644 +--- a/plugins/qca-ossl/qca-ossl.cpp ++++ b/plugins/qca-ossl/qca-ossl.cpp +@@ -44,7 +44,13 @@ + #include <openssl/provider.h> + #endif + ++#ifndef RSA_F_RSA_OSSL_PRIVATE_DECRYPT ++#define RSA_F_RSA_OSSL_PRIVATE_DECRYPT RSA_F_RSA_EAY_PRIVATE_DECRYPT ++#endif ++ ++#ifndef LIBRESSL_VERSION_NUMBER + #include <openssl/kdf.h> ++#endif + + using namespace QCA; + +@@ -1254,6 +1260,7 @@ public: + protected: + }; + ++#ifndef LIBRESSL_VERSION_NUMBER + class opensslHkdfContext : public HKDFContext + { + Q_OBJECT +@@ -1286,6 +1293,7 @@ public: + return out; + } + }; ++#endif // LIBRESSL_VERSION_NUMBER + + class opensslHMACContext : public MACContext + { +@@ -4993,7 +5001,11 @@ public: + case TLS::TLS_v1: + ctx = SSL_CTX_new(TLS_client_method()); + SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION); ++#ifdef TLS1_3_VERSION + SSL_CTX_set_max_proto_version(ctx, TLS1_3_VERSION); ++#else ++ SSL_CTX_set_max_proto_version(ctx, TLS1_2_VERSION); ++#endif + break; + case TLS::DTLS_v1: + default: +@@ -5014,7 +5026,11 @@ public: + QStringList cipherList; + for (int i = 0; i < sk_SSL_CIPHER_num(sk); ++i) { + const SSL_CIPHER *thisCipher = sk_SSL_CIPHER_value(sk, i); ++#ifndef LIBRESSL_VERSION_NUMBER + cipherList += QString::fromLatin1(SSL_CIPHER_standard_name(thisCipher)); ++#else ++ cipherList += QString::fromLatin1(SSL_CIPHER_get_name(thisCipher)); ++#endif + } + sk_SSL_CIPHER_free(sk); + +@@ -5386,8 +5402,11 @@ public: + qDebug("unexpected version response"); + sessInfo.version = TLS::TLS_v1; + } +- ++#ifndef LIBRESSL_VERSION_NUMBER + sessInfo.cipherSuite = QString::fromLatin1(SSL_CIPHER_standard_name(SSL_get_current_cipher(ssl))); ++#else ++ sessInfo.cipherSuite = QString::fromLatin1(SSL_CIPHER_get_name(SSL_get_current_cipher(ssl))); ++#endif + + sessInfo.cipherMaxBits = SSL_get_cipher_bits(ssl, &(sessInfo.cipherBits)); + +@@ -6687,7 +6706,9 @@ public: + #endif + list += QStringLiteral("pbkdf1(sha1)"); + list += QStringLiteral("pbkdf2(sha1)"); ++#ifndef LIBRESSL_VERSION_NUMBER + list += QStringLiteral("hkdf(sha256)"); ++#endif // LIBRESSL_VERSION_NUMBER + list += QStringLiteral("pkey"); + list += QStringLiteral("dlgroup"); + list += QStringLiteral("rsa"); +@@ -6756,8 +6777,10 @@ public: + #endif + else if (type == QLatin1String("pbkdf2(sha1)")) + return new opensslPbkdf2Context(this, type); ++#ifndef LIBRESSL_VERSION_NUMBER + else if (type == QLatin1String("hkdf(sha256)")) + return new opensslHkdfContext(this, type); ++#endif // LIBRESSL_VERSION_NUMBER + else if (type == QLatin1String("hmac(md5)")) + return new opensslHMACContext(EVP_md5(), this, type); + else if (type == QLatin1String("hmac(sha1)")) +-- +2.35.1 diff --git a/app-crypt/qca/metadata.xml b/app-crypt/qca/metadata.xml index dff1320..c8d4880 100644 --- a/app-crypt/qca/metadata.xml +++ b/app-crypt/qca/metadata.xml @@ -1,26 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="project"> - <email>crypto@gentoo.org</email> - <name>Crypto</name> -</maintainer> -<maintainer type="project"> - <email>qt@gentoo.org</email> - <name>Gentoo Qt Project</name> -</maintainer> -<maintainer type="project"> - <email>kde@gentoo.org</email> - <name>Gentoo KDE Project</name> -</maintainer> -<use> - <flag name="botan">Enable botan plugin</flag> - <flag name="gcrypt">Enable gcrypt plugin</flag> - <flag name="gpg">Enable GnuPG plugin</flag> - <flag name="logger">Enable logger plugin</flag> - <flag name="nss">Enable NSS plugin</flag> - <flag name="pkcs11">Enable PKCS#11 plugin</flag> - <flag name="sasl">Enable SASL plugin</flag> - <flag name="softstore">Enable softstore plugin</flag> -</use> + <maintainer type="project"> + <email>qt@gentoo.org</email> + <name>Gentoo Qt Project</name> + </maintainer> + <maintainer type="project"> + <email>kde@gentoo.org</email> + <name>Gentoo KDE Project</name> + </maintainer> + <upstream> + <bugs-to>https://bugs.kde.org/</bugs-to> + </upstream> + <use> + <flag name="botan">Enable botan plugin</flag> + <flag name="gcrypt">Enable gcrypt plugin</flag> + <flag name="gpg">Enable GnuPG plugin</flag> + <flag name="logger">Enable logger plugin</flag> + <flag name="nss">Enable NSS plugin</flag> + <flag name="pkcs11">Enable PKCS#11 plugin</flag> + <flag name="sasl">Enable SASL plugin</flag> + <flag name="softstore">Enable softstore plugin</flag> + </use> </pkgmetadata> diff --git a/app-crypt/qca/qca-2.3.4.ebuild b/app-crypt/qca/qca-2.3.4.ebuild new file mode 100644 index 0000000..32e9394 --- /dev/null +++ b/app-crypt/qca/qca-2.3.4.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake kde.org qmake-utils + +DESCRIPTION="Qt Cryptographic Architecture (QCA)" +HOMEPAGE="https://userbase.kde.org/QCA" +SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz" + +LICENSE="LGPL-2.1" +SLOT="2" +KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris" +IUSE="botan debug doc examples gcrypt gpg logger nss pkcs11 sasl softstore +ssl test" + +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-qt/qtcore-5.14:5 + botan? ( dev-libs/botan:= ) + gcrypt? ( dev-libs/libgcrypt:= ) + gpg? ( app-crypt/gnupg ) + nss? ( dev-libs/nss ) + pkcs11? ( + >=dev-libs/openssl-1.1 + dev-libs/pkcs11-helper + ) + sasl? ( dev-libs/cyrus-sasl:2 ) + ssl? ( >=dev-libs/openssl-1.1:= ) +" +DEPEND="${RDEPEND} + test? ( + dev-qt/qtnetwork:5 + dev-qt/qttest:5 + ) +" +BDEPEND="doc? ( app-doc/doxygen )" + +PATCHES=( + "${FILESDIR}/${PN}-disable-pgp-test.patch" + "${FILESDIR}/${P}-libressl.patch" +) + +qca_plugin_use() { + echo -DWITH_${2:-$1}_PLUGIN=$(usex "$1") +} + +src_configure() { + local mycmakeargs=( + -DQCA_FEATURE_INSTALL_DIR="${EPREFIX}$(qt5_get_mkspecsdir)/features" + -DQCA_PLUGINS_INSTALL_DIR="${EPREFIX}$(qt5_get_plugindir)" + $(qca_plugin_use botan) + $(qca_plugin_use gcrypt) + $(qca_plugin_use gpg gnupg) + $(qca_plugin_use logger) + $(qca_plugin_use nss) + $(qca_plugin_use pkcs11) + $(qca_plugin_use sasl cyrus-sasl) + $(qca_plugin_use softstore) + $(qca_plugin_use ssl ossl) + -DBUILD_TESTS=$(usex test) + ) + cmake_src_configure +} + +src_test() { + local -x QCA_PLUGIN_PATH="${BUILD_DIR}/lib/qca" + cmake_src_test +} + +src_install() { + cmake_src_install + + if use doc; then + pushd "${BUILD_DIR}" >/dev/null || die + doxygen Doxyfile || die + dodoc -r apidocs/html + popd >/dev/null || die + fi + + if use examples; then + dodoc -r "${S}"/examples + fi +} |