--- id: pqcrypto version: "0.4.0" license: Apache-2.0 license_treatment: permissive maintenance: active --- # pqcrypto — Post-quantum cryptography for Python. License: permissive · Maintenance: active · Downloads: 92.1K/mo ## What it is and what it does PQCrypto wraps CFFI bindings to C implementations of post-quantum cryptographic primitives submitted to the NIST Post-Quantum Cryptography Standardization process. It provides two main cryptographic operations: Key Encapsulation Mechanisms (KEMs) for secure key establishment and digital signature algorithms for authentication and integrity. The library is designed to be composable with existing cryptographic libraries and follows the Unix philosophy of doing one thing well. The package supports multiple algorithm families including ML-KEM, ML-DSA, Falcon, SPHINCS+, HQC, and McEliece variants. It targets developers building systems that need to be resistant to future quantum computer attacks while remaining interoperable with current communication protocols. Installation is straightforward on common platforms via pre-built wheels, though it requires cffi and a C compiler for platforms without binary distributions. Use it for: - Secure key exchange in applications that need to remain confidential against future quantum threats. - Digital signatures for long-term document authenticity in regulated industries (finance, healthcare, government). - Hybrid cryptography: combining classical and post-quantum algorithms during a transition period. - Research and prototyping of quantum-resistant protocols before NIST standards are finalized. - Building cryptographic systems for infrastructure expected to operate for decades. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides Python bindings to post-quantum cryptographic algorithms (key encapsulation and digital signatures) that resist attacks from both classical and quantum computers. Yes, if you need post-quantum cryptography today. The library is actively maintained, has no known vulnerabilities, covers common platforms with pre-built wheels, and implements algorithms from the NIST standardization process. Install friction is moderate due to C bindings but manageable. Suitable for production use in applications requiring long-term confidentiality or where quantum threats are a concern. ## Install pip install pqcrypto uv add pqcrypto poetry add pqcrypto ## Installing pqcrypto Before you install: Medium install friction due to compiled C bindings via cffi, but pre-built wheels cover common platforms (macOS, Linux, Windows) and Python versions 3.9 and later. Repository is actively maintained with recent commits. License in practice: Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you must retain license notices and state changes. Quickstart: pip install pqcrypto from pqcrypto.kem.ml_kem_768 import generate_keypair, encrypt, decrypt public_key, secret_key = generate_keypair() ciphertext, plaintext = encrypt(public_key) recovered = decrypt(secret_key, ciphertext) Requires Python >=3.9; cffi dependency must compile C bindings on platforms without pre-built wheels. Verify before relying: - Whether all listed KEM and signature algorithms have reached NIST standardization or remain in draft/candidate status. - Performance characteristics (key size, signature size, operation latency) for each algorithm relative to classical alternatives. - Interoperability guarantees with other post-quantum libraries or standards bodies beyond NIST submission process. ## Package facts - License: Apache-2.0 (permissive) - Python support: supports_current - Install friction: medium - Maintenance: active - Downloads: 92.1K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags post-quantum cryptography, quantum-resistant encryption, PQC algorithms Python, KEM key encapsulation, digital signatures quantum-safe, NIST post-quantum standards, ML-KEM ML-DSA Falcon, quantum-resistant, cryptography, nist-standards [View on SkillFed](https://skillfed.io/packages/pqcrypto) · [View on PyPI](https://pypi.org/project/pqcrypto/)