[FEATURE] Vendor PQCP and Ed448-Goldilocks for Post-Quantum WAMP
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Área
- build-system, cryptography, security
Línea de trabajo
Comienza revisando las fuentes propuestas para src/autobahn/vendor/ y los puntos de integración existentes de CFFI en el repositorio. Después, inspecciona las pipelines de cibuildwheel y la discusión vinculada wamp-proto/wamp-proto#564. Se considera terminado cuando las fuentes vendored de PQCP y libdecaf, los wrappers de CFFI y las compilaciones de wheels manylinux y musllinux solicitadas estén integrados de forma coherente con la propuesta.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
Following the discussion in wamp-proto/wamp-proto#564, this issue proposes the vendoring of the PQ Code Package (PQCP) and Mike Hamburg’s libdecaf (Ed448-Goldilocks) into autobahn-python.
The goal is to provide a "Defense-Grade," zero-dependency, and high-performance implementation of Post-Quantum Cryptography (PQC) and High-Strength Classical ECC for the WAMP ecosystem, specifically targeting ML-KEM (FIPS 203) and ML-DSA (FIPS 204).
Motivation
As we move toward a Quantum-Resistant WAMP (WAMP-PQC), the protocol requires hybrid cryptographic schemes that combine classical security (Ed25519/Ed448) with lattice-based security (ML-KEM/ML-DSA).
While libraries like libsodium provide excellent support for Ed25519, they lack Ed448 and NIST-finalized PQC algorithms. To maintain Autobahn's standard of "Zero-Config" installation and high portability, we must internalize these primitives.
Proposed Implementation Strategy
1. Direct Upstream Vendoring
We will vendor the following sources directly into src/autobahn/vendor/:
- PQCP (PQ Code Package): Utilizing mlkem-native and mldsa-native. This is the Linux Foundation-backed successor to PQClean, providing C90-compliant, formally verified, and SIMD-optimized PQC.
- libdecaf (Ed448-Goldilocks): Sourced from Mike Hamburg’s upstream (SourceForge) - using
git://git.code.sf.net/p/ed448goldilocks/code- and verified against Debian's security patches. This fills the gap for 256-bit security level signatures thatlibsodiumdoes not address.
2. CFFI Wrapping
Consistent with our performance goals:
- We will wrap these C libraries using CFFI rather than CPyExt.
- This ensures optimal performance on PyPy via JIT-inlining while remaining highly efficient on CPython.
- It avoids the maintenance burden of the CPython C API and the performance penalties of
ctypes.
3. High-Performance Multi-Arch Wheels
We will update our cibuildwheel pipelines to publish manylinux and musllinux wheels for:
- x86-64: Leveraging AVX2 optimizations for NTT (Number Theoretic Transform).
- ARM64 (aarch64): Leveraging Neon instructions for high-speed PQC on ARM-based servers and high-end IoT (like Cortex-A).
Proposed Security Tiers
| Tier | Hybrid Combination | Use Case |
|---|---|---|
| Standard | Ed25519 + ML-DSA-65 | General Purpose WAMP-Cryptosign |
| High-Strength | Ed448 + ML-DSA-87 | Defense / U.S. DoD CUI / Critical Infrastructure |
| Key Exchange | X25519 + ML-KEM-768 | Encrypted Payloads / Session Keys |
Benefits
- Zero Dependencies: No requirement for users to install
liboqs,openssl-dev, orcmake. - Defense-Grade: Aligns with NIST FIPS 203/204 and NSA CNSA 2.0 requirements.
- Embedded-Ready: By vendoring the native C source, we pave the way for cross-compilation to restricted environments (e.g., Cortex-M33).
Reference
Checklist
- I have searched existing issues to avoid duplicates
- I have described the problem clearly
- I have provided use cases
- I have considered alternatives
- I have assessed impact and breaking changes
- Lenguaje dominante
- Python
- Estrellas
- 2.5k
- Forks
- 767
- Merge medio
- 12 h 40 min
- PR fusionados (30 d)
- 20
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de crossbario/autobahn-python
-
CI-CD enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
crossbario/autobahn-python#1945 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug CI-CD
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
crossbario/autobahn-python#1932 ·
Los mantenedores suelen responder en 1 día
-
CI-CD enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
crossbario/autobahn-python#1829 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug CI-CD
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
crossbario/autobahn-python#2013 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
crossbario/autobahn-python#1963 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de crossbario/autobahn-python
Issues similares
-
getchaintips leaves out the active tip once a header is staged on it, where Core always lists itAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
btclib-org/btclib-node#2158 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
dbt-msft/dbt-sqlserver#897 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Gathin23/cleanyourtv#2770 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
vllm-project/vllm#64845 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
dekobon/big-code-analysis#1729 ·
Los mantenedores suelen responder en 1 día