summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-05 05:34:52 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-05 05:34:52 +0000
commite299e97b63e2b48ece77c7ce3bf9757391ce639a (patch)
tree29f0abea8f0ac1c825dcb4939b0587b7752a8331
parent1c72f018c869ca2623a02a257d95d791a22a2af9 (diff)
automatic import of python-django-mirage-fieldopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-django-mirage-field.spec255
-rw-r--r--sources1
3 files changed, 257 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..0e8ab1b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/sources b/sources
new file mode 100644
index 0000000..8e575d7
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+bb90f96f129887cf647dca7ea31b52cd django-mirage-field-1.4.0.tar.gz