=?utf-8?q?SaQura_=E2=80=94_post-quantum-ready_cryptography_for_Python=2E_Wire-compatible_with_SaQura_for_=2ENET=2C_Swift_and_Kotlin=2E?=
Project description
SaQura for Python
Post-quantum-ready cryptography for Python. Wire-compatible with SaQura for .NET, Swift and Kotlin — data encrypted or signed on one platform decrypts and verifies on every other.
SaQura is async-first (await saqura.aes.encrypt(...)) with a synchronous
facade (saqura.sync), mirroring the Swift (async) and Kotlin (suspend) SDKs.
Features
| Module | What it does |
|---|---|
| AES | AES-256-GCM (auto-detects legacy CBC+HMAC on decrypt) |
| RSA | RSA-4096 — OAEP-SHA256 encryption, PSS-SHA256 signatures |
| Hybrid | RSA+AES envelope for large payloads (new + legacy HYBR) |
| Quantum | Post-quantum KEMs (FrodoKEM / Classic-McEliece / ML-KEM, Generations 2–8) and ML-DSA (FIPS 204) / SLH-DSA (FIPS 205) signatures, via liboqs |
| Licensing | Offline .lic verification (public-key-only) |
| Password | PBKDF2-HMAC-SHA512, 210 000 iterations |
Install
pip install saqura # AES / RSA / Hybrid / Licensing / Password
pip install "saqura[quantum]" # + post-quantum (pulls liboqs-python)
Requires Python 3.10+. Wheels are shipped compiled (no .py source).
Windows + post-quantum:
liboqs-python's default MSVC build miscompiles the FIPS-205 SLH-DSA path. After installing thequantumextra, run the bundled helper once —powershell -ExecutionPolicy Bypass -File tools\setup_liboqs_windows.ps1— to install a correct (clang-cl)liboqs. macOS and Linux are unaffected.
Usage
import asyncio, saqura
async def main():
# symmetric
blob = await saqura.aes.encrypt("hello", "my-key")
assert await saqura.aes.decrypt(blob, "my-key") == "hello"
# asymmetric — new_key_pair() returns (private_pem, public_pem)
priv, pub = await saqura.rsa.new_key_pair()
sig = await saqura.rsa.sign("invoice #42", priv)
assert await saqura.rsa.verify("invoice #42", sig, pub)
asyncio.run(main())
Synchronous facade — same names, no await:
import saqura
blob = saqura.sync.aes.encrypt("hello", "my-key")
text = saqura.sync.aes.decrypt(blob, "my-key")
Interoperability
All SaQura libraries share the same wire formats (AES-GCM nonce‖ct‖tag,
RSA-OAEP/PSS-SHA256, hybrid envelope, FrodoKEM / Classic-McEliece / ML-KEM blobs,
ML-DSA / SLH-DSA signatures, PBKDF2-SHA512, .lic license files). Cross-language
round-trips are verified against a shared test corpus, so a .lic issued for
.NET validates in Python and an AES blob from Swift decrypts in Python.
© 2025–2026 KyotoTech LLC. Proprietary.
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 Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file saqura-1.0.9-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: saqura-1.0.9-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 368.0 kB
- Tags: CPython 3.14, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5daac774758483c1494871d5ea6fd49dc2dfee555b4429717f4aeebe572db59d
|
|
| MD5 |
065ac5261a9cefd1d5c88e91a1791fad
|
|
| BLAKE2b-256 |
636213cfc999b37ce0329e3a841c21a8a47cd2dc4c85a4bbe8995743d7b3e9ea
|
File details
Details for the file saqura-1.0.9-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: saqura-1.0.9-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 308.8 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4909602db8c233e8b79bcd722e905393f6037f6786496b448283eac9d236e5f9
|
|
| MD5 |
6c7ec1bb4c2b0d033f4d26a76d799c11
|
|
| BLAKE2b-256 |
fdae3261b52c6c8f825d87c7460cf02eade5130e9a2f06b4d56d288303bc5731
|
File details
Details for the file saqura-1.0.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: saqura-1.0.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 577.2 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07da4b6eca02da6e1a5d01f18bb609873ad103fff0005a512a887fa9e32c116b
|
|
| MD5 |
13104a877dd522bf18e4625e75df3309
|
|
| BLAKE2b-256 |
abc83f76594e8bf4cc37e334207c3c36c106910e1f6e90d45ec18b915bc554e4
|
File details
Details for the file saqura-1.0.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: saqura-1.0.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 524.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddbaf14a6e031c71caa4d5155d7685baa0fe31bf60043cc044f440f2aab95501
|
|
| MD5 |
83696b43fbc6857c19448f179d3abbc4
|
|
| BLAKE2b-256 |
bcb9b67b5a4372a94eadcf5ab61b5fd2b7b426001abf3c9a835be5e2f502ba96
|
File details
Details for the file saqura-1.0.9-cp313-cp313-macosx_26_0_arm64.whl.
File metadata
- Download URL: saqura-1.0.9-cp313-cp313-macosx_26_0_arm64.whl
- Upload date:
- Size: 359.3 kB
- Tags: CPython 3.13, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5493474800bacc429819960338e444db0e8affaedd9a2b393ecf9c0bfb313d3
|
|
| MD5 |
ec7b29f2a81eeee8c0fac3994b3a5052
|
|
| BLAKE2b-256 |
5ed7732e565fb0bf4884e4992b0d857630f2e8df6749ba86319e846dfe26b14e
|
File details
Details for the file saqura-1.0.9-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: saqura-1.0.9-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 308.7 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
823e179cbfeac78de2ac62b3f046569e62134dcbde1d44aad6f6bc6769ee8778
|
|
| MD5 |
7e61ea60bb63839f7eef05de2887d242
|
|
| BLAKE2b-256 |
550d9d827dff6d6fbe1b115812dd43490f5ab97c1dea252b4a89469a509df899
|
File details
Details for the file saqura-1.0.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: saqura-1.0.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 573.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24a767c7c3a2bc816be095c018139335c4e0a56f8437a34e51afa41cf3bb9b55
|
|
| MD5 |
7c3fa4b6ef67fc8e29a4adc155dc6d4c
|
|
| BLAKE2b-256 |
cf48dfe36e553355f003597fef770db38a1eb25e0a58243167ad662d3cf63036
|
File details
Details for the file saqura-1.0.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: saqura-1.0.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 518.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b6dcaef8856e0e55c5d827833836bf4253fb9e79b1a848fab3975aa4dae6c56
|
|
| MD5 |
556aa0e2f4b8951ef3f2ba8232ad8de0
|
|
| BLAKE2b-256 |
9794a37875660c578203ecc580b6091a63ed52ed995a35e6714c8c3efae25ae5
|
File details
Details for the file saqura-1.0.9-cp312-cp312-macosx_26_0_arm64.whl.
File metadata
- Download URL: saqura-1.0.9-cp312-cp312-macosx_26_0_arm64.whl
- Upload date:
- Size: 350.2 kB
- Tags: CPython 3.12, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18efc4cd7c90a92473a5102225afecca6fc91c76de62a203bb9923e028ca1cb7
|
|
| MD5 |
8a93a456162780b697742f86d1159295
|
|
| BLAKE2b-256 |
4d559eda7d6a99e4338196d3a433d46b3f8105ace1046ce3ca2fac55a1a09239
|
File details
Details for the file saqura-1.0.9-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: saqura-1.0.9-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 318.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cff8313482006bae0352000459dda2050d0172a66c1a43a1167053402c35cd35
|
|
| MD5 |
8e158e1cc46e0fa98cef91dc43c3c71b
|
|
| BLAKE2b-256 |
8e3f8d094531246b62391287c6b79ea1550fdbbd39e9e181164ca479953941ce
|
File details
Details for the file saqura-1.0.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: saqura-1.0.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 504.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
728d3c13e73639c7a571c21628f11e02940df8bd2d5ce374720e179a64345102
|
|
| MD5 |
fbe3a47f13c057d07be61c7b21baf772
|
|
| BLAKE2b-256 |
bc4da4c291070c63308b2fbe2ecadb6affc452f1d789ce63008b165e25848f0d
|
File details
Details for the file saqura-1.0.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: saqura-1.0.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 475.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd0e3187e466f6163b24bcffc16c1344a34a8bbc606a038eb561ba50e5126faa
|
|
| MD5 |
e38bc5a59fa770841fd45ce1df77b955
|
|
| BLAKE2b-256 |
05c148ff0822012b23c1e00fd2c05138f7263683efb7f0e9b9f8eec8ef354031
|
File details
Details for the file saqura-1.0.9-cp311-cp311-macosx_26_0_arm64.whl.
File metadata
- Download URL: saqura-1.0.9-cp311-cp311-macosx_26_0_arm64.whl
- Upload date:
- Size: 345.4 kB
- Tags: CPython 3.11, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bb22d28db5157dca5cc15295a86493b38bfc5ca9f42f0d90128046e6bef49be
|
|
| MD5 |
9514cfc6e6ba83aa6cf22e6464a201e8
|
|
| BLAKE2b-256 |
a19797181465578627a349f9cc5bc28eba32807a4976b24cdf6bbb468f64ee11
|
File details
Details for the file saqura-1.0.9-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: saqura-1.0.9-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 303.1 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63e3e6f24b929c20689518d09dcc2264ace0be6bcc244299537be03a40edf1dd
|
|
| MD5 |
1a2a5a1de0d6c70e85b9c84efc5caa99
|
|
| BLAKE2b-256 |
95380e151809134d05e2fa5da88660988c8be040bd9682882742da19e42c2265
|
File details
Details for the file saqura-1.0.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: saqura-1.0.9-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 490.0 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53d9bca1e8aacd0e9984ce0667113e9583dc0c0bbc5a674878bfdf2d167e11be
|
|
| MD5 |
55b6c4290d31582b639130600911868e
|
|
| BLAKE2b-256 |
182c45c291d1a39aef5a676b3983d0593860adc29e1916ee846e63cdcc0930c0
|
File details
Details for the file saqura-1.0.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: saqura-1.0.9-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 463.3 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87a4d344da7f560263711ea19e3f845825fc8a32ae23146ec201c22c5d85acc6
|
|
| MD5 |
61fe0ebb9e120104ae9df2dfc61e872c
|
|
| BLAKE2b-256 |
a858a4d423ad8488c88b8390c884dc190937fe193ca4a0442c24109864676a0a
|
File details
Details for the file saqura-1.0.9-cp310-cp310-macosx_26_0_arm64.whl.
File metadata
- Download URL: saqura-1.0.9-cp310-cp310-macosx_26_0_arm64.whl
- Upload date:
- Size: 344.5 kB
- Tags: CPython 3.10, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5404c4ce61d7ad042c57bbff31561037b95b9d5740ea981c51c0a686454bdc9
|
|
| MD5 |
6f685e7d417f093f04ffd00d40e4bd6b
|
|
| BLAKE2b-256 |
19c1844df56a7bf090d171085073cf9f4b8caeabe110948cf64dcda28cac3639
|