
Una implementación rápida, portátil y ligera de COSE + CBOR para sistemas embebidos. Admite PQC, FIPS 140-3, DO-178 y MISRA C. Desarrollado por wolfSSL.
wolfCOSE es una biblioteca C ligera y rápida que implementa los estándares básicos CBOR y COSE, respaldada por wolfSSL para criptografía.
COSE_Sign1, COSE_Encrypt0 y COSE_Mac0.COSE_Sign1 de extremo a extremo alcanza 66.538 firmas/s y 26.437 verificaciones/s con ES256, y 21.986 firmas/s y 53.686 verificaciones/s con ML-DSA-44. Consulte los detalles de rendimiento y huella y wolfCOSE vs. The Field..data/.bss). Opera sobre búferes proporcionados por el llamador con uso de pila acotado.I-CUBE-wolfCOSE) disponible para STM32CubeMX / IDE (Detalles).ESP256, ESP384, ESP512, Ed25519, Ed448, PS256, PS384, PS512ML-DSA-44, ML-DSA-65, ML-DSA-87HSS-LMSAES-GCM (128 / 192 / 256)AES-CCM (variantes)ChaCha20-Poly1305HMAC-SHA256, HMAC-SHA384, HMAC-SHA512AES-MACDirectAES Key WrapECDH-ES + HKDFwolfCOSE ha implementado todos los mensajes del RFC 9052 tanto en variantes de un solo actor como multi-actor:
| Mensaje | RFC 9052 | API | Propósito |
|---|---|---|---|
COSE_Sign1 | Sec. 4.2 | wc_CoseSign1_Sign / wc_CoseSign1_Verify | Firma de un solo firmante |
COSE_Sign | Sec. 4.1 | wc_CoseSign_Sign / wc_CoseSign_Verify | Multi-firmante (firmas independientes sobre el mismo payload) |
COSE_Encrypt0 | Sec. 5.2 | wc_CoseEncrypt0_Encrypt / wc_CoseEncrypt0_Decrypt | AEAD de un solo destinatario |
COSE_Encrypt | Sec. 5.1 | wc_CoseEncrypt_Encrypt / wc_CoseEncrypt_Decrypt | Multi-destinatario (un ciphertext, muchos destinatarios vía Direct / AES-KW / ECDH-ES) |
COSE_Mac0 | Sec. 6.2 | wc_CoseMac0_Create / wc_CoseMac0_Verify | MAC de un solo destinatario |
COSE_Mac | Sec. 6.1 | wc_CoseMac_Create / wc_CoseMac_Verify | MAC multi-destinatario (clave MAC compartida, distribuida a los destinatarios) |
COSE_Key / COSE_KeySet | Sec. 7 | wc_CoseKey_Encode / wc_CoseKey_Decode | Serialización de claves para todos los tipos de clave |
Las contrafirmas del RFC 9338 se pueden adjuntar a cualquier mensaje etiquetado en esta
tabla. Use wc_Cose_AddCounterSignature() o
wc_Cose_AddCounterSignature0() para añadir una, y luego verifíquela de forma independiente con
la API correspondiente wc_Cose_VerifyCounterSignature*().
wolfCOSE requiere wolfSSL como su backend criptográfico. Versión mínima compatible: v5.8.0-stable. Algunos algoritmos opcionales requieren versiones más recientes; consulte Getting Started para los mínimos de dependencia específicos de cada característica y las instrucciones de compilación. HSS/LMS (RFC 8778) requiere v5.9.2-stable o posterior.
Elija una configuración de compilación según los algoritmos que necesite.
Esto le proporciona COSE Sign1 (ESP256/384/512) y Encrypt0 (AES-GCM):
cd wolfssl
./autogen.sh
./configure --enable-ecc --enable-aesgcm \
--enable-sha384 --enable-sha512 --enable-keygen
make && sudo make install
sudo ldconfig
Algoritmos habilitados: ESP256, ESP384, ESP512, AES-GCM-128/192/256
Para una huella de wolfCrypt más pequeña, añada --enable-cryptonly para eliminar la pila
TLS y deshabilitar los algoritmos que una compilación de Sign1 + Encrypt0 nunca usa:
./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
Consulte Tuning for Size y Tuning for Speed para reducir aún más wolfCOSE y wolfCrypt en MCUs.
Para firma puramente post-cuántica con ML-DSA-44/65/87:
cd wolfssl
./autogen.sh
./configure --enable-cryptonly --enable-mldsa
make && sudo make install
sudo ldconfig
Algoritmos habilitados: ML-DSA-44, ML-DSA-65, ML-DSA-87
(SHAKE-128/256 se incluyen automáticamente con --enable-mldsa. La
API wc_MlDsaKey requiere wolfSSL más reciente que 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-lms \
--enable-hkdf --enable-aeskeywrap
make && sudo make install
sudo ldconfig
# 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