diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-05 05:34:52 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 05:34:52 +0000 |
commit | e299e97b63e2b48ece77c7ce3bf9757391ce639a (patch) | |
tree | 29f0abea8f0ac1c825dcb4939b0587b7752a8331 | |
parent | 1c72f018c869ca2623a02a257d95d791a22a2af9 (diff) |
automatic import of python-django-mirage-fieldopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-mirage-field.spec | 255 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 257 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-mirage-field-1.4.0.tar.gz diff --git a/python-django-mirage-field.spec b/python-django-mirage-field.spec new file mode 100644 index 0000000..d8173a1 --- /dev/null +++ b/python-django-mirage-field.spec @@ -0,0 +1,255 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-mirage-field +Version: 1.4.0 +Release: 1 +Summary: A Django model fields collection that encrypt your data when save to and decrypt when get from database. It keeps data always encrypted in database. +License: MIT License +URL: https://github.com/luojilab/django-mirage-field +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/7e/ca/965987d85817039d168270f59aaf55166499496fe1233dafdd84965ae3d2/django-mirage-field-1.4.0.tar.gz +BuildArch: noarch + + +%description + 1 | -bYijegsEDrmS1s7ilnspA== +``` +```python +from mirage.crypto import Crypto +c = Crypto() # key is optional, default will use settings.SECRET_KEY +c.encrypt('some_address') # -bYijegsEDrmS1s7ilnspA== +c.decrypt('-bYijegsEDrmS1s7ilnspA==') # some_address +``` +## Settings +- MIRAGE_SECRET_KEY +- MIRAGE_CIPHER_MODE (v1.2.0+) +- MIRAGE_CIPHER_IV (v1.2.0+) +### MIRAGE_SECRET_KEY +You can use the `settings.SECRET_KEY` as default key, if you want custom another key for mirage, set the `MIRAGE_SECRET_KEY` in settings. +Mirage will get the `settings.MIRAGE_SECRET_KEY` first, if not set, mirage will get the `settings.SECRET_KEY`. +### MIRAGE_CIPHER_MODE +`MIRAGE_CIPHER_MODE` is optional, choices are below, If don't set, default is `ECB`. +- `ECB` +- `CBC` +### MIRAGE_CIPHER_IV +`MIRAGE_CIPHER_IV` is optional, if you don't set, it will use a default: "1234567890abcdef", it's length must be 16. +## Model Fields +1. EncryptedTextField +2. EncryptedCharField +3. EncryptedEmailField +4. EncryptedIntegerField +5. EncryptedURLField(v1.3.0+) +## Data Migrate +Add`mirage`to`INSTALLED_APPS` +### Way 1. Migrations +add `app_name`,`model_name`,`field_name` in [migrations.RunPython](https://docs.djangoproject.com/en/2.2/ref/migration-operations/#runpython) +``` +from mirage.tools import Migrator +migrations.RunPython(Migrator("app_name", "model_name", "field_name").encrypt, reverse_code=Migrator("app_name", 'model_name', 'field_name').decrypt), +``` +### Way 2. Commands +Options: +* --app +* --model +* --field +* --method (optional: `encrypt`, `decrypt`, `encrypt_to`, `decrypt_to`, `copy_to`) +* --tofield (need when use `encryt_to`, `decrypt_to`, `copy_to` method) +Optional options: +* --offset ("select * from xxx where id > offset") +* --total ("select * from xxx order by id limit total") +* --limit: set the query count in every update, default is 1000, if you set -1, mirage will query all rows one time to update. +Examples +``` +./manage.py mirage --app=yourapp --model=testmodel --field=address --method=encrypt --offset=2000000 --total=3000000 +./manage.py mirage --app=yourapp --model=testmodel --field=address --method=encrypt_to --tofield=encrypted_address +``` +## Exceptions +``` +from mirage import exceptions +``` +1. EncryptedFieldException +## Performance +### With ECB mode +Migrate data: 6000,000 columns takes 40 minutes, Average 1 column/2.5ms +Only encrypt/decrypt: Average 1 value/ms +## Clients +* [Java](https://github.com/luojilab/django-mirage-field/tree/master/client/java) + +%package -n python3-django-mirage-field +Summary: A Django model fields collection that encrypt your data when save to and decrypt when get from database. It keeps data always encrypted in database. +Provides: python-django-mirage-field +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-mirage-field + 1 | -bYijegsEDrmS1s7ilnspA== +``` +```python +from mirage.crypto import Crypto +c = Crypto() # key is optional, default will use settings.SECRET_KEY +c.encrypt('some_address') # -bYijegsEDrmS1s7ilnspA== +c.decrypt('-bYijegsEDrmS1s7ilnspA==') # some_address +``` +## Settings +- MIRAGE_SECRET_KEY +- MIRAGE_CIPHER_MODE (v1.2.0+) +- MIRAGE_CIPHER_IV (v1.2.0+) +### MIRAGE_SECRET_KEY +You can use the `settings.SECRET_KEY` as default key, if you want custom another key for mirage, set the `MIRAGE_SECRET_KEY` in settings. +Mirage will get the `settings.MIRAGE_SECRET_KEY` first, if not set, mirage will get the `settings.SECRET_KEY`. +### MIRAGE_CIPHER_MODE +`MIRAGE_CIPHER_MODE` is optional, choices are below, If don't set, default is `ECB`. +- `ECB` +- `CBC` +### MIRAGE_CIPHER_IV +`MIRAGE_CIPHER_IV` is optional, if you don't set, it will use a default: "1234567890abcdef", it's length must be 16. +## Model Fields +1. EncryptedTextField +2. EncryptedCharField +3. EncryptedEmailField +4. EncryptedIntegerField +5. EncryptedURLField(v1.3.0+) +## Data Migrate +Add`mirage`to`INSTALLED_APPS` +### Way 1. Migrations +add `app_name`,`model_name`,`field_name` in [migrations.RunPython](https://docs.djangoproject.com/en/2.2/ref/migration-operations/#runpython) +``` +from mirage.tools import Migrator +migrations.RunPython(Migrator("app_name", "model_name", "field_name").encrypt, reverse_code=Migrator("app_name", 'model_name', 'field_name').decrypt), +``` +### Way 2. Commands +Options: +* --app +* --model +* --field +* --method (optional: `encrypt`, `decrypt`, `encrypt_to`, `decrypt_to`, `copy_to`) +* --tofield (need when use `encryt_to`, `decrypt_to`, `copy_to` method) +Optional options: +* --offset ("select * from xxx where id > offset") +* --total ("select * from xxx order by id limit total") +* --limit: set the query count in every update, default is 1000, if you set -1, mirage will query all rows one time to update. +Examples +``` +./manage.py mirage --app=yourapp --model=testmodel --field=address --method=encrypt --offset=2000000 --total=3000000 +./manage.py mirage --app=yourapp --model=testmodel --field=address --method=encrypt_to --tofield=encrypted_address +``` +## Exceptions +``` +from mirage import exceptions +``` +1. EncryptedFieldException +## Performance +### With ECB mode +Migrate data: 6000,000 columns takes 40 minutes, Average 1 column/2.5ms +Only encrypt/decrypt: Average 1 value/ms +## Clients +* [Java](https://github.com/luojilab/django-mirage-field/tree/master/client/java) + +%package help +Summary: Development documents and examples for django-mirage-field +Provides: python3-django-mirage-field-doc +%description help + 1 | -bYijegsEDrmS1s7ilnspA== +``` +```python +from mirage.crypto import Crypto +c = Crypto() # key is optional, default will use settings.SECRET_KEY +c.encrypt('some_address') # -bYijegsEDrmS1s7ilnspA== +c.decrypt('-bYijegsEDrmS1s7ilnspA==') # some_address +``` +## Settings +- MIRAGE_SECRET_KEY +- MIRAGE_CIPHER_MODE (v1.2.0+) +- MIRAGE_CIPHER_IV (v1.2.0+) +### MIRAGE_SECRET_KEY +You can use the `settings.SECRET_KEY` as default key, if you want custom another key for mirage, set the `MIRAGE_SECRET_KEY` in settings. +Mirage will get the `settings.MIRAGE_SECRET_KEY` first, if not set, mirage will get the `settings.SECRET_KEY`. +### MIRAGE_CIPHER_MODE +`MIRAGE_CIPHER_MODE` is optional, choices are below, If don't set, default is `ECB`. +- `ECB` +- `CBC` +### MIRAGE_CIPHER_IV +`MIRAGE_CIPHER_IV` is optional, if you don't set, it will use a default: "1234567890abcdef", it's length must be 16. +## Model Fields +1. EncryptedTextField +2. EncryptedCharField +3. EncryptedEmailField +4. EncryptedIntegerField +5. EncryptedURLField(v1.3.0+) +## Data Migrate +Add`mirage`to`INSTALLED_APPS` +### Way 1. Migrations +add `app_name`,`model_name`,`field_name` in [migrations.RunPython](https://docs.djangoproject.com/en/2.2/ref/migration-operations/#runpython) +``` +from mirage.tools import Migrator +migrations.RunPython(Migrator("app_name", "model_name", "field_name").encrypt, reverse_code=Migrator("app_name", 'model_name', 'field_name').decrypt), +``` +### Way 2. Commands +Options: +* --app +* --model +* --field +* --method (optional: `encrypt`, `decrypt`, `encrypt_to`, `decrypt_to`, `copy_to`) +* --tofield (need when use `encryt_to`, `decrypt_to`, `copy_to` method) +Optional options: +* --offset ("select * from xxx where id > offset") +* --total ("select * from xxx order by id limit total") +* --limit: set the query count in every update, default is 1000, if you set -1, mirage will query all rows one time to update. +Examples +``` +./manage.py mirage --app=yourapp --model=testmodel --field=address --method=encrypt --offset=2000000 --total=3000000 +./manage.py mirage --app=yourapp --model=testmodel --field=address --method=encrypt_to --tofield=encrypted_address +``` +## Exceptions +``` +from mirage import exceptions +``` +1. EncryptedFieldException +## Performance +### With ECB mode +Migrate data: 6000,000 columns takes 40 minutes, Average 1 column/2.5ms +Only encrypt/decrypt: Average 1 value/ms +## Clients +* [Java](https://github.com/luojilab/django-mirage-field/tree/master/client/java) + +%prep +%autosetup -n django-mirage-field-1.4.0 + +%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-mirage-field -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4.0-1 +- Package Spec generated @@ -0,0 +1 @@ +bb90f96f129887cf647dca7ea31b52cd django-mirage-field-1.4.0.tar.gz |