summaryrefslogtreecommitdiff
path: root/python-django-encrypted-model-fields.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-django-encrypted-model-fields.spec')
-rw-r--r--python-django-encrypted-model-fields.spec380
1 files changed, 380 insertions, 0 deletions
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
+<https://github.com/foundertherapy/django-cryptographic-fields>. 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
+<https://github.com/foundertherapy/django-cryptographic-fields>. 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
+<https://github.com/foundertherapy/django-cryptographic-fields>. 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 <Python_Bot@openeuler.org> - 0.6.5-1
+- Package Spec generated