[FEATURE] Vendor PQCP and Ed448-Goldilocks for Post-Quantum WAMP
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 30/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
調査の方向性
まず、src/autobahn/vendor/ に対して提案されているソースと、リポジトリ内の既存の CFFI 統合ポイントを確認します。次に、cibuildwheel パイプラインと、リンクされている wamp-proto/wamp-proto#564 の議論を調査します。提案に沿って、vendored の PQCP および libdecaf ソース、CFFI ラッパー、要求されている manylinux および musllinux の wheel ビルドが一貫して統合されていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Python
- スター
- 2.5k
- フォーク
- 769
- 平均マージ
- 1日 11時間
- マージ済み PR(30日)
- 16
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
crossbario/autobahn-python のほかの issue
-
CI-CD enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
crossbario/autobahn-python#1945 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug CI-CD
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
crossbario/autobahn-python#1932 ·
メンテナーはふだん 1 日以内に返信
-
CI-CD enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
crossbario/autobahn-python#1829 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 22/100
crossbario/autobahn-python#1985 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
crossbario/autobahn-python#1963 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
crossbario/autobahn-python の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
aws-samples/sample-per-model-bedrock#295 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 76/100
pyrevitlabs/pyRevit#3792 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
zephyrproject-rtos/reqmgmt#177 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
polarsource/polar#15580 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
521xueweihan/HelloGitHub#4011 ·