%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