summaryrefslogtreecommitdiff
path: root/python-pprp.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-pprp.spec')
-rw-r--r--python-pprp.spec276
1 files changed, 276 insertions, 0 deletions
diff --git a/python-pprp.spec b/python-pprp.spec
new file mode 100644
index 0000000..18a0a5d
--- /dev/null
+++ b/python-pprp.spec
@@ -0,0 +1,276 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pprp
+Version: 0.2.7
+Release: 1
+Summary: A pure-Python Rijndael (AES) and PBKDF2 library. Python 2.7 and Python3 compatible.
+License: GPL 2
+URL: https://github.com/dsoprea/RijndaelPbkdf
+Source0: https://mirrors.aliyun.com/pypi/web/packages/7d/8a/6bcc32e0f6cf0a9e0132230cb41652bd3df3dbdb0e673e31b720b6111deb/pprp-0.2.7.tar.gz
+BuildArch: noarch
+
+
+%description
+[![Build Status](https://travis-ci.org/dsoprea/RijndaelPbkdf.svg?branch=master)](https://travis-ci.org/dsoprea/RijndaelPbkdf)
+
+## Overview
+
+This package was a remedy to there being no PyPI-published, pure-Python
+Rijndael (AES) implementations, and that nothing available, in general, was
+compatible with both Python2 *and* Python3. The same is true of the PBKDF2
+key-expansion algorithm.
+
+The encryptor takes a source generator (which yields individual blocks). There
+are source-generators provided for both data from a variable and data from a
+file. It is trivial if you'd like to write your own. The encryptor and
+decryptor functions are written as generators. Decrypted data has PKCS7
+padding. A utility function is provided to trim this (*trim_pkcs7_padding*).
+
+The implementation includes Python2 and Python3 implementations of both
+Rijndael and PBKDF2, and chooses the version when loaded.
+
+The default block-size is 128-bits in order to be compatible with AES.
+
+This project is also referred to as *pprp*, which stands for "Pure Python
+Rijndael and PBKDF2".
+
+
+## Installation
+
+Install via *pip*:
+
+```
+$ sudo pip install pprp
+```
+
+
+## Example
+
+Encrypt and decrypt the data, and compare the results. This was copied directly
+from the unit-test.
+
+```python
+passphrase = 'password'.encode('ASCII')
+salt = 'salt'.encode('ASCII')
+
+key_size = 32
+data = "this is a test" * 100
+data_bytes = data.encode('ASCII')
+
+key = pprp.pbkdf2(passphrase, salt, key_size)
+
+# Create a source from available data.
+sg = pprp.data_source_gen(data_bytes)
+
+# Feed the source into the encryptor.
+eg = pprp.rijndael_encrypt_gen(key, sg)
+
+# Feed the encryptor into the decryptor.
+dg = pprp.rijndael_decrypt_gen(key, eg)
+
+# Sink the output into an IO-stream.
+decrypted = pprp.decrypt_sink(dg)
+
+# self.assertEquals(data_bytes, decrypted)
+```
+
+
+## Notes
+
+The generators can take a block-size in the event that you don't want the
+default. The default block-size can also be changed via the PPRP_BLOCK_SIZE
+environment variable.
+
+%package -n python3-pprp
+Summary: A pure-Python Rijndael (AES) and PBKDF2 library. Python 2.7 and Python3 compatible.
+Provides: python-pprp
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pprp
+[![Build Status](https://travis-ci.org/dsoprea/RijndaelPbkdf.svg?branch=master)](https://travis-ci.org/dsoprea/RijndaelPbkdf)
+
+## Overview
+
+This package was a remedy to there being no PyPI-published, pure-Python
+Rijndael (AES) implementations, and that nothing available, in general, was
+compatible with both Python2 *and* Python3. The same is true of the PBKDF2
+key-expansion algorithm.
+
+The encryptor takes a source generator (which yields individual blocks). There
+are source-generators provided for both data from a variable and data from a
+file. It is trivial if you'd like to write your own. The encryptor and
+decryptor functions are written as generators. Decrypted data has PKCS7
+padding. A utility function is provided to trim this (*trim_pkcs7_padding*).
+
+The implementation includes Python2 and Python3 implementations of both
+Rijndael and PBKDF2, and chooses the version when loaded.
+
+The default block-size is 128-bits in order to be compatible with AES.
+
+This project is also referred to as *pprp*, which stands for "Pure Python
+Rijndael and PBKDF2".
+
+
+## Installation
+
+Install via *pip*:
+
+```
+$ sudo pip install pprp
+```
+
+
+## Example
+
+Encrypt and decrypt the data, and compare the results. This was copied directly
+from the unit-test.
+
+```python
+passphrase = 'password'.encode('ASCII')
+salt = 'salt'.encode('ASCII')
+
+key_size = 32
+data = "this is a test" * 100
+data_bytes = data.encode('ASCII')
+
+key = pprp.pbkdf2(passphrase, salt, key_size)
+
+# Create a source from available data.
+sg = pprp.data_source_gen(data_bytes)
+
+# Feed the source into the encryptor.
+eg = pprp.rijndael_encrypt_gen(key, sg)
+
+# Feed the encryptor into the decryptor.
+dg = pprp.rijndael_decrypt_gen(key, eg)
+
+# Sink the output into an IO-stream.
+decrypted = pprp.decrypt_sink(dg)
+
+# self.assertEquals(data_bytes, decrypted)
+```
+
+
+## Notes
+
+The generators can take a block-size in the event that you don't want the
+default. The default block-size can also be changed via the PPRP_BLOCK_SIZE
+environment variable.
+
+%package help
+Summary: Development documents and examples for pprp
+Provides: python3-pprp-doc
+%description help
+[![Build Status](https://travis-ci.org/dsoprea/RijndaelPbkdf.svg?branch=master)](https://travis-ci.org/dsoprea/RijndaelPbkdf)
+
+## Overview
+
+This package was a remedy to there being no PyPI-published, pure-Python
+Rijndael (AES) implementations, and that nothing available, in general, was
+compatible with both Python2 *and* Python3. The same is true of the PBKDF2
+key-expansion algorithm.
+
+The encryptor takes a source generator (which yields individual blocks). There
+are source-generators provided for both data from a variable and data from a
+file. It is trivial if you'd like to write your own. The encryptor and
+decryptor functions are written as generators. Decrypted data has PKCS7
+padding. A utility function is provided to trim this (*trim_pkcs7_padding*).
+
+The implementation includes Python2 and Python3 implementations of both
+Rijndael and PBKDF2, and chooses the version when loaded.
+
+The default block-size is 128-bits in order to be compatible with AES.
+
+This project is also referred to as *pprp*, which stands for "Pure Python
+Rijndael and PBKDF2".
+
+
+## Installation
+
+Install via *pip*:
+
+```
+$ sudo pip install pprp
+```
+
+
+## Example
+
+Encrypt and decrypt the data, and compare the results. This was copied directly
+from the unit-test.
+
+```python
+passphrase = 'password'.encode('ASCII')
+salt = 'salt'.encode('ASCII')
+
+key_size = 32
+data = "this is a test" * 100
+data_bytes = data.encode('ASCII')
+
+key = pprp.pbkdf2(passphrase, salt, key_size)
+
+# Create a source from available data.
+sg = pprp.data_source_gen(data_bytes)
+
+# Feed the source into the encryptor.
+eg = pprp.rijndael_encrypt_gen(key, sg)
+
+# Feed the encryptor into the decryptor.
+dg = pprp.rijndael_decrypt_gen(key, eg)
+
+# Sink the output into an IO-stream.
+decrypted = pprp.decrypt_sink(dg)
+
+# self.assertEquals(data_bytes, decrypted)
+```
+
+
+## Notes
+
+The generators can take a block-size in the event that you don't want the
+default. The default block-size can also be changed via the PPRP_BLOCK_SIZE
+environment variable.
+
+%prep
+%autosetup -n pprp-0.2.7
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pprp -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2.7-1
+- Package Spec generated