अपडेट पर वापस जाएँ
New releaseSep 19, 2026

wolfCOSE v2.0.0

एम्बेडेड सिस्टम के लिए एक तेज़, पोर्टेबल और हल्का COSE + CBOR कार्यान्वयन। PQC, FIPS 140-3, DO-178, और MISRA C का समर्थन करता है। wolfSSL द्वारा संचालित।

साझा करें

wolfCOSE

wolfCOSE एक हल्का और तेज़ C लाइब्रेरी है जो मुख्य CBOR और COSE मानकों को लागू करता है, जिसमें क्रिप्टोग्राफी के लिए wolfSSL का समर्थन है।

समर्थित मानक और RFC

  • मुख्य विनिर्देश:
    • RFC 8949 - संक्षिप्त बाइनरी ऑब्जेक्ट रिप्रेजेंटेशन (CBOR)
    • RFC 9052 - CBOR ऑब्जेक्ट साइनिंग और एन्क्रिप्शन (COSE)
    • RFC 9053 - COSE एल्गोरिदम
    • RFC 9864 - JOSE और COSE के लिए पूर्ण-निर्दिष्ट एल्गोरिदम
    • RFC 9338 - COSE काउंटरसिग्नेचर
  • पोस्ट-क्वांटम क्रिप्टोग्राफी:
    • RFC 9964 - COSE के लिए ML-DSA
    • RFC 8778 - COSE के लिए HSS/LMS
  • अटेस्टेशन:
    • RFC 9783 - EAT का PSA अटेस्टेशन टोकन प्रोफ़ाइल

मुख्य विशेषताएँ

  • पूर्ण COSE सूट (RFC 9052): सभी छह संदेश प्रकारों के लिए पूर्ण समर्थन, जिसमें COSE_Sign1, COSE_Encrypt0, और COSE_Mac0 शामिल हैं।
  • V2 काउंटरसिग्नेचर (RFC 9338): सभी छह टैग किए गए COSE संदेश प्रकारों में पूर्ण और संक्षिप्त इन-प्लेस काउंटरसिग्नेचर।
  • पोस्ट-क्वांटम क्रिप्टोग्राफी:
    • सभी सुरक्षा स्तरों पर ML-DSA (FIPS 204 / RFC 9964)।
    • HSS/LMS स्टेटफुल हैश-आधारित साइनिंग (RFC 8778 / CNSA 2.0)।
  • तेज़ प्रदर्शन: Intel i9-11950H पर, एंड-टू-एंड COSE_Sign1 ES256 के साथ 66,538 sign/s और 26,437 verify/s तक पहुँचता है, और ML-DSA-44 के साथ 21,986 sign/s और 53,686 verify/s। प्रदर्शन और फुटप्रिंट विवरण और wolfCOSE बनाम द फील्ड देखें।
  • PSA अटेस्टेशन: प्रतिनिधि HSM साइनिंग समर्थन के साथ EAT / PSA टोकन जारी करना और सत्यापन।
  • 41 क्रिप्टोग्राफिक एल्गोरिदम: साइनिंग, एन्क्रिप्शन, MAC, और कुंजी वितरण में व्यापक एल्गोरिदम कवरेज।
  • एम्बेडेड-फर्स्ट डिज़ाइन: शून्य डायनामिक मेमोरी आवंटन (कोई हीप नहीं, शून्य .data/.bss)। कॉलर-आपूर्ति बफ़र्स पर सीमित स्टैक उपयोग के साथ संचालित होता है।
  • FIPS 140-3 पथ: अपनी एकमात्र क्रिप्टोग्राफिक निर्भरता के रूप में wolfCrypt (FIPS प्रमाणपत्र #4718) का उपयोग करता है।
  • STM32 एकीकृत: STM32CubeMX / IDE के लिए ड्रॉप-इन STM32Cube पैक (I-CUBE-wolfCOSE) उपलब्ध (विवरण)।

समर्थित एल्गोरिदम

  • डिजिटल हस्ताक्षर:
    • क्लासिकल: ESP256, ESP384, ESP512, Ed25519, Ed448, PS256, PS384, PS512
    • पोस्ट-क्वांटम: ML-DSA-44, ML-DSA-65, ML-DSA-87
    • स्टेटफुल हैश-आधारित: HSS-LMS
  • एन्क्रिप्शन (AEAD):
    • AES-GCM (128 / 192 / 256)
    • AES-CCM (वेरिएंट)
    • ChaCha20-Poly1305
  • संदेश प्रमाणीकरण (MAC):
    • HMAC-SHA256, HMAC-SHA384, HMAC-SHA512
    • AES-MAC
  • कुंजी वितरण:
    • Direct
    • AES Key Wrap
    • ECDH-ES + HKDF

COSE संदेश प्रकार (RFC 9052)

wolfCOSE ने सभी RFC 9052 संदेशों को सिंगल-एक्टर और मल्टी-एक्टर दोनों वेरिएंट में लागू किया है:

संदेशRFC 9052APIउद्देश्य
COSE_Sign1Sec. 4.2wc_CoseSign1_Sign / wc_CoseSign1_Verifyसिंगल-साइनर हस्ताक्षर
COSE_SignSec. 4.1wc_CoseSign_Sign / wc_CoseSign_Verifyमल्टी-साइनर (एक ही पेलोड पर स्वतंत्र हस्ताक्षर)
COSE_Encrypt0Sec. 5.2wc_CoseEncrypt0_Encrypt / wc_CoseEncrypt0_Decryptसिंगल-रिसिपिएंट AEAD
COSE_EncryptSec. 5.1wc_CoseEncrypt_Encrypt / wc_CoseEncrypt_Decryptमल्टी-रिसिपिएंट (एक सिफरटेक्स्ट, Direct / AES-KW / ECDH-ES के माध्यम से कई प्राप्तकर्ता)
COSE_Mac0Sec. 6.2wc_CoseMac0_Create / wc_CoseMac0_Verifyसिंगल-रिसिपिएंट MAC
COSE_MacSec. 6.1wc_CoseMac_Create / wc_CoseMac_Verifyमल्टी-रिसिपिएंट MAC (साझा MAC कुंजी, प्राप्तकर्ताओं को वितरित)
COSE_Key / COSE_KeySetSec. 7wc_CoseKey_Encode / wc_CoseKey_Decodeसभी कुंजी प्रकारों के लिए कुंजी सीरियलाइज़ेशन

RFC 9338 काउंटरसिग्नेचर इस तालिका में किसी भी टैग किए गए संदेश से जोड़े जा सकते हैं। एक जोड़ने के लिए wc_Cose_AddCounterSignature() या wc_Cose_AddCounterSignature0() का उपयोग करें, फिर संबंधित wc_Cose_VerifyCounterSignature*() API के साथ स्वतंत्र रूप से सत्यापित करें।

निर्भरताएँ (wolfSSL)

wolfCOSE को अपने क्रिप्टो बैकएंड के रूप में wolfSSL की आवश्यकता है। न्यूनतम समर्थित संस्करण: v5.8.0-stable। कुछ वैकल्पिक एल्गोरिदम के लिए नए रिलीज़ की आवश्यकता होती है; फीचर-विशिष्ट निर्भरता सीमाओं और बिल्ड निर्देशों के लिए Getting Started देखें। HSS/LMS (RFC 8778) के लिए v5.9.2-stable या बाद का संस्करण आवश्यक है।

आपको जिन एल्गोरिदम की आवश्यकता है, उनके आधार पर बिल्ड कॉन्फ़िगरेशन चुनें।

न्यूनतम बिल्ड (ECC + AES-GCM)

यह आपको 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)

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

बिल्ड लक्ष्य

श्रेणियाँ