01c96f2
# Disable failing tests on Fedora 26 (latest tests require a recent version of
01c96f2
# cffi)
01c96f2
%if 0%{?fedora} >= 27
01c96f2
%global _with_tests 1
01c96f2
%endif
01c96f2
Mohamed El Morabity 3f21065
%global srcname pycryptodomex
Mohamed El Morabity 3f21065
%global common_summary A self-contained cryptographic library for Python
Mohamed El Morabity 3f21065
%global common_description PyCryptodome is a self-contained Python package of low-level\
Mohamed El Morabity 3f21065
cryptographic primitives. It's a fork of PyCrypto. It brings several\
Mohamed El Morabity 3f21065
enhancements with respect to the last official version of PyCrypto\
Mohamed El Morabity 3f21065
(2.6.1), for instance:\
Mohamed El Morabity 3f21065
\
Mohamed El Morabity 3f21065
  * Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)\
Mohamed El Morabity 3f21065
  * Accelerated AES on Intel platforms via AES-NI\
Mohamed El Morabity 3f21065
  * Elliptic curves cryptography (NIST P-256 curve only)\
Mohamed El Morabity 3f21065
  * Better and more compact API (nonce and iv attributes for ciphers,\
Mohamed El Morabity 3f21065
    automatic generation of random nonces and IVs, simplified CTR\
Mohamed El Morabity 3f21065
    cipher mode, and more)\
Mohamed El Morabity 3f21065
  * SHA-3 (including SHAKE XOFs) and BLAKE2 hash algorithms\
Mohamed El Morabity 3f21065
  * Salsa20 and ChaCha20 stream ciphers\
Mohamed El Morabity 3f21065
  * scrypt and HKDF\
Mohamed El Morabity 3f21065
  * Deterministic (EC)DSA\
Mohamed El Morabity 3f21065
  * Password-protected PKCS#8 key containers\
Mohamed El Morabity 3f21065
  * Shamir’s Secret Sharing scheme\
Mohamed El Morabity 3f21065
  * Random numbers get sourced directly from the OS (and not from a\
Mohamed El Morabity 3f21065
    CSPRNG in userspace)\
Mohamed El Morabity 3f21065
  * Cleaner RSA and DSA key generation (largely based on FIPS 186-4)\
Mohamed El Morabity 3f21065
  * Major clean ups and simplification of the code base\
Mohamed El Morabity 3f21065
\
Mohamed El Morabity 3f21065
PyCryptodome is not a wrapper to a separate C library like OpenSSL. To\
Mohamed El Morabity 3f21065
the largest possible extent, algorithms are implemented in pure\
Mohamed El Morabity 3f21065
Python. Only the pieces that are extremely critical to performance\
Mohamed El Morabity 3f21065
(e.g. block ciphers) are implemented as C extensions.\
Mohamed El Morabity 3f21065
\
Mohamed El Morabity 3f21065
Note: all modules are installed under the Cryptodome package to avoid\
Mohamed El Morabity 3f21065
conflicts with the PyCrypto library.
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Name:           python-%{srcname}
Mohamed El Morabity ffddec7
Version:        3.6.0
01c96f2
Release:        2%{?dist}
Mohamed El Morabity 3f21065
Summary:        %{common_summary}
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
# PyCrypto-based code is public domain, futher PyCryptodome
Mohamed El Morabity 3f21065
# contributions are BSD
Mohamed El Morabity 3f21065
License:        BSD and Public Domain
Mohamed El Morabity 3f21065
URL:            http://www.pycryptodome.org/
Mohamed El Morabity 3f21065
Source0:        https://github.com/Legrandin/pycryptodome/archive/v%{version}x/%{srcname}-%{version}.tar.gz
Mohamed El Morabity 3f21065
# Use external libtomcrypt library
Mohamed El Morabity 3f21065
Patch0:         %{name}-3.4.12-use_external_libtomcrypt.patch
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
BuildRequires:  gcc
Mohamed El Morabity 3f21065
BuildRequires:  libtomcrypt-devel
Mohamed El Morabity 3f21065
BuildRequires:  python2-devel
Mohamed El Morabity 3f21065
BuildRequires:  python3-devel
Mohamed El Morabity 3f21065
# Needed for documentation
Mohamed El Morabity 3f21065
BuildRequires:  python2-sphinx
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%description
Mohamed El Morabity 3f21065
%{common_description}
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%package -n python2-%{srcname}
Mohamed El Morabity 3f21065
Summary:        %{common_summary}
Mohamed El Morabity 3f21065
# GMP library is dl-opened
Mohamed El Morabity 3f21065
Requires:       gmp%{?_isa}
Mohamed El Morabity 3f21065
%{?python_provide:%python_provide python2-%{srcname}}
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%description -n python2-%{srcname}
Mohamed El Morabity 3f21065
%{common_description}
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%package -n python3-%{srcname}
Mohamed El Morabity 3f21065
Summary:        %{common_summary}
Mohamed El Morabity 3f21065
# GMP library is dl-opened
Mohamed El Morabity 3f21065
Requires:       gmp%{?_isa}
Mohamed El Morabity 3f21065
%{?python_provide:%python_provide python3-%{srcname}}
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%description -n python3-%{srcname}
Mohamed El Morabity 3f21065
%{common_description}
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%prep
Mohamed El Morabity 3f21065
%autosetup -n pycryptodome-%{version}x -p0
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
# Drop bundled libraries
Mohamed El Morabity 3f21065
rm -r src/libtom/
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
# Remove shebang
Mohamed El Morabity 3f21065
sed '1{\@^#! /usr/bin/env python@d}' lib/Crypto/SelfTest/__main__.py >lib/Crypto/SelfTest/__main__.py.new && \
Mohamed El Morabity 3f21065
touch -r lib/Crypto/SelfTest/__main__.py lib/Crypto/SelfTest/__main__.py.new && \
Mohamed El Morabity 3f21065
mv lib/Crypto/SelfTest/__main__.py.new lib/Crypto/SelfTest/__main__.py
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%build
Mohamed El Morabity 3f21065
%py2_build
Mohamed El Morabity 3f21065
%py3_build
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
# Build documentation
Mohamed El Morabity 3f21065
pushd Doc/
Mohamed El Morabity 3f21065
%make_build man
Mohamed El Morabity 3f21065
popd
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%install
Mohamed El Morabity 3f21065
%py2_install
Mohamed El Morabity 3f21065
%py3_install
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
# Install man pages
Mohamed El Morabity 3f21065
install -Dpm 0644 Doc/_build/man/pycryptodome.1 $RPM_BUILD_ROOT%{_mandir}/man1/pycryptodome.1
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
# Fix permissions
Mohamed El Morabity 3f21065
chmod 0755 $RPM_BUILD_ROOT%{python2_sitearch}/Cryptodome/SelfTest/PublicKey/test_vectors/ECC/gen_ecc_p256.sh
Mohamed El Morabity 3f21065
chmod 0755 $RPM_BUILD_ROOT%{python3_sitearch}/Cryptodome/SelfTest/PublicKey/test_vectors/ECC/gen_ecc_p256.sh
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%check
01c96f2
%if 0%{?_with_tests}
Mohamed El Morabity 3f21065
%{__python2} setup.py test
Mohamed El Morabity 3f21065
%{__python3} setup.py test
01c96f2
%endif
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%files -n python2-%{srcname}
Mohamed El Morabity 3f21065
%doc AUTHORS.rst Changelog.rst README.rst
Mohamed El Morabity 3f21065
%license LICENSE.rst
Mohamed El Morabity 3f21065
%{python2_sitearch}/*
Mohamed El Morabity 3f21065
%{_mandir}/man1/pycryptodome.1.*
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%files -n python3-%{srcname}
Mohamed El Morabity 3f21065
%doc AUTHORS.rst Changelog.rst README.rst
Mohamed El Morabity 3f21065
%license LICENSE.rst
Mohamed El Morabity 3f21065
%{python3_sitearch}/*
Mohamed El Morabity 3f21065
%{_mandir}/man1/pycryptodome.1.*
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
%changelog
01c96f2
* Tue Apr 10 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.6.0-2
01c96f2
- Disable tests on Fedora 26
01c96f2
Mohamed El Morabity ffddec7
* Tue Apr 10 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.6.0-1
Mohamed El Morabity ffddec7
- Update to 3.6.0
Mohamed El Morabity ffddec7
f7e3e4c
* Tue Mar 20 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.5.1-1
f7e3e4c
- Update to 3.5.1
f7e3e4c
c9476f1
* Thu Mar 08 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.5.0-1
c9476f1
- Update to 3.5.0
c9476f1
Mohamed El Morabity f1f95b5
* Wed Mar 07 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.4.12-3
Mohamed El Morabity f1f95b5
- Fix Provides in python3 subpackage
Mohamed El Morabity f1f95b5
Mohamed El Morabity 3f21065
* Tue Mar 06 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.4.12-2
Mohamed El Morabity 3f21065
- Fix License tag
Mohamed El Morabity 3f21065
Mohamed El Morabity 3f21065
* Tue Mar 06 2018 Mohamed El Morabity <melmorabity@fedoraproject.org> - 3.4.12-1
Mohamed El Morabity 3f21065
- Initial RPM release