
एम्बेडेड सिस्टम के लिए एक तेज़, पोर्टेबल और हल्का COSE + CBOR कार्यान्वयन। PQC, FIPS 140-3, DO-178, और MISRA C का समर्थन करता है। wolfSSL द्वारा संचालित।
wolfCOSE एक हल्का और तेज़ C लाइब्रेरी है जो मुख्य CBOR और COSE मानकों को लागू करता है, जिसमें क्रिप्टोग्राफी के लिए wolfSSL का समर्थन है।
COSE_Sign1, COSE_Encrypt0, और COSE_Mac0 शामिल हैं।COSE_Sign1 ES256 के साथ 66,538 sign/s और 26,437 verify/s तक पहुँचता है, और ML-DSA-44 के साथ 21,986 sign/s और 53,686 verify/s। प्रदर्शन और फुटप्रिंट विवरण और wolfCOSE बनाम द फील्ड देखें।.data/.bss)। कॉलर-आपूर्ति बफ़र्स पर सीमित स्टैक उपयोग के साथ संचालित होता है।I-CUBE-wolfCOSE) उपलब्ध (विवरण)।ESP256, ESP384, ESP512, Ed25519, Ed448, PS256, PS384, PS512ML-DSA-44, ML-DSA-65, ML-DSA-87HSS-LMSAES-GCM (128 / 192 / 256)AES-CCM (वेरिएंट)ChaCha20-Poly1305HMAC-SHA256, HMAC-SHA384, HMAC-SHA512AES-MACDirectAES Key WrapECDH-ES + HKDFwolfCOSE ने सभी RFC 9052 संदेशों को सिंगल-एक्टर और मल्टी-एक्टर दोनों वेरिएंट में लागू किया है:
| संदेश | 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 | मल्टी-रिसिपिएंट (एक सिफरटेक्स्ट, 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 | सभी कुंजी प्रकारों के लिए कुंजी सीरियलाइज़ेशन |
RFC 9338 काउंटरसिग्नेचर इस तालिका में किसी भी टैग किए गए संदेश से जोड़े जा सकते हैं। एक जोड़ने के लिए wc_Cose_AddCounterSignature() या wc_Cose_AddCounterSignature0() का उपयोग करें, फिर संबंधित wc_Cose_VerifyCounterSignature*() API के साथ स्वतंत्र रूप से सत्यापित करें।
wolfCOSE को अपने क्रिप्टो बैकएंड के रूप में wolfSSL की आवश्यकता है। न्यूनतम समर्थित संस्करण: v5.8.0-stable। कुछ वैकल्पिक एल्गोरिदम के लिए नए रिलीज़ की आवश्यकता होती है; फीचर-विशिष्ट निर्भरता सीमाओं और बिल्ड निर्देशों के लिए Getting Started देखें। HSS/LMS (RFC 8778) के लिए v5.9.2-stable या बाद का संस्करण आवश्यक है।
आपको जिन एल्गोरिदम की आवश्यकता है, उनके आधार पर बिल्ड कॉन्फ़िगरेशन चुनें।
यह आपको COSE Sign1 (ESP256/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
सक्षम एल्गोरिदम: ESP256, ESP384, ESP512, AES-GCM-128/192/256
छोटे wolfCrypt फुटप्रिंट के लिए, TLS स्टैक को हटाने और उन एल्गोरिदम को अक्षम करने के लिए --enable-cryptonly जोड़ें जिनका 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 को और अधिक अनुकूलित करने के लिए Tuning for Size और Tuning for Speed देखें।
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 के लिए v5.9.1-stable से नए wolfSSL की आवश्यकता है।)
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