cryptoserve-auto
Automatic encryption for data flowing through third-party libraries.
The Problem
Your application uses hundreds of dependencies. Each may send sensitive data to external services. When quantum computing breaks classical encryption, these dependencies become attack vectors.
The Solution
One line of code automatically protects all outbound sensitive data:
import cryptoserve_auto
cryptoserve_auto.protect()
# Now all outbound requests are automatically protected
import requests
requests.post("https://api.vendor.com/users", json={
"name": "John Doe",
"email": "john@example.com", # Auto-encrypted
"ssn": "123-45-6789", # Auto-encrypted
})
Installation
pip install cryptoserve-auto
How It Works
- Intercepts outbound calls from popular libraries (requests, httpx, boto3)
- Detects sensitive fields using patterns and field names
- Encrypts data with quantum-ready algorithms before transmission
- Logs all protected data flows for audit visibility
Configuration
import cryptoserve_auto
cryptoserve_auto.protect(
# What to protect
libraries=["requests", "httpx"], # Default: all supported
patterns=["pii", "financial"], # Default: all patterns
# How to protect
encryption_key=key, # Required: your encryption key
mode="encrypt", # "encrypt" | "tokenize" | "log_only"
# Behavior
fail_open=True, # On error: pass through (True) or block (False)
async_logging=True, # Non-blocking audit logging
)
Supported Libraries
| Library | What's Protected |
|---|---|
requests |
POST/PUT/PATCH body data |
httpx |
POST/PUT/PATCH body data |
urllib3 |
Request bodies |
More coming: boto3, stripe, psycopg2, sqlalchemy, redis
Sensitive Field Detection
Automatic patterns:
- SSN:
XXX-XX-XXXX - Credit cards:
XXXX-XXXX-XXXX-XXXX - Emails:
user@domain.com - Phone numbers
Field name detection:
ssn,social_security,tax_idemail,phone,addresspassword,secret,api_keycredit_card,card_number
Custom patterns:
cryptoserve_auto.protect(
custom_patterns={
"employee_id": r"EMP-\d{6}",
},
custom_fields=["internal_id"],
)
Escape Hatch
# Temporarily disable protection
with cryptoserve_auto.unprotected():
requests.post(url, json=data) # Not intercepted
Audit Logging
All protected data flows are logged:
{
"timestamp": "2025-12-29T10:30:00Z",
"library": "requests",
"destination": "api.vendor.com",
"fields_protected": ["email", "ssn"],
"algorithm": "AES-256-GCM"
}
Performance
| Operation | Overhead |
|---|---|
| Field detection | ~5μs per field |
| Encryption | ~50μs per KB |
| Total request overhead | <1ms |
License
Apache 2.0
Metadata
Release files for cryptoserve-auto 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cryptoserve_auto-0.3.0.tar.gz | 14.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cryptoserve_auto-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.6 kB
Release files / cryptoserve_auto-0.3.0.tar.gz
| Download URL | cryptoserve_auto-0.3.0.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6ca04f6c284e347aedaf0cb9fdec2a981cde59fbf201c35b47c3eecade344d32
|
|
BLAKE2b-256 checksum How to use checksums |
181fc62f4775c67bef1de85354f578b2da78422e7d1f54cb395265e144c2bde9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / cryptoserve_auto-0.3.0-py3-none-any.whl
| Download URL | cryptoserve_auto-0.3.0-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ede97e044262edad60c74cea607556b4d849ad2946623f127f1d3cd0f58ac83
|
|
BLAKE2b-256 checksum How to use checksums |
3e137bd2a0075fda6900c828d38cced4e6130e4b54b2fb2b764b607e6fb5a8f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|