[arch-commits] Commit in perl-crypt-openssl-rsa/repos (3 files)
Felix Yan
felixonmars at archlinux.org
Tue May 19 08:22:30 UTC 2020
Date: Tuesday, May 19, 2020 @ 08:22:30
Author: felixonmars
Revision: 386266
archrelease: copy trunk to staging-x86_64
Added:
perl-crypt-openssl-rsa/repos/staging-x86_64/
perl-crypt-openssl-rsa/repos/staging-x86_64/0001-Adapt-to-OpenSSL-1.1.0.patch
(from rev 386261, perl-crypt-openssl-rsa/trunk/0001-Adapt-to-OpenSSL-1.1.0.patch)
perl-crypt-openssl-rsa/repos/staging-x86_64/PKGBUILD
(from rev 386261, perl-crypt-openssl-rsa/trunk/PKGBUILD)
-----------------------------------+
0001-Adapt-to-OpenSSL-1.1.0.patch | 185 ++++++++++++++++++++++++++++++++++++
PKGBUILD | 46 ++++++++
2 files changed, 231 insertions(+)
Copied: perl-crypt-openssl-rsa/repos/staging-x86_64/0001-Adapt-to-OpenSSL-1.1.0.patch (from rev 386261, perl-crypt-openssl-rsa/trunk/0001-Adapt-to-OpenSSL-1.1.0.patch)
===================================================================
--- staging-x86_64/0001-Adapt-to-OpenSSL-1.1.0.patch (rev 0)
+++ staging-x86_64/0001-Adapt-to-OpenSSL-1.1.0.patch 2020-05-19 08:22:30 UTC (rev 386266)
@@ -0,0 +1,185 @@
+From b3747e625780be90dcff11c2d9e91048016bb4d0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
+Date: Thu, 13 Oct 2016 18:14:17 +0200
+Subject: [PATCH] Adapt 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 structure internals and provided methods for getting
+and settting the internal values. This patch modifes the code so that
+it can be built with OpenSSL 1.1.0 as well as with the older one.
+
+CPAN RT#117481
+
+Signed-off-by: Petr Písař <ppisar at redhat.com>
+---
+ RSA.xs | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
+ 1 file changed, 73 insertions(+), 16 deletions(-)
+
+diff --git a/RSA.xs b/RSA.xs
+index de512e7..9bf6f01 100644
+--- a/RSA.xs
++++ b/RSA.xs
+@@ -49,7 +49,13 @@ void croakSsl(char* p_file, int p_line)
+
+ char _is_private(rsaData* p_rsa)
+ {
+- return(p_rsa->rsa->d != NULL);
++ const BIGNUM *d;
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ d = p_rsa->rsa->d;
++#else
++ RSA_get0_key(p_rsa->rsa, NULL, NULL, &d);
++#endif
++ return(d != NULL);
+ }
+
+ SV* make_rsa_obj(SV* p_proto, RSA* p_rsa)
+@@ -136,7 +142,7 @@ unsigned char* get_message_digest(SV* text_SV, int hash_method)
+ }
+ }
+
+-SV* bn2sv(BIGNUM* p_bn)
++SV* bn2sv(const BIGNUM* p_bn)
+ {
+ return p_bn != NULL
+ ? sv_2mortal(newSViv((IV) BN_dup(p_bn)))
+@@ -317,6 +323,9 @@ _new_key_from_parameters(proto, n, e, d, p, q)
+ BN_CTX* ctx;
+ BIGNUM* p_minus_1 = NULL;
+ BIGNUM* q_minus_1 = NULL;
++ BIGNUM* dmp1 = NULL;
++ BIGNUM* dmq1 = NULL;
++ BIGNUM* iqmp = NULL;
+ int error;
+ CODE:
+ {
+@@ -325,8 +334,10 @@ _new_key_from_parameters(proto, n, e, d, p, q)
+ croak("At least a modulous and public key must be provided");
+ }
+ CHECK_OPEN_SSL(rsa = RSA_new());
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ rsa->n = n;
+ rsa->e = e;
++#endif
+ if (p || q)
+ {
+ error = 0;
+@@ -341,8 +352,12 @@ _new_key_from_parameters(proto, n, e, d, p, q)
+ q = BN_new();
+ THROW(BN_div(q, NULL, n, p, ctx));
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ rsa->p = p;
+ rsa->q = q;
++#else
++ THROW(RSA_set0_factors(rsa, p, q));
++#endif
+ THROW(p_minus_1 = BN_new());
+ THROW(BN_sub(p_minus_1, p, BN_value_one()));
+ THROW(q_minus_1 = BN_new());
+@@ -353,17 +368,32 @@ _new_key_from_parameters(proto, n, e, d, p, q)
+ THROW(BN_mul(d, p_minus_1, q_minus_1, ctx));
+ THROW(BN_mod_inverse(d, e, d, ctx));
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ rsa->d = d;
+- THROW(rsa->dmp1 = BN_new());
+- THROW(BN_mod(rsa->dmp1, d, p_minus_1, ctx));
+- THROW(rsa->dmq1 = BN_new());
+- THROW(BN_mod(rsa->dmq1, d, q_minus_1, ctx));
+- THROW(rsa->iqmp = BN_new());
+- THROW(BN_mod_inverse(rsa->iqmp, q, p, ctx));
++#else
++ THROW(RSA_set0_key(rsa, n, e, d));
++#endif
++ THROW(dmp1 = BN_new());
++ THROW(BN_mod(dmp1, d, p_minus_1, ctx));
++ THROW(dmq1 = BN_new());
++ THROW(BN_mod(dmq1, d, q_minus_1, ctx));
++ THROW(iqmp = BN_new());
++ THROW(BN_mod_inverse(iqmp, q, p, ctx));
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ rsa->dmp1 = dmp1;
++ rsa->dmq1 = dmq1;
++ rsa->iqmp = iqmp;
++#else
++ THROW(RSA_set0_crt_params(rsa, dmp1, dmq1, iqmp));
++#endif
++ dmp1 = dmq1 = iqmp = NULL;
+ THROW(RSA_check_key(rsa) == 1);
+ err:
+ if (p_minus_1) BN_clear_free(p_minus_1);
+ if (q_minus_1) BN_clear_free(q_minus_1);
++ if (dmp1) BN_clear_free(dmp1);
++ if (dmq1) BN_clear_free(dmq1);
++ if (iqmp) BN_clear_free(iqmp);
+ if (ctx) BN_CTX_free(ctx);
+ if (error)
+ {
+@@ -373,7 +403,11 @@ _new_key_from_parameters(proto, n, e, d, p, q)
+ }
+ else
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ rsa->d = d;
++#else
++ CHECK_OPEN_SSL(RSA_set0_key(rsa, n, e, d));
++#endif
+ }
+ RETVAL = make_rsa_obj(proto, rsa);
+ }
+@@ -383,18 +417,41 @@ _new_key_from_parameters(proto, n, e, d, p, q)
+ void
+ _get_key_parameters(p_rsa)
+ rsaData* p_rsa;
++PREINIT:
++ const BIGNUM* n;
++ const BIGNUM* e;
++ const BIGNUM* d;
++ const BIGNUM* p;
++ const BIGNUM* q;
++ const BIGNUM* dmp1;
++ const BIGNUM* dmq1;
++ const BIGNUM* iqmp;
+ PPCODE:
+ {
+ RSA* rsa;
+ rsa = p_rsa->rsa;
+- XPUSHs(bn2sv(rsa->n));
+- XPUSHs(bn2sv(rsa->e));
+- XPUSHs(bn2sv(rsa->d));
+- XPUSHs(bn2sv(rsa->p));
+- XPUSHs(bn2sv(rsa->q));
+- XPUSHs(bn2sv(rsa->dmp1));
+- XPUSHs(bn2sv(rsa->dmq1));
+- XPUSHs(bn2sv(rsa->iqmp));
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
++ n = rsa->n;
++ e = rsa->e;
++ d = rsa->d;
++ p = rsa->p;
++ q = rsa->q;
++ dmp1 = rsa->dmp1;
++ dmq1 = rsa->dmq1;
++ iqmp = rsa->iqmp;
++#else
++ RSA_get0_key(rsa, &n, &e, &d);
++ RSA_get0_factors(rsa, &p, &q);
++ RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp);
++#endif
++ XPUSHs(bn2sv(n));
++ XPUSHs(bn2sv(e));
++ XPUSHs(bn2sv(d));
++ XPUSHs(bn2sv(p));
++ XPUSHs(bn2sv(q));
++ XPUSHs(bn2sv(dmp1));
++ XPUSHs(bn2sv(dmq1));
++ XPUSHs(bn2sv(iqmp));
+ }
+
+ SV*
+--
+2.7.4
+
Copied: perl-crypt-openssl-rsa/repos/staging-x86_64/PKGBUILD (from rev 386261, perl-crypt-openssl-rsa/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD (rev 0)
+++ staging-x86_64/PKGBUILD 2020-05-19 08:22:30 UTC (rev 386266)
@@ -0,0 +1,46 @@
+# Maintainer: Florian Pritz <bluewind at xinu.at>
+# Contributor: Sergej Pupykin <pupykin.s+arch at gmail.com>
+
+pkgname=perl-crypt-openssl-rsa
+pkgver=0.31
+pkgrel=4
+pkgdesc='RSA encoding and decoding, using the openSSL libraries'
+arch=(x86_64)
+license=(PerlArtistic GPL)
+options=(!emptydirs)
+depends=('perl>=5.6' perl-crypt-openssl-random)
+makedepends=('perl-crypt-openssl-guess>=0.11')
+url='https://metacpan.org/release/Crypt-OpenSSL-RSA'
+source=("https://search.cpan.org/CPAN/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-$pkgver.tar.gz")
+md5sums=(d33681e19d2094df7c26bc7a4509265e)
+sha512sums=(e00d25fc1d39253ea2d7d6ee478403d2b38bd9125602baf5815672fb9e81674ff58bbb47539e425526db1988ebc1a40837372cf42ffd466cb532efa2e450ccab)
+_ddir="Crypt-OpenSSL-RSA-$pkgver"
+
+build()
+(
+ cd "$srcdir/$_ddir"
+ export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps
+ unset PERL5LIB PERL_MM_OPT
+ /usr/bin/perl Makefile.PL
+ make
+)
+
+check()
+(
+ cd "$srcdir/$_ddir"
+ export PERL_MM_USE_DEFAULT=1
+ unset PERL5LIB
+ make test
+)
+
+package()
+(
+ cd "$srcdir/$_ddir"
+ make install INSTALLDIRS=vendor DESTDIR="$pkgdir"
+)
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
More information about the arch-commits
mailing list