Skip to main content

File encryption for DIDWW API 3

Project description

DIDWW Encrypt Python 3 SDK

github_actions codecov

This is Python 3 module and utility to encrypt file for DIDWW API 3.

File encrypted with mode sandbox could be uploaded to POST https://sandbox-api.didww.com/v3/encrypted_files.

File encrypted with mode production could be uploaded to POST https://api.didww.com/v3/encrypted_files.

see DIDWW Documentation for details.

Requirements

Python >=3.6

Dependencies

PyCryptodomex

Install

pip install didww_encrypt

Usage

Inside python

from didww_encrypt import Encrypt, MODE_PRODUCTION


with open("doc.pdf", mode="rb") as f:
    data = f.read()

enc = Encrypt.new(MODE_PRODUCTION)
enc_data = enc.encrypt(data)
enc_filename = "doc.pdf.enc"
with open(enc_filename, mode="wb") as f:
    f.write(enc_data)

print(f"encrypted file saved: {enc_filename}")
print(f"fingerprint: {enc.fingerprint}")

Shell

usage: didww_encrypt [-h] [-i [INPUT]] [-o [OUTPUT]] [-f] (-m [{sandbox,production}] | -u [URI])

Encrypt file for DIDWW API 3

optional arguments:
  -h, --help            show this help message and exit
  -i [INPUT], --input [INPUT]
                        use input pipe when not passed
  -o [OUTPUT], --output [OUTPUT]
                        use output pipe when not passed
  -f, --fingerprint     return fingerprint for public keys
  -m [{sandbox,production}], --mode [{sandbox,production}]
                        which DIDWW server use for public keys fetching
  -u [URI], --uri [URI]
                        custom URI for public keys fetching

You can pass input and output files as params

$ didww_encrypt -i ./doc.pdf -o ./doc.pdf.enc -m sandbox

Or using pipe

$ cat ./doc.pdf | didww_encrypt -m production > ./doc.pdf.enc

Also script could be run via python -m

$ python -m didww_encrypt -i ./doc.pdf -o ./doc.pdf.enc -m production
$ cat ./doc.pdf | python -m didww_encrypt -m sandbox > ./doc.pdf.enc

To print fingerprint use -f option instead of -i

$ didww_encrypt -f -mode sandbox
c74684d7863639169c21c4d04747f8d6fa05cfe3:::7c56fd5d2e1f2ada18765d936e74712037aea7eb

Or you can save it to a file

$ didww_encrypt -f -mode sandbox -o fingerprint.txt

Keep in mind that shell script returns fingerprint with newline which should be omitted when send it to /v3/encrypted_files.

Additional information

both shell script and module function Encrypt.new respects http_proxy env variable when fetching public keys.

http_proxy="http://myproxy.example.com:1234" didww_encrypt -m sandbox

Development

Install dependencies

pip install -r requirements.txt
pip install -r tests/requirements.txt

Run tests

python -m unittest -v

Run tests with coverage

coverage run -m unittest -v

Lint with flake8

flake8 . --count --show-source --statistics

Fix code format with Black

black .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

didww_encrypt-1.0.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

didww_encrypt-1.0.0-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file didww_encrypt-1.0.0.tar.gz.

File metadata

  • Download URL: didww_encrypt-1.0.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for didww_encrypt-1.0.0.tar.gz
Algorithm Hash digest
SHA256 eefe5fd6eff8ce6150378d5149647abab02a11bcb6d1d6a1ac15a290c2db9516
MD5 7d7d50c6f559d757095f389452a5d19b
BLAKE2b-256 556d587a699921e21a42d37cc822410160be4ad5de8787789c03924a531eb598

See more details on using hashes here.

File details

Details for the file didww_encrypt-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: didww_encrypt-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.2

File hashes

Hashes for didww_encrypt-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e9deef3fddc9f34e99fa4575659ac1de5564a85278358a131de0be87122127c
MD5 fa8335c242f2942f4e5fdbcf681e35b1
BLAKE2b-256 d76228cd20f32f8e9dfa9129a4ababc6a4acd035735b40671503198701388c7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page