
wolfCOSE v2.0.0
एम्बेडेड सिस्टम के लिए एक तेज़, पोर्टेबल और हल्का COSE + CBOR कार्यान्वयन। PQC, FIPS 140-3, DO-178, और MISRA C का समर्थन करता है। wolfSSL द्वारा संचालित।
wolfCOSE
wolfCOSE एक हल्की C लाइब्रेरी है जो CBOR (RFC 8949), COSE (RFC 9052/9053), और पोस्ट-क्वांटम ML-DSA for COSE (RFC 9964) को wolfSSL क्रिप्टो बैकएंड के रूप में उपयोग करके कार्यान्वित करती है।
मुख्य विशेषताएं
- पूर्ण RFC 9052 संदेश सेट: सभी छह COSE संदेश प्रकार, जिसमें बहु-हस्ताक्षरकर्ता
COSE_Signऔर बहु-प्राप्तकर्ताCOSE_Encrypt/COSE_Macशामिल हैं - पोस्ट-क्वांटम हस्ताक्षर: ML-DSA (FIPS 204) सभी तीन सुरक्षा स्तरों पर, RFC 9964
COSE_Key(AKP कुंजी प्रकार, बीज-आधारित निजी कुंजी) के साथ - हस्ताक्षर, एन्क्रिप्शन, MAC, और कुंजी वितरण में 40 एल्गोरिदम
- शून्य गतिशील आवंटन: हीप-आवंटन-मुक्त और गैर-पुनरावर्ती। प्रत्येक संचालन कॉलर-प्रदत्त बफ़र्स पर चलता है
एक सीमित, लक्ष्य-अनुकूलन योग्य स्टैक सीमा के भीतर (हीप पर कुछ नहीं, शून्य
.data/.bss) - छोटा फुटप्रिंट: ES256
COSE_Sign1wolfCOSE (COSE + CBOR इंजन) ~5.1 KB केवल-सत्यापन और ~6.8 KB हस्ताक्षर + सत्यापन। wolfCrypt सहित कुल फ्लैश ~26.2 KB केवल-सत्यापन (WOLFCOSE_LEAN_VERIFY) और ~34.6 KB हस्ताक्षर + सत्यापन है - तेज़: (ES256
COSE_Sign1, x86_64, wolfCryptsp_256asm): 66,538 हस्ताक्षर/सेकंड, 26,437 सत्यापन/सेकंड - समान लागत पर पोस्ट-क्वांटम: ML-DSA-44
COSE_Sign1का wolfCrypt सहित कुल फ्लैश ~20.8 KB केवल-सत्यापन है (WOLFCOSE_LEAN_VERIFY_MLDSA) और ~35.8 KB हस्ताक्षर + सत्यापन, जो क्लासिकल ES256 के लगभग 1 KB के भीतर है। केवल wolfCOSE भाग क्रमशः 4.6 KB और ~6.6 KB है। फुटप्रिंट देखें - FIPS 140-3 का मार्ग: wolfCrypt FIPS प्रमाणपत्र #4718 (एकमात्र क्रिप्टो निर्भरता) के माध्यम से
समर्थित एल्गोरिदम
हस्ताक्षर: 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
COSE संदेश प्रकार (RFC 9052)
wolfCOSE ने सभी RFC 9052 संदेशों को एकल-अभिनेता और बहु-अभिनेता दोनों प्रकारों में लागू किया है:
| संदेश | 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 | सभी कुंजी प्रकारों के लिए कुंजी क्रमांकन |
पूर्वापेक्षाएँ (wolfSSL)
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 से संपर्क करें।
अपनी आवश्यकता के अनुसार एल्गोरिदम के आधार पर बिल्ड कॉन्फ़िगरेशन चुनें।
न्यूनतम बिल्ड (ECC + AES-GCM)
यह आपको 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)
शुद्ध पोस्ट-क्वांटम हस्ताक्षर 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
बिल्ड लक्ष्य
| लक्ष्य | विवरण |
|---|---|
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 | सभी बिल्ड आर्टिफैक्ट हटाएँ |
त्वरित प्रारंभ
उदाहरण
पूर्ण कार्यशील कोड के लिए examples/ देखें:
sign1_demo.c,encrypt0_demo.c,mac0_demo.c: एल्गोरिदम डेमोlifecycle_demo.c: पूर्ण एज-टू-क्लाउड वर्कफ़्लोcomprehensive/: एल्गोरिदम मैट्रिक्स परीक्षणscenarios/: फर्मवेयर हस्ताक्षर, प्रमाणीकरण, फ्लीट कॉन्फ़िग
CI / परीक्षण
प्रत्येक पुश और PR पर चलता है:
- बिल्ड + परीक्षण: Ubuntu, macOS, GCC 10-14, Clang 14-18
- व्यापक परीक्षण: ~240 एल्गोरिदम संयोजन परीक्षण
- स्थैतिक विश्लेषण: cppcheck, Clang विश्लेषक, GCC
-fanalyzer - MISRA C 2012: सभी wolfCOSE कोड पथों की जाँच करते हुए cppcheck
--addon=misra - MISRA C 2023: सख्त GCC चेतावनियाँ और clang-tidy (
bugprone-*,cert-*,clang-analyzer-*,misc-*) - Coverity स्कैन: रात्रिकालीन दोष विश्लेषण
- उन्नत आंतरिक स्थैतिक विश्लेषण: Fenrir wolfssl उन्नत स्थैतिक विश्लेषण उपकरण
- कोड कवरेज: wolfcose.c के लिए 99.3%, wolfcose_cbor.c के लिए 100%
make coverage # gcov के साथ परीक्षण चलाएँ
make coverage-force-failure # क्रिप्टो विफलता पथ परीक्षण शामिल करें
दस्तावेज़ीकरण
पूर्ण दस्तावेज़ीकरण विकी में उपलब्ध है:
- Getting Started: बिल्ड निर्देश और पहले कदम
- Message Types: कोड नमूनों के साथ सभी छह RFC 9052 संदेश (Sign1, Sign, Encrypt0, Encrypt, Mac0, Mac)
- Algorithms: COSE आईडी के साथ 40 समर्थित एल्गोरिदम की पूरी सूची
- API Reference: फ़ंक्शन हस्ताक्षर, डेटा संरचनाएँ, त्रुटि कोड
- Macros: संकलन-समय कॉन्फ़िगरेशन विकल्प
- Footprint: आकार और गति संख्याएँ, डेस्कटॉप और डिवाइस पर
- Testing: परीक्षण बुनियादी ढाँचा, कवरेज, और विफलता इंजेक्शन
- MISRA Compliance: MISRA C:2012 और C:2023 अनुपालन स्थिति और विचलन तर्क
- Project Structure: स्रोत फ़ाइल लेआउट
रिलीज़ नोट्स
वर्तमान रिलीज़ 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 से संपर्क करें।