* 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
108 lines
3.7 KiB
RPMSpec
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
|