
2026/05/31 5:42
wolfSSL 新製品「wolfCOSE」リリース:ゼロ・アロケーションの C 製嵌入式 COSE スタック
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
以下の改善されたサマリーは、キーポイントリストから具体的な指標および技術的な詳細を統合し、上位レベルのナラティブを損なうことなく精度を高めています。
サマリー:
wolfCOSE は、制約のある IoT および組み込み環境用に特に設計された、CBOR (RFC 8949) および COSE (RFC 9052/9053) を実装するコンパクトな C ライブラリで、wolfSSL クライプトエンジンを使用しています。その最大の特徴は、最小モードでは 7.5 KB、完全機能版では 25.6 KB の微小なリソースフットプリントであり、厳格な 动态メモリの動的割当なし (zero dynamic memory allocation) ポリシーを採用し、約 1KB の RAM で動作することです。このライブラリは包括的な 40 アルゴリズム サイートを備え、将来のセキュリティに対応しており、標準の AES-GCM (128/192/256)、ChaCha20-Poly1305、ならびに ML-DSA(バージョン 44、65、87)といった高度なポストアーク量選択肢を含んでいます。これにより、古典的および新興の暗号化脅威の両方に対応します。
信頼性は、約 99% のコードカバレッジ(コア C ファイルでは特定して 99.3%)、MISRA C:2012/2023 セーフティ基準への準拠、および Coverity Scan との統合を特徴とする厳格な開発プロセスによって保証されています。ライブラリは多様なメッセージタイプ、すなわち COSE_Sign1, COSE_Encrypt0, および COSE_Mac0 により完全な COSE ライフサイクルをサポートし、特定署名アルゴリズムである ES256/384/512, EdDSA、および様々な RSA-PSS バリエーションを使用します。
開発者は、
make all, make shared, make test という独自のターゲットを持つ柔軟なビルドシステムを介してこれらの機能を容易に統合できます。「Minimal」構成(例:ECC + AES-GCM)または ECDH および RSA-PSS を含むすべての 40 アルゴリズムを有効にする「Full」ビルドをサポートします。現在、wolfSSL により GPLv3 ライセンスの下で維持されており、商用製品ではありませんが公式状態は待機中であり、すでに FIPS 140-3 認証に必要な API を提供しています。特定のシンボルおよびポストアーク量 API にアクセスするには、wolfSSL v5.8.0-stable 以降 のバージョンが必要です。完全なドキュメントはプロジェクトの Wiki で利用可能で、API リファレンス、メッセージタイプ、およびテストガイドラインをカバーしています。本文
wolfCOSE:軽量 C ライブラリによる CBOR/COSE 実装とポスト量子暗号対応
wolfCOSE は crypto 部として wolfSSL を採用した軽量 C ライブラリであり、**CBOR(RFC 8949)およびCOSE(RFC 9052/9053)**を実装しています。
主な特徴
- 完全な RFC 9052 メッセージセット: multi-signer の
および multi-recipient のCOSE_Sign
/COSE_Encrypt
を含む、すべての 6 つの COSE メッセージタイプを実装しています。COSE_Mac - ポスト量子暗号署名: 全 3 つのセキュリティレベルで**ML-DSA(Dilithium)**をサポートしています。
- アルゴリズムの多様性: 署名、暗号化、MAC、鍵分布において計40 のアルゴリズムをサポートしています。
- 動的メモリ割り当ての非有無: すべての操作は呼び出し元が提供するバッファを使用するため、動的なメモリ割り当てを行いません。
- 極めて小さいフットプリント:
- 最小構成(Sign1+ECC)で
セクションは約 7.5 KBです(25.6 KB の完全機能版と比べても軽量)。.text
セクションは不要です。.data/.bss
- 最小構成(Sign1+ECC)で
- コンパクトなメモリ使用量: wolfCrypt の内部を除くと、全 COSE ライフサイクルを実行するのに必要な RAM は約 1KB を超えません。
- FIPS 140-3 への道筋: wolfCrypt FIPS サートリフィケート #4718(唯一の暗号依存項)を通じたFIPS 140-3 認証への道筋が開かれています。
サポートされているアルゴリズム
- 署名: ES256/384/512、EdDSA(Ed25519/Ed448)、PS256/384/512、ML-DSA-44/65/87
- 暗号化: AES-GCM(128/192/256 ビット)、ChaCha20-Poly1305、AES-CCM 系変種
- MAC: HMAC-SHA256/384/512、AES-MAC
- 鍵の配布(キーディストリビューション): Direct、AES Key Wrap、ECDH-ES+HKDF
RFC 9052 に基づく COSE メッセージタイプ
wolfCOSE は、単一アクターおよび複数アクターの両バリエーションをすべて含む RFC 9052 のメッセージを実装しています。
| メッセージ | RFC 9052 区間 | API | 用途 |
|---|---|---|---|
| Sec. 4.2 | / | 単一署名者の署名 |
| Sec. 4.1 | / | マルチ署名者(同一ペイロードに対する独立した署名) |
| Sec. 5.2 | / | 単一受信者を対象とした AEAD |
| Sec. 5.1 | / | マルチ受信者(Direct / AES-KW / ECDH-ES のいずれかを通じて一つの暗号化データを共有) |
| Sec. 6.2 | / | 単一受信者を対象とした MAC |
| Sec. 6.1 | / | マルチ受信者の MAC(共有 MAC キーを配布する) |
/ | Sec. 7 | / | すべての鍵タイプに対するシリアライズ |
前置条件 (wolfSSL)
wolfCOSE を使用するには、wolfSSL が crypto 部として必須です。
- 最小バージョン: v5.8.0-stable
- 公開 API「wc_ForceZero」、FIPS 204 最終版の ML-DSA、文脈認識 API「wc_dilithium_*_ctx_msg」を含む最初のリリースです。
- 古いバージョン: より古い
リリースも技術的にはサポート可能ですが、ソースコードレベルの変更が必要であり、商用サポートについては wolfSSL までお問い合わせください。5.x
必要なアルゴリズムに応じて以下のビルド構成を選択してください。
1. 最小構成 (ECC + AES-GCM)
この構成では、**COSE Sign1(ES256/384/512)とEncrypt0(AES-GCM)**が利用可能になります。
cd wolfssl ./autogen.sh ./configure --enable-ecc --enable-aesgcm \ --enable-sha384 --enable-sha512 --enable-keygen make && sudo make install sudo ldconfig
有効なアルゴリズム: ES256, ES384, ES512, AES-GCM-128/192/256
2. 最小構成 (ポスト量子暗号 / ML-DSA 専用)
ML-DSA-44/65/87 を使用して純粋なポスト量子暗号署名を行うための構成です。
cd wolfssl ./autogen.sh ./configure --enable-cryptonly --enable-dilithium make && sudo make install sudo ldconfig
有効なアルゴリズム: ML-DSA-44, ML-DSA-65, ML-DSA-87
※
を指定すると SHAKE-128/256 が自動的に組み込まれます。--enable-dilithium
3. 完全構成 (すべてのアルゴリズム)
cd wolfssl ./autogen.sh ./configure --enable-ecc --enable-ed25519 --enable-ed448 \ --enable-curve25519 --enable-aesgcm --enable-aesccm \ --enable-sha384 --enable-sha512 --enable-keygen \ --enable-rsapss --enable-chacha --enable-poly1305 \ --enable-dilithium --enable-hkdf --enable-aeskeywrap make && sudo make install sudo ldconfig
ビルド手順
ライブラリビルドおよびテストコマンド一覧です。
# コアライブラリ (libwolfcose.a) のビルド make # 単体テストの実行 make test # CLI ツールの回帰テスト(すべてのアルゴリズム)の実行 make tool-test # ライフサイクルデモ(11 アルゴリズム)の実行 make demo
ビルドターゲット一覧
| ターゲット | 説明 |
|---|---|
| コアライブラリのみをビルド () |
| シェアードライブラリをビルド () |
| CBOR および COSE の単体テストのビルド・実行 |
| CLI ツールをビルド () |
| すべてのアルゴリズム(17 種)に対する回帰テスト |
| ライフサイクルデモのビルド・実行(11 アルゴリズム) |
| ビルド生成物をすべて削除 |
クイックスタート
完全な動作確認コードは
examples/ 配下にあります:
- デモ用サンプル:
,sign1_demo.c
,encrypt0_demo.c
: アルゴリズムのデモ用サンプルmac0_demo.c
: エッジからクラウドまでの全ワークフローの実装例lifecycle_demo.c
- テスト・シナリオ:
: すべてのアルゴリズム組み合わせに関するテストマトリクスcomprehensive/
: ファームウェア署名、アテステーション、機隊構成などのシナリオ例scenarios/
CI / テスト体制
各プッシュおよび PR で自動的に実行されるテストです。
- ビルドとテスト: Ubuntu, macOS, GCC 10〜14, Clang 14〜18
- 包括的テスト: アルゴリズム組み合わせ約240 ケースのテスト
- 静的解析ツール: cppcheck, Clang analyzer, GCC -fanalyzer
- MISRA C 2012:
を用いた wolfCOSE コード全パスのチェックcppcheck --addon=misra - MISRA C 2023: 厳格な GCC ウォーニングおよび clang-tidy(bugprone-, cert-, clang-analyzer-, misc- など)による確認
- Coverity Scan: nightly の欠陥分析
- 高度内部静的解析: Fenrir wolfssl 社の高度な静的解析ツール
- コードカバレッジ:
は99.3%、wolfcose.c
は100%wolfcose_cbor.c
make coverage # gcov を使用してテストを実行 make coverage-force-failure # 暗号化失敗経路のテストを含めて実行
ドキュメント
詳細なドキュメントは Wiki に用意されています:
- Getting Started: ビルド手順と初期ステップ
- Message Types: Sign1, Sign, Encrypt0, Encrypt, Mac0, Mac のすべての RFC 9052 メッセージとコードサンプル
- Algorithms: COSE ID を伴う全40 のアルゴリズムの一覧
- API Reference: 関数のシグネチャ、データ構造、エラーコード
- Macros: コンパイル時設定オプション
- Testing: テストインフラストラクチャ、カバレッジ、失敗注入について
- MISRA Compliance: MISRA C:2012 および C:2023 への準拠状況と逸脱理由
- Project Structure: ソースファイルの構成
ブログ
ブログ記事およびアップデートは wolfCOSE Blogs で確認できます。
ライセンス
wolfCOSE は GPLv3 のライセンス契約下にあるフリーソフトウェアです。 Copyright (C) 2026 wolfSSL Inc.
サポートについて
- ステータス: wolfCOSE は現在、wolfSSL 開発者によってメンテナンスされていますが、まだ正式にサポートされた製品として分類されていません。
- 将来の普及を見据え、wolfSSL スイートの他の製品と同様の高品質基準を満たすように設計されました。
- 需要の高まりに伴い、本ソフトウェアを完全にサポートされた製品へ移行することに意欲を持っています。
- お問い合わせ:
- 法人様が公式サポートをご希望の場合
- 特定の機能要件が必要である場合
- 製品の一般的なご質問やガイドラインについてお知りになりたい場合は、ぜひお気軽にお問い合わせください。
商用ライセンス契約、専門的なサポート契約のご相談、または wolfCOSE を本番環境に導入するためのディスカッションについては、wolfSSL までご連絡ください。