incy_crypto_link (Python)
Python port of @incy/link-encoder —
encode VPN subscription URLs into incy://crypt1/<payload> deep links
that the INCY iOS, Android, and Desktop clients decode automatically.
Wire-compatible with the JS/PHP/Go ports and the client apps; a pinned test vector guards against drift.
This is obfuscation, not security. The AES-256-GCM key is derived from constants and asset bytes embedded in this package. See the main README for the full threat model.
Install
pip install incy-crypto-link
Requires Python ≥ 3.9 and cryptography.
Usage
from incy_crypto_link import encrypt_link, decrypt_link
link = encrypt_link("https://sub.your-provider.example/abc123token", name="My Provider VPN")
print(link)
# → incy://crypt1/AAECAwQFBgcICQoLNyIQL3rDwRZqnyoD8pGK…
decoded = decrypt_link(link)
print(decoded.url, decoded.name)
API
encrypt_link(url: str, name: str | None = None) -> str
decrypt_link(link: str) -> DecryptedLink # .url, .name
encrypt_link_deterministic(url: str, iv: bytes, name: str | None = None) -> str # tests only
VERSION: str
SCHEME_VERSION: str # "crypt1"
KEY_FINGERPRINT: str # SHA-256 of K1
SCHEMES: dict[str, SchemeInfo] # registry of known schemes (today: crypt1)
Tests
python -m unittest discover -s tests -v
Metadata
Release files for incy-crypto-link 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| incy_crypto_link-1.3.1.tar.gz | 15.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| incy_crypto_link-1.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.8 kB
Release files / incy_crypto_link-1.3.1.tar.gz
| Download URL | incy_crypto_link-1.3.1.tar.gz |
|---|---|
| Size | 15.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
27f175932760ed3ac5dad9869cb9f910cb51ca145ed034fcf95e9c6cdb8de177
|
|
BLAKE2b-256 checksum How to use checksums |
4dd472d8c6ed33cbb5bf6cc1325640f88adde1fcf608ef1c0ebc19f2ce8d5cd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / incy_crypto_link-1.3.1-py3-none-any.whl
| Download URL | incy_crypto_link-1.3.1-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c0add0c88e6b3cd7b41f1dc16d9964477f15706623e68729e238374b65b4e49d
|
|
BLAKE2b-256 checksum How to use checksums |
9e898a1e2f0648b8fb863e811924cb2e2a80957020774ffb1706ded1f14ce0e1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|