
組み込みシステム向けの高速、ポータブル、軽量なCOSE + CBOR実装。PQC、FIPS 140-3、DO-178、MISRA Cをサポート。wolfSSL採用。
wolfCOSEは、CBOR (RFC 8949)、COSE (RFC 9052/9053)、および wolfSSL を暗号バックエンドとして使用した耐量子 ML-DSA for COSE (RFC 9964) を実装する軽量Cライブラリです。
COSE_Sign や複数受信者 COSE_Encrypt / COSE_Mac を含むCOSE_Key(AKP鍵タイプ、シードベースの秘密鍵)に対応.data/.bssもゼロ)COSE_Sign1 wolfCOSE(COSE + CBORエンジン)約5.1 KB(検証のみ)、約6.8 KB(署名+検証)。wolfCryptを含むフラッシュ合計は約26.2 KB(WOLFCOSE_LEAN_VERIFY)、約34.6 KB(署名+検証)COSE_Sign1、x86_64、wolfCrypt sp_256 asm): 66,538 署名/秒、26,437 検証/秒COSE_Sign1 のwolfCryptを含むフラッシュ合計は約20.8 KB(WOLFCOSE_LEAN_VERIFY_MLDSA)、約35.8 KB(署名+検証)。従来のES256と約1KB以内の差です。wolfCOSE部分のみではそれぞれ4.6 KBと約6.6 KBです。詳細はフットプリントを参照署名: ES256, ES384, ES512, EdDSA (Ed25519/Ed448), PS256/384/512, ML-DSA-44/65/87
暗号化: AES-GCM (128/192/256), ChaCha20-Poly1305, AES-CCM variants
MAC: HMAC-SHA256/384/512, AES-MAC
鍵配布: Direct, AES Key Wrap, ECDH-ES+HKDF
wolfCOSEはRFC 9052のすべてのメッセージを、単一アクターと複数アクターの両方のバリエーションで実装しています。
wolfCOSEは暗号バックエンドとしてwolfSSLを必要とします。最小サポートバージョン: v5.8.0-stable(公開の wc_ForceZero シンボルを含む最初のリリース)。耐量子署名は正規のFIPS 204 wc_MlDsaKey APIを使用します。このAPIはwolfSSL v5.9.1-stable以降で利用可能です。v5.8.0~v5.9.1に対してwolfCOSEをビルドすると、ML-DSA以外はすべて動作します。古い5.xリリースも技術的にはサポート可能ですが、ソースレベルの変更が必要です。商用サポートについてはwolfSSLにお問い合わせください。
必要なアルゴリズムに基づいてビルド構成を選択してください。
これにより、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
wolfCryptのフットプリントをさらに小さくするには、--enable-cryptonly を追加してTLSスタックを削除し、Sign1 + Encrypt0ビルドで使用しないアルゴリズムを無効にします。
./configure --enable-cryptonly --enable-ecc --enable-aesgcm \
--enable-sha384 --enable-sha512 --enable-keygen \
--enable-lowresource \
--disable-dh --disable-rsa --disable-aescbc \
--disable-sha --disable-md5 --disable-chacha --disable-poly1305 \
--disable-errorstrings
MCU上でwolfCOSEとwolfCryptをさらに絞り込むには、サイズ調整および速度調整を参照してください。
ML-DSA-44/65/87による純粋な耐量子署名の場合:
cd wolfssl
./autogen.sh
./configure --enable-cryptonly --enable-mldsa
make && sudo make install
sudo ldconfig
有効になるアルゴリズム: ML-DSA-44, ML-DSA-65, ML-DSA-87
(SHAKE-128/256は --enable-mldsa によって自動的に取り込まれます。wc_MlDsaKey APIにはwolfSSL v5.9.1-stableより新しいバージョンが必要です。)
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-mldsa \
--enable-hkdf --enable-aeskeywrap
make && sudo make install
sudo ldconfig
# コアライブラリ (libwolfcose.a)
make
# 単体テストの実行
make test
# CLIツールのラウンドトリップテスト(全アルゴリズム)のビルドと実行
make tool-test
# ライフサイクルデモの実行(11アルゴリズム)
make demo
完全な動作コードは examples/ を参照:
sign1_demo.c, encrypt0_demo.c, mac0_demo.c: アルゴリズムデモlifecycle_demo.c: エッジからクラウドへの完全なワークフローcomprehensive/: アルゴリズムマトリックステストscenarios/: ファームウェア署名、アテステーション、フリート設定プッシュおよびPRのたびに実行:
-fanalyzer--addon=misrabugprone-*、cert-*、clang-analyzer-*、misc-*)make coverage # gcovでテストを実行
make coverage-force-failure # 暗号失敗パステストを含める
完全なドキュメントはWikiで入手可能:
現在のリリースは 1.0.0、最初の安定リリースです。完全なRFC 9052 COSEメッセージセット(6種類すべてのメッセージタイプ、単一アクターおよび複数アクター)、40のアルゴリズム、標準化された耐量子ML-DSA(RFC 9964)、すべて動的割り当てゼロで実現しています。完全なリリースノートはChangeLog.mdを参照してください。
wolfCOSE 1.0.0はwolfSSLの開発およびQAプロセス(https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance 参照)に従って開発され、品質基準を正常に満たしています。
wolfCOSEはGPLv3のもとで提供されるフリーソフトウェアです。全文についてはLICENSEを参照してください。
Copyright (C) 2026 wolfSSL Inc.
商用ライセンス、プロフェッショナルサポート契約、またはwolfCOSEを本番環境に導入するためのご相談は、wolfSSLまでお問い合わせください。
| メッセージ | RFC 9052 | API | 目的 |
|---|
COSE_Sign1 | Sec. 4.2 | wc_CoseSign1_Sign / wc_CoseSign1_Verify | 単一署名者の署名 |
COSE_Sign | Sec. 4.1 | wc_CoseSign_Sign / wc_CoseSign_Verify | 複数署名者(同じペイロードに対する独立した署名) |
COSE_Encrypt0 | Sec. 5.2 | wc_CoseEncrypt0_Encrypt / wc_CoseEncrypt0_Decrypt | 単一受信者のAEAD |
COSE_Encrypt | Sec. 5.1 | wc_CoseEncrypt_Encrypt / wc_CoseEncrypt_Decrypt | 複数受信者(1つの暗号文、Direct / AES-KW / ECDH-ES経由で多数の受信者) |
COSE_Mac0 | Sec. 6.2 | wc_CoseMac0_Create / wc_CoseMac0_Verify | 単一受信者のMAC |
COSE_Mac | Sec. 6.1 | wc_CoseMac_Create / wc_CoseMac_Verify | 複数受信者 MAC(共有MAC鍵、受信者に配布) |
COSE_Key / COSE_KeySet | Sec. 7 | wc_CoseKey_Encode / wc_CoseKey_Decode | すべての鍵タイプの鍵シリアライゼーション |
| ターゲット | 説明 |
|---|
make all | libwolfcose.a(コアライブラリのみ)をビルド |
make shared | libwolfcose.soをビルド |
make test | CBORおよびCOSE単体テストをビルド+実行 |
make tool | CLIツール(tools/wolfcose_tool)をビルド |
make tool-test | 全17アルゴリズムのラウンドトリップ自己テスト |
make demo | ライフサイクルデモ(11アルゴリズム)をビルド+実行 |
make clean | すべてのビルド成果物を削除 |