%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 - 0.2.7-1 - Package Spec generated