From f4503f0e67231d316c9500c442ecc99b946ca697 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 11 Apr 2023 13:13:16 +0000 Subject: automatic import of python-django-encrypted-model-fields --- python-django-encrypted-model-fields.spec | 380 ++++++++++++++++++++++++++++++ 1 file changed, 380 insertions(+) create mode 100644 python-django-encrypted-model-fields.spec (limited to 'python-django-encrypted-model-fields.spec') diff --git a/python-django-encrypted-model-fields.spec b/python-django-encrypted-model-fields.spec new file mode 100644 index 0000000..20d7382 --- /dev/null +++ b/python-django-encrypted-model-fields.spec @@ -0,0 +1,380 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-encrypted-model-fields +Version: 0.6.5 +Release: 1 +Summary: A set of fields that wrap standard Django fields with encryption provided by the python cryptography library. +License: MIT +URL: https://gitlab.com/lansharkconsulting/django/django-encrypted-model-fields +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/35/44/e4273d48f406b23604cf946912421583a659044d5e521799d1cfd74222c5/django-encrypted-model-fields-0.6.5.tar.gz +BuildArch: noarch + +Requires: python3-cryptography +Requires: python3-Django + +%description +# Django Encrypted Model Fields + +[![image](https://travis-ci.org/lanshark/django-encrypted-model-fields.png)](https://travis-ci.org/lanshark/django-encrypted-model-fields) + +## About + +This is a fork of +. It has +been renamed, and updated to properly support Python3 and latest +versions of Django. + +`django-encrypted-model-fields` is set of fields that wrap standard +Django fields with encryption provided by the python cryptography +library. These fields are much more compatible with a 12-factor design +since they take their encryption key from the settings file instead of a +file on disk used by `keyczar`. + +While keyczar is an excellent tool to use for encryption, it's not +compatible with Python 3, and it requires, for hosts like Heroku, that +you either check your key file into your git repository for deployment, +or implement manual post-deployment processing to write the key stored +in an environment variable into a file that keyczar can read. + +## Generating an Encryption Key + +There is a Django management command `generate_encryption_key` provided +with the `encrypted_model_fields` library. Use this command to generate +a new encryption key to set as `settings.FIELD_ENCRYPTION_KEY`: + + ./manage.py generate_encryption_key + +Running this command will print an encryption key to the terminal, which +can be configured in your environment or settings file. + +*NOTE: This command will ONLY work in a CLEAN, NEW django project that +does NOT import encrypted_model_fields in any of it's apps.* IF you are +already importing encrypted_model_fields, try running this in a python +shell instead: + + import os + import base64 + + new_key = base64.urlsafe_b64encode(os.urandom(32)) + print(new_key) + +## Getting Started + +> $ pip install django-encrypted-model-fields + +Add "encrypted_model_fields" to your INSTALLED_APPS setting like this: + + INSTALLED_APPS = ( + ... + 'encrypted_model_fields', + ) + +`django-encrypted-model-fields` expects the encryption key to be +specified using `FIELD_ENCRYPTION_KEY` in your project's `settings.py` +file. For example, to load it from the local environment: + + import os + + FIELD_ENCRYPTION_KEY = os.environ.get('FIELD_ENCRYPTION_KEY', '') + +To use an encrypted field in a Django model, use one of the fields from +the `encrypted_model_fields` module: + + from encrypted_model_fields.fields import EncryptedCharField + + class EncryptedFieldModel(models.Model): + encrypted_char_field = EncryptedCharField(max_length=100) + +For fields that require `max_length` to be specified, the `Encrypted` +variants of those fields will automatically increase the size of the +database field to hold the encrypted form of the content. For example, a +3 character CharField will automatically specify a database field size +of 100 characters when `EncryptedCharField(max_length=3)` is specified. + +Due to the nature of the encrypted data, filtering by values contained +in encrypted fields won't work properly. Sorting is also not supported. + +## Development Environment + +Added Tox for testing with different versions of Django and Python. To get started: +pip install -r requirements/dev.txt + +using `pyenv` add the requisite python interpreters:: +pyenv install 3.6.15 + +pyenv install 3.7.12 + +pyenv install 3.8.12 + +pyenv install 3.9.10 + +pyenv install 3.10.2 + +Add the requisite versions to the local version:: +pyenv local 3.6.15 3.7.12 3.8.12 3.9.10 3.10.2 + +Run `tox`:: +tox + + +%package -n python3-django-encrypted-model-fields +Summary: A set of fields that wrap standard Django fields with encryption provided by the python cryptography library. +Provides: python-django-encrypted-model-fields +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-encrypted-model-fields +# Django Encrypted Model Fields + +[![image](https://travis-ci.org/lanshark/django-encrypted-model-fields.png)](https://travis-ci.org/lanshark/django-encrypted-model-fields) + +## About + +This is a fork of +. It has +been renamed, and updated to properly support Python3 and latest +versions of Django. + +`django-encrypted-model-fields` is set of fields that wrap standard +Django fields with encryption provided by the python cryptography +library. These fields are much more compatible with a 12-factor design +since they take their encryption key from the settings file instead of a +file on disk used by `keyczar`. + +While keyczar is an excellent tool to use for encryption, it's not +compatible with Python 3, and it requires, for hosts like Heroku, that +you either check your key file into your git repository for deployment, +or implement manual post-deployment processing to write the key stored +in an environment variable into a file that keyczar can read. + +## Generating an Encryption Key + +There is a Django management command `generate_encryption_key` provided +with the `encrypted_model_fields` library. Use this command to generate +a new encryption key to set as `settings.FIELD_ENCRYPTION_KEY`: + + ./manage.py generate_encryption_key + +Running this command will print an encryption key to the terminal, which +can be configured in your environment or settings file. + +*NOTE: This command will ONLY work in a CLEAN, NEW django project that +does NOT import encrypted_model_fields in any of it's apps.* IF you are +already importing encrypted_model_fields, try running this in a python +shell instead: + + import os + import base64 + + new_key = base64.urlsafe_b64encode(os.urandom(32)) + print(new_key) + +## Getting Started + +> $ pip install django-encrypted-model-fields + +Add "encrypted_model_fields" to your INSTALLED_APPS setting like this: + + INSTALLED_APPS = ( + ... + 'encrypted_model_fields', + ) + +`django-encrypted-model-fields` expects the encryption key to be +specified using `FIELD_ENCRYPTION_KEY` in your project's `settings.py` +file. For example, to load it from the local environment: + + import os + + FIELD_ENCRYPTION_KEY = os.environ.get('FIELD_ENCRYPTION_KEY', '') + +To use an encrypted field in a Django model, use one of the fields from +the `encrypted_model_fields` module: + + from encrypted_model_fields.fields import EncryptedCharField + + class EncryptedFieldModel(models.Model): + encrypted_char_field = EncryptedCharField(max_length=100) + +For fields that require `max_length` to be specified, the `Encrypted` +variants of those fields will automatically increase the size of the +database field to hold the encrypted form of the content. For example, a +3 character CharField will automatically specify a database field size +of 100 characters when `EncryptedCharField(max_length=3)` is specified. + +Due to the nature of the encrypted data, filtering by values contained +in encrypted fields won't work properly. Sorting is also not supported. + +## Development Environment + +Added Tox for testing with different versions of Django and Python. To get started: +pip install -r requirements/dev.txt + +using `pyenv` add the requisite python interpreters:: +pyenv install 3.6.15 + +pyenv install 3.7.12 + +pyenv install 3.8.12 + +pyenv install 3.9.10 + +pyenv install 3.10.2 + +Add the requisite versions to the local version:: +pyenv local 3.6.15 3.7.12 3.8.12 3.9.10 3.10.2 + +Run `tox`:: +tox + + +%package help +Summary: Development documents and examples for django-encrypted-model-fields +Provides: python3-django-encrypted-model-fields-doc +%description help +# Django Encrypted Model Fields + +[![image](https://travis-ci.org/lanshark/django-encrypted-model-fields.png)](https://travis-ci.org/lanshark/django-encrypted-model-fields) + +## About + +This is a fork of +. It has +been renamed, and updated to properly support Python3 and latest +versions of Django. + +`django-encrypted-model-fields` is set of fields that wrap standard +Django fields with encryption provided by the python cryptography +library. These fields are much more compatible with a 12-factor design +since they take their encryption key from the settings file instead of a +file on disk used by `keyczar`. + +While keyczar is an excellent tool to use for encryption, it's not +compatible with Python 3, and it requires, for hosts like Heroku, that +you either check your key file into your git repository for deployment, +or implement manual post-deployment processing to write the key stored +in an environment variable into a file that keyczar can read. + +## Generating an Encryption Key + +There is a Django management command `generate_encryption_key` provided +with the `encrypted_model_fields` library. Use this command to generate +a new encryption key to set as `settings.FIELD_ENCRYPTION_KEY`: + + ./manage.py generate_encryption_key + +Running this command will print an encryption key to the terminal, which +can be configured in your environment or settings file. + +*NOTE: This command will ONLY work in a CLEAN, NEW django project that +does NOT import encrypted_model_fields in any of it's apps.* IF you are +already importing encrypted_model_fields, try running this in a python +shell instead: + + import os + import base64 + + new_key = base64.urlsafe_b64encode(os.urandom(32)) + print(new_key) + +## Getting Started + +> $ pip install django-encrypted-model-fields + +Add "encrypted_model_fields" to your INSTALLED_APPS setting like this: + + INSTALLED_APPS = ( + ... + 'encrypted_model_fields', + ) + +`django-encrypted-model-fields` expects the encryption key to be +specified using `FIELD_ENCRYPTION_KEY` in your project's `settings.py` +file. For example, to load it from the local environment: + + import os + + FIELD_ENCRYPTION_KEY = os.environ.get('FIELD_ENCRYPTION_KEY', '') + +To use an encrypted field in a Django model, use one of the fields from +the `encrypted_model_fields` module: + + from encrypted_model_fields.fields import EncryptedCharField + + class EncryptedFieldModel(models.Model): + encrypted_char_field = EncryptedCharField(max_length=100) + +For fields that require `max_length` to be specified, the `Encrypted` +variants of those fields will automatically increase the size of the +database field to hold the encrypted form of the content. For example, a +3 character CharField will automatically specify a database field size +of 100 characters when `EncryptedCharField(max_length=3)` is specified. + +Due to the nature of the encrypted data, filtering by values contained +in encrypted fields won't work properly. Sorting is also not supported. + +## Development Environment + +Added Tox for testing with different versions of Django and Python. To get started: +pip install -r requirements/dev.txt + +using `pyenv` add the requisite python interpreters:: +pyenv install 3.6.15 + +pyenv install 3.7.12 + +pyenv install 3.8.12 + +pyenv install 3.9.10 + +pyenv install 3.10.2 + +Add the requisite versions to the local version:: +pyenv local 3.6.15 3.7.12 3.8.12 3.9.10 3.10.2 + +Run `tox`:: +tox + + +%prep +%autosetup -n django-encrypted-model-fields-0.6.5 + +%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-django-encrypted-model-fields -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot - 0.6.5-1 +- Package Spec generated -- cgit v1.2.3