File encryption for DIDWW API 3
Project description
DIDWW Encrypt Python 3 SDK
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for didww_encrypt-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e9deef3fddc9f34e99fa4575659ac1de5564a85278358a131de0be87122127c |
|
MD5 | fa8335c242f2942f4e5fdbcf681e35b1 |
|
BLAKE2b-256 | d76228cd20f32f8e9dfa9129a4ababc6a4acd035735b40671503198701388c7f |