
एम्बेडेड सिस्टम के लिए एक तेज़, पोर्टेबल और हल्का COSE + CBOR कार्यान्वयन। PQC, FIPS 140-3, DO-178, और MISRA C का समर्थन करता है। wolfSSL द्वारा संचालित।
wolfCOSE एक हल्की C लाइब्रेरी है जो CBOR (RFC 8949), COSE (RFC 9052/9053), और पोस्ट-क्वांटम ML-DSA for COSE (RFC 9964) को wolfSSL क्रिप्टो बैकएंड के रूप में उपयोग करके कार्यान्वित करती है।
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 के लगभग 1 KB के भीतर है। केवल 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 वेरिएंट
MAC: HMAC-SHA256/384/512, AES-MAC
कुंजी वितरण: प्रत्यक्ष, AES कुंजी रैप, ECDH-ES+HKDF
wolfCOSE ने सभी RFC 9052 संदेशों को एकल-अभिनेता और बहु-अभिनेता दोनों प्रकारों में लागू किया है:
wolfCOSE को अपने क्रिप्टो बैकएंड के रूप में wolfSSL की आवश्यकता है। न्यूनतम समर्थित संस्करण: v5.8.0-stable (सार्वजनिक wc_ForceZero प्रतीक के साथ पहला रिलीज़)। पोस्ट-क्वांटम हस्ताक्षर विहित FIPS 204 wc_MlDsaKey API का उपयोग करता है, जो wolfSSL v5.9.1-stable के बाद आता है; wolfCOSE को v5.8.0–v5.9.1 के विरुद्ध बनाना 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 फुटप्रिंट के लिए, 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 को और कम करने के लिए आकार के लिए ट्यूनिंग और गति के लिए ट्यूनिंग देखें।
शुद्ध पोस्ट-क्वांटम हस्ताक्षर 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 # क्रिप्टो विफलता पथ परीक्षण शामिल करें
पूर्ण दस्तावेज़ीकरण विकी में उपलब्ध है:
वर्तमान रिलीज़ 1.0.0 है, पहला स्थिर रिलीज़: पूर्ण RFC 9052 COSE संदेश सेट (सभी छह संदेश प्रकार, एकल- और बहु-अभिनेता), 40 एल्गोरिदम, और मानकीकृत पोस्ट-क्वांटम ML-DSA (RFC 9964), सभी शून्य गतिशील आवंटन के साथ। पूर्ण रिलीज़ नोट्स के लिए ChangeLog.md देखें।
wolfCOSE 1.0.0 को wolfSSL की विकास और गुणवत्ता आश्वासन प्रक्रिया (https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance देखें) के अनुसार विकसित किया गया है और इसने गुणवत्ता मानदंडों को सफलतापूर्वक पारित किया है।
wolfCOSE GPLv3 के तहत लाइसेंस प्राप्त मुफ्त सॉफ्टवेयर है; पूर्ण पाठ के लिए LICENSE देखें।
कॉपीराइट (C) 2026 wolfSSL Inc.
व्यावसायिक लाइसेंसिंग, पेशेवर समर्थन अनुबंध, या wolfCOSE को अपने उत्पादन वातावरण में स्थानांतरित करने पर चर्चा करने के लिए, wolfSSL से संपर्क करें।
| संदेश | RFC 9052 | API | उद्देश्य |
|---|
COSE_Sign1 | धारा 4.2 | wc_CoseSign1_Sign / wc_CoseSign1_Verify | एकल-हस्ताक्षरकर्ता हस्ताक्षर |
COSE_Sign | धारा 4.1 | wc_CoseSign_Sign / wc_CoseSign_Verify | बहु-हस्ताक्षरकर्ता (समान पेलोड पर स्वतंत्र हस्ताक्षर) |
COSE_Encrypt0 | धारा 5.2 | wc_CoseEncrypt0_Encrypt / wc_CoseEncrypt0_Decrypt | एकल-प्राप्तकर्ता AEAD |
COSE_Encrypt | धारा 5.1 | wc_CoseEncrypt_Encrypt / wc_CoseEncrypt_Decrypt | बहु-प्राप्तकर्ता (एक सिफरटेक्स्ट, Direct / AES-KW / ECDH-ES के माध्यम से कई प्राप्तकर्ता) |
COSE_Mac0 | धारा 6.2 | wc_CoseMac0_Create / wc_CoseMac0_Verify | एकल-प्राप्तकर्ता MAC |
COSE_Mac | धारा 6.1 | wc_CoseMac_Create / wc_CoseMac_Verify | बहु-प्राप्तकर्ता MAC (साझा MAC कुंजी, प्राप्तकर्ताओं को वितरित) |
COSE_Key / COSE_KeySet | धारा 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 | सभी बिल्ड आर्टिफैक्ट हटाएँ |