diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-01-12 16:58:08 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-01-12 16:58:08 +0000 |
commit | c8a77dfe4d3d307c1d5dd2650b7297447d8b609d (patch) | |
tree | 9ea78393bc3ecd6ab4de449383d4e97e5f3648ae /dev-perl/Crypt-OpenSSL-ECDSA | |
parent | 2891d29af8907ce881662f4a02844926d7a293c7 (diff) |
gentoo resync : 12.01.2019
Diffstat (limited to 'dev-perl/Crypt-OpenSSL-ECDSA')
3 files changed, 221 insertions, 0 deletions
diff --git a/dev-perl/Crypt-OpenSSL-ECDSA/Crypt-OpenSSL-ECDSA-0.80.0-r1.ebuild b/dev-perl/Crypt-OpenSSL-ECDSA/Crypt-OpenSSL-ECDSA-0.80.0-r1.ebuild new file mode 100644 index 000000000000..fbb5956d64cb --- /dev/null +++ b/dev-perl/Crypt-OpenSSL-ECDSA/Crypt-OpenSSL-ECDSA-0.80.0-r1.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +DIST_AUTHOR=MIKEM +DIST_VERSION=0.08 +inherit perl-module + +DESCRIPTION="OpenSSL ECDSA (Elliptic Curve Digital Signature Algorithm) Perl extension" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="libressl" + +RDEPEND=" + >=dev-perl/Crypt-OpenSSL-EC-0.50.0 + !libressl? ( dev-libs/openssl:0 ) + libressl? ( dev-libs/libressl ) +" +DEPEND="${RDEPEND} + virtual/perl-ExtUtils-MakeMaker +" + +PATCHES=( + "${FILESDIR}/${P}-0001-Port-to-OpenSSL-1.1.0.patch" +) diff --git a/dev-perl/Crypt-OpenSSL-ECDSA/Manifest b/dev-perl/Crypt-OpenSSL-ECDSA/Manifest index bc656c429dbd..3cdffadf1825 100644 --- a/dev-perl/Crypt-OpenSSL-ECDSA/Manifest +++ b/dev-perl/Crypt-OpenSSL-ECDSA/Manifest @@ -1,3 +1,5 @@ +AUX Crypt-OpenSSL-ECDSA-0.80.0-0001-Port-to-OpenSSL-1.1.0.patch 5190 BLAKE2B 6c33efc7a74dd044e2edcadaae864d0f9f573740de054a1e8e9a1a589b5d6a460b281bff6bb544c4d32a0de7cb5f02ee73a1532d6be58b413506be28f94f1263 SHA512 243c7c48cf9e734ef4f83da9d7bdf6bdcdc7010aca337a3a8c2f3870cc0168fce860d924d3b722760caba8a5204ec0b292efc6b0393bd659663118cf9bc636db DIST Crypt-OpenSSL-ECDSA-0.08.tar.gz 52955 BLAKE2B 014d0d82dde21d8a797f0c498f8534b5c4034c5a5414c358ce5a9da1598fddd4cf03a4187e0acd0272e58d0e21002f426c0e8f41d4f485b7dae168c2facbc24e SHA512 7bccf904819b323ad958dcb59ef3981e3f22813057727cb7d19d4eeab69f57ed7b63e4e586f7494c316e7568d606087099738918eb440947d326ae5a703e9b19 +EBUILD Crypt-OpenSSL-ECDSA-0.80.0-r1.ebuild 543 BLAKE2B 18343e62930ccfb6659f995b33ac68a2e762b83b747080e1c83a46ed95433c8dd96229f45e83f9132f8b1f337871d2edda33fc39e6614d5f205841e7eac42316 SHA512 3df21c5f2bd419562ea530b2f64e491afa3cabdd8ccfd9903e841422f39e85f20faee4edc48e3ee96f8e6f3ec8983c8b290bcd04b8d786bdd9d836614c756673 EBUILD Crypt-OpenSSL-ECDSA-0.80.0.ebuild 480 BLAKE2B 14bf19458cffb6bf6993007b74123da4e1e06c18e5be483c9a79d303de8544e81116426a29a1cfbafac0d1b66525a2613c1a804001733a2139ba3dfa0be4f899 SHA512 8b89bacd4ec0c6d177ec34fd862a73c31c784e8c50dcde632ce114ca24067928c33dfe5e4419a1a882dab122eef7779bb8c7fe0edbf56658ca5d5a3bef1bfb52 MISC metadata.xml 411 BLAKE2B 25f4cd25a774a8ca02630c9408e5552ef64c6f20d522d67e5eadf66b633400a01298c149f31243918ce73bea6e7d99c14f22972c2f1c449a2b78ed8148a6a61f SHA512 7dde247b0b93d93f6776cf2570fdd6225d4087183b6c626d950f09648748181dd15d78fc164e8700b245430027bd59a408e6affa7466773b6fd6740c9a1958b8 diff --git a/dev-perl/Crypt-OpenSSL-ECDSA/files/Crypt-OpenSSL-ECDSA-0.80.0-0001-Port-to-OpenSSL-1.1.0.patch b/dev-perl/Crypt-OpenSSL-ECDSA/files/Crypt-OpenSSL-ECDSA-0.80.0-0001-Port-to-OpenSSL-1.1.0.patch new file mode 100644 index 000000000000..071e60caefda --- /dev/null +++ b/dev-perl/Crypt-OpenSSL-ECDSA/files/Crypt-OpenSSL-ECDSA-0.80.0-0001-Port-to-OpenSSL-1.1.0.patch @@ -0,0 +1,193 @@ +From 7a707a2bb0b0c6de1eb98cef74a5d1016f0e8c9a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com> +Date: Tue, 11 Oct 2016 16:15:43 +0200 +Subject: [PATCH] Port to OpenSSL 1.1.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +OpenSSL 1.1.0 hid ECDSA structure internals and provided methods +instead. + +This patch uses the methods and provides their copies in the case of +older OpenSSL. Because the new OpenSSL API, ECDSA_SIG_set0(), cannot +set curve parameters individually and ECDSA_SIG_get0() returns yet +another reference, it's necessary to duplicate the other unchanged +paramater when calling set_r() or set_s(). + +This patch also stops exporting ECDSA_METHOD functions that were +removed from the new OpenSSL. + +CPAN RT#118330 + +Signed-off-by: Petr Písař <ppisar@redhat.com> +--- + ECDSA.xs | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++-------------- + 1 file changed, 61 insertions(+), 17 deletions(-) + +diff --git a/ECDSA.xs b/ECDSA.xs +index 4016368..648303e 100644 +--- a/ECDSA.xs ++++ b/ECDSA.xs +@@ -7,9 +7,34 @@ + + #include <openssl/ecdsa.h> + #include <openssl/err.h> ++#include <openssl/bn.h> + + #include "const-c.inc" + ++ ++#if (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)) || LIBRESSL_VERSION_NUMBER >= 0x2070000fL ++#include <openssl/ec.h> ++#else ++static void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, ++ const BIGNUM **ps) { ++ if (pr != NULL) ++ *pr = sig->r; ++ if (ps != NULL) ++ *ps = sig->s; ++} ++ ++static int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s) ++{ ++ if (r == NULL || s == NULL) ++ return 0; ++ BN_clear_free(sig->r); ++ BN_clear_free(sig->s); ++ sig->r = r; ++ sig->s = s; ++ return 1; ++} ++#endif ++ + MODULE = Crypt::OpenSSL::ECDSA PACKAGE = Crypt::OpenSSL::ECDSA + + PROTOTYPES: ENABLE +@@ -17,7 +42,9 @@ INCLUDE: const-xs.inc + + BOOT: + ERR_load_crypto_strings(); ++#if OPENSSL_VERSION_NUMBER >= 0x10002000L && OPENSSL_VERSION_NUMBER < 0x10100000L + ERR_load_ECDSA_strings(); ++#endif + + #ECDSA_SIG * + #ECDSA_SIG_new() +@@ -61,10 +88,16 @@ ECDSA_do_verify(const unsigned char *dgst, const ECDSA_SIG *sig, EC_KEY* eckey); + OUTPUT: + RETVAL + +-# These ECDSA_METHOD functions only became available in 1.0.2 ++# These ECDSA_METHOD functions only became available in 1.0.2, ++# but some of them removed again in 1.1.0. + + #if OPENSSL_VERSION_NUMBER >= 0x10002000L + ++int ++ECDSA_size(const EC_KEY *eckey) ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ + const ECDSA_METHOD * + ECDSA_OpenSSL() + +@@ -77,9 +110,6 @@ ECDSA_get_default_method() + int + ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth) + +-int +-ECDSA_size(const EC_KEY *eckey) +- + ECDSA_METHOD * + ECDSA_METHOD_new(ECDSA_METHOD *ecdsa_method=0) + +@@ -95,7 +125,7 @@ ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name) + void + ERR_load_ECDSA_strings() + +- ++#endif + #endif + + +@@ -135,11 +165,13 @@ SV * + get_r(ecdsa_sig) + ECDSA_SIG *ecdsa_sig + PREINIT: ++ const BIGNUM *r; + unsigned char *to; + STRLEN len; + CODE: + to = malloc(sizeof(char) * 128); +- len = BN_bn2bin(ecdsa_sig->r, to); ++ ECDSA_SIG_get0(ecdsa_sig, &r, NULL); ++ len = BN_bn2bin(r, to); + RETVAL = newSVpvn((const char*)to, len); + free(to); + OUTPUT: +@@ -149,11 +181,13 @@ SV * + get_s(ecdsa_sig) + ECDSA_SIG *ecdsa_sig + PREINIT: ++ const BIGNUM *s; + unsigned char *to; + STRLEN len; + CODE: + to = malloc(sizeof(char) * 128); +- len = BN_bn2bin(ecdsa_sig->s, to); ++ ECDSA_SIG_get0(ecdsa_sig, NULL, &s); ++ len = BN_bn2bin(s, to); + RETVAL = newSVpvn((const char*)to, len); + free(to); + OUTPUT: +@@ -164,26 +198,36 @@ set_r(ecdsa_sig, r_SV) + ECDSA_SIG *ecdsa_sig + SV * r_SV + PREINIT: +- char *s; ++ char *string; + STRLEN len; ++ BIGNUM *r; ++ BIGNUM *s; + CODE: +- s = SvPV(r_SV, len); +- if (ecdsa_sig->r) +- BN_free(ecdsa_sig->r); +- ecdsa_sig->r = BN_bin2bn((const unsigned char *)s, len, NULL); ++ string = SvPV(r_SV, len); ++ r = BN_bin2bn((const unsigned char *)string, len, NULL); ++ ECDSA_SIG_get0(ecdsa_sig, NULL, (const BIGNUM**)&s); ++ s = BN_dup(s); ++ if (NULL == s) ++ croak("Could not duplicate unchanged ECDSA paramater"); ++ ECDSA_SIG_set0(ecdsa_sig, r, s); + + void + set_s(ecdsa_sig, s_SV) + ECDSA_SIG *ecdsa_sig + SV * s_SV + PREINIT: +- char *s; ++ char *string; + STRLEN len; ++ BIGNUM *r; ++ BIGNUM *s; + CODE: +- s = SvPV(s_SV, len); +- if (ecdsa_sig->s) +- BN_free(ecdsa_sig->s); +- ecdsa_sig->s = BN_bin2bn((const unsigned char *)s, len, NULL); ++ string = SvPV(s_SV, len); ++ s = BN_bin2bn((const unsigned char *)string, len, NULL); ++ ECDSA_SIG_get0(ecdsa_sig, (const BIGNUM**)&r, NULL); ++ r = BN_dup(r); ++ if (NULL == r) ++ croak("Could not duplicate unchanged ECDSA paramater"); ++ ECDSA_SIG_set0(ecdsa_sig, r, s); + + + +-- +2.7.4 + |