python-pycryptodome/python-pycryptodome.spec
Dirk Mueller e465b68b7d - update to 3.17.0:
* Added support for the Counter Mode KDF defined in SP 800-108
    Rev 1.
  * Reduce the minimum tag length for the EAX cipher to 2 bytes.
  * An RSA object has 4 new properties for the CRT coefficients:
    ``dp``, ``dq``, ``invq`` and ``invq`` (``invp`` is the same
    value  as the existing ``u``).
  * GH#526: improved typing for ``RSA.construct``.
  * GH#534: reduced memory consumption when using a large number
    of cipher objects.
  * GH#598: fixed missing error handling for
    ``Util.number.inverse``.
  * GH#629: improved typing for ``AES.new`` and the various
    mode-specific types it returns. Thanks to Greg Werbin.
  * GH#653: added workaround for an alleged GCC compiler bug
    that affected Ed25519 code compiled for AVX2.
  * GH#658: attribute ``curve`` of an ECC key was not always
    the preferred curve name, as it used to be in v3.15.0
    (independently of the curve name specified when generating
    the key).
  * GH#637: fixed typing for legacy modules ``PKCS1_v1_5`` and
    ``PKCS1_PSS``, as their ``verify()`` returned a boolean.
  * GH#664: with OCB mode, nonces of maximum length (15 bytes)
    were actually used as 14 bytes nonces.
    After this fix, data that was encrypted in past using the
    (default) nonce length of 15 bytes can still be decrypted
    by reducing the nonce to its first 14 bytes.
  * GH#705: improved typing for ``nonce``, ``iv``, and ``IV``
    parameters of cipher objects.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycryptodome?expand=0&rev=52
2023-03-27 09:19:27 +00:00

108 lines
3.7 KiB
RPMSpec

#
# spec file for package python-pycryptodome
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
Name: python-pycryptodome
Version: 3.17.0
Release: 0
Summary: Cryptographic library for Python
License: BSD-2-Clause
Group: Development/Languages/Python
URL: https://www.pycryptodome.org
Source: https://github.com/Legrandin/pycryptodome/archive/v%{version}.tar.gz#/pycryptodome-%{version}.tar.gz
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
%if !0%{?_no_weakdeps}
# PyCryptodome uses gmp via cffi as runtime optimization
# would be better, if libgmp* would provide gmp
Suggests: libgmp10
Suggests: python-cffi
%endif
Provides: python-pycrypto = %{version}
Obsoletes: python-pycrypto < %{version}
%ifpython2
Provides: %{oldpython}-pycrypto = %{version}
Obsoletes: %{oldpython}-pycrypto < %{version}
%endif
%python_subpackages
%description
PyCryptodome is a self-contained Python package of low-level
cryptographic primitives.
PyCryptodome is a fork of PyCrypto, residing in the `Crypto`
namespace for better drop-in compatibility, while it brings several
enhancements with respect to the last official version of PyCrypto
(2.6.1), for instance:
* Authenticated encryption modes (GCM, CCM, EAX, SIV, OCB)
* Accelerated AES on Intel platforms via AES-NI
* First class support for PyPy
* Elliptic curves cryptography (NIST P-256 curve only)
* Better and more compact API (`nonce` and `iv` attributes for
ciphers, automatic generation of random nonces and IVs, simplified
CTR cipher mode, and more)
* SHA-3 (including SHAKE XOFs), SHA-512/t and BLAKE2 hash algorithms
* Salsa20 and ChaCha20 stream ciphers
* Poly1305 MAC
* ChaCha20-Poly1305 authenticated cipher
* scrypt and HKDF
* Deterministic (EC)DSA
* Password-protected PKCS#8 key containers
* Shamir's Secret Sharing scheme
* Random numbers get sourced directly from the OS (and not from a
CSPRNG in userspace)
* Simplified install process, including better support for Windows
* Cleaner RSA and DSA key generation (largely based on FIPS 186-4)
* Major clean ups and simplification of the code base
PyCryptodome is not a wrapper to a separate C library like *OpenSSL*.
To the largest possible extent, algorithms are implemented in pure
Python. Only the pieces that are extremely critical to performance
(e.g. block ciphers) are implemented as C extensions.
%prep
%setup -q -n pycryptodome-%{version}
%build
export LC_ALL=en_US.UTF-8
export CFLAGS="%{optflags}"
%python_build
%install
export LC_ALL=en_US.UTF-8
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
export LC_ALL=en_US.UTF-8
%{python_expand pushd %{buildroot}%{$python_sitearch}
PYTHONPATH=%{buildroot}%{$python_sitearch} $python -m Crypto.SelfTest
popd}
%files %{python_files}
%license LICENSE.rst
%doc AUTHORS.rst Changelog.rst README.rst
%{python_sitearch}/Crypto/
%{python_sitearch}/pycryptodome-%{version}-py*.egg-info
%changelog