Zurück zu den Updates
New releaseSep 19, 2026

wolfCOSE v2.0.0

Eine schnelle, portable und leichtgewichtige Implementierung von COSE + CBOR für eingebettete Systeme. Unterstützt PQC, FIPS 140-3, DO-178 und MISRA C. Basiert auf wolfSSL.

Teilen

wolfCOSE

wolfCOSE ist eine leichtgewichtige und schnelle C-Bibliothek, die die Kernstandards CBOR und COSE implementiert und für die Kryptographie auf wolfSSL aufbaut.

Unterstützte Standards & RFCs

  • Kernspezifikationen:
    • RFC 8949 - Concise Binary Object Representation (CBOR)
    • RFC 9052 - CBOR Object Signing and Encryption (COSE)
    • RFC 9053 - COSE-Algorithmen
    • RFC 9864 - Fully-Specified Algorithms for JOSE and COSE
    • RFC 9338 - COSE Countersignatures
  • Post-Quanten-Kryptographie:
  • Attestierung:
    • RFC 9783 - PSA Attestation Token Profile of EAT

Hauptmerkmale

  • Vollständige COSE-Suite (RFC 9052): Vollständige Unterstützung aller sechs Nachrichtentypen, einschließlich COSE_Sign1, COSE_Encrypt0 und COSE_Mac0.
  • V2-Countersignaturen (RFC 9338): Vollständige und abgekürzte In-Place-Countersignaturen über alle sechs getaggten COSE-Nachrichtentypen hinweg.
  • Post-Quanten-Kryptographie:
    • ML-DSA (FIPS 204 / RFC 9964) auf allen Sicherheitsstufen.
    • HSS/LMS zustandsbehaftete hashbasierte Signierung (RFC 8778 / CNSA 2.0).
  • Hohe Performance: Auf einem Intel i9-11950H erreicht End-to-End COSE_Sign1 66.538 Sign/s und 26.437 Verify/s mit ES256 sowie 21.986 Sign/s und 53.686 Verify/s mit ML-DSA-44. Siehe die Details zu Performance und Footprint und wolfCOSE vs. The Field.
  • PSA-Attestierung: EAT-/PSA-Token-Ausstellung und -Verifikation mit Unterstützung für delegierte HSM-Signierung.
  • 41 kryptographische Algorithmen: Breite Algorithmusabdeckung über Signierung, Verschlüsselung, MAC und Schlüsselverteilung.
  • Embedded-First-Design: Keine dynamische Speicherallokation (kein Heap, kein .data/.bss). Arbeitet mit vom Aufrufer bereitgestellten Puffern bei begrenzter Stack-Nutzung.
  • FIPS 140-3-Pfad: Verwendet wolfCrypt (FIPS-Zertifikat #4718) als einzige kryptographische Abhängigkeit.
  • STM32-Integration: Drop-in-STM32Cube-Pack (I-CUBE-wolfCOSE) für STM32CubeMX / IDE verfügbar (Details).

Unterstützte Algorithmen

  • Digitale Signaturen:
    • Klassisch: ESP256, ESP384, ESP512, Ed25519, Ed448, PS256, PS384, PS512
    • Post-Quanten: ML-DSA-44, ML-DSA-65, ML-DSA-87
    • Zustandsbehaftet hashbasiert: HSS-LMS
  • Verschlüsselung (AEAD):
    • AES-GCM (128 / 192 / 256)
    • AES-CCM (Varianten)
    • ChaCha20-Poly1305
  • Nachrichtenauthentifizierung (MAC):
    • HMAC-SHA256, HMAC-SHA384, HMAC-SHA512
    • AES-MAC
  • Schlüsselverteilung:
    • Direct
    • AES Key Wrap
    • ECDH-ES + HKDF

COSE-Nachrichtentypen (RFC 9052)

wolfCOSE hat alle RFC 9052-Nachrichten sowohl als Single-Actor- als auch als Multi-Actor-Varianten implementiert:

NachrichtRFC 9052APIZweck
COSE_Sign1Abschn. 4.2wc_CoseSign1_Sign / wc_CoseSign1_VerifySignatur mit einem Unterzeichner
COSE_SignAbschn. 4.1wc_CoseSign_Sign / wc_CoseSign_VerifyMulti-Signer (unabhängige Signaturen über dieselbe Nutzlast)
COSE_Encrypt0Abschn. 5.2wc_CoseEncrypt0_Encrypt / wc_CoseEncrypt0_DecryptAEAD mit einem Empfänger
COSE_EncryptAbschn. 5.1wc_CoseEncrypt_Encrypt / wc_CoseEncrypt_DecryptMulti-Empfänger (ein Chiffrat, viele Empfänger über Direct / AES-KW / ECDH-ES)
COSE_Mac0Abschn. 6.2wc_CoseMac0_Create / wc_CoseMac0_VerifyMAC mit einem Empfänger
COSE_MacAbschn. 6.1wc_CoseMac_Create / wc_CoseMac_VerifyMulti-Empfänger-MAC (gemeinsamer MAC-Schlüssel, an Empfänger verteilt)
COSE_Key / COSE_KeySetAbschn. 7wc_CoseKey_Encode / wc_CoseKey_DecodeSchlüsselserialisierung für alle Schlüsseltypen

RFC 9338-Countersignaturen können an jede getaggte Nachricht in dieser Tabelle angehängt werden. Verwenden Sie wc_Cose_AddCounterSignature() oder wc_Cose_AddCounterSignature0(), um eine hinzuzufügen, und verifizieren Sie sie dann unabhängig mit der entsprechenden wc_Cose_VerifyCounterSignature*()-API.

Abhängigkeiten (wolfSSL)

wolfCOSE benötigt wolfSSL als Krypto-Backend. Mindestens unterstützte Version: v5.8.0-stable. Einige optionale Algorithmen benötigen neuere Releases; siehe Getting Started für merkmalspezifische Abhängigkeitsuntergrenzen und Build-Anweisungen. HSS/LMS (RFC 8778) erfordert v5.9.2-stable oder neuer.

Wählen Sie eine Build-Konfiguration basierend auf den Algorithmen, die Sie benötigen.

Minimaler Build (ECC + AES-GCM)

Dies liefert Ihnen COSE Sign1 (ESP256/384/512) und Encrypt0 (AES-GCM):

cd wolfssl
./autogen.sh
./configure --enable-ecc --enable-aesgcm \
            --enable-sha384 --enable-sha512 --enable-keygen
make && sudo make install
sudo ldconfig

Aktivierte Algorithmen: ESP256, ESP384, ESP512, AES-GCM-128/192/256

Für einen kleineren wolfCrypt-Footprint fügen Sie --enable-cryptonly hinzu, um den TLS- Stack zu entfernen und die Algorithmen zu deaktivieren, die ein Sign1 + Encrypt0-Build nie verwendet:

./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

Siehe Tuning for Size und Tuning for Speed für weitere Optimierungen von wolfCOSE und wolfCrypt auf MCUs.

Minimaler Build (nur Post-Quanten / ML-DSA)

Für reine Post-Quanten-Signierung mit ML-DSA-44/65/87:

cd wolfssl
./autogen.sh
./configure --enable-cryptonly --enable-mldsa
make && sudo make install
sudo ldconfig

Aktivierte Algorithmen: ML-DSA-44, ML-DSA-65, ML-DSA-87 (SHAKE-128/256 werden automatisch durch --enable-mldsa eingebunden. Die wc_MlDsaKey-API erfordert wolfSSL neuer als v5.9.1-stable.)

Vollständiger Build (alle Algorithmen)

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-lms \
            --enable-hkdf --enable-aeskeywrap
make && sudo make install
sudo ldconfig

Build

# Core library (libwolfcose.a)
make

# Run unit tests
make test

# Build and run CLI tool round-trip tests (all algorithms)
make tool-test

# Run lifecycle demo (11 algorithms)
make demo

Build-Ziele

Kategorien