
تطبيق سريع، محمول، وخفيف الوزن لـ COSE + CBOR للأنظمة المضمنة. يدعم PQC، FIPS 140-3، DO-178، وMISRA C. مدعوم من wolfSSL.
wolfCOSE هي مكتبة C خفيفة الوزن تقوم بتنفيذ CBOR (RFC 8949) وCOSE (RFC 9052/9053) وML-DSA ما بعد الكم لـ COSE (RFC 9964) باستخدام wolfSSL كخلفية تشفير.
COSE_Sign متعدد الموقعين وCOSE_Encrypt / COSE_Mac متعدد المستلمينCOSE_Key وفق RFC 9964 (نوع مفتاح AKP، مفاتيح خاصة قائمة على البذور).data/.bss)COSE_Sign1 (محرك COSE + CBOR) حوالي 5.1 كيلوبايت للتحقق فقط وحوالي 6.8 كيلوبايت للتوقيع والتحقق. إجمالي الفلاش بما في ذلك wolfCrypt هو حوالي 26.2 كيلوبايت للتحقق فقط (WOLFCOSE_LEAN_VERIFY) وحوالي 34.6 كيلوبايت للتوقيع والتحققCOSE_Sign1، x86_64، wolfCrypt sp_256 asm): 66,538 توقيع/ثانية، 26,437 تحقق/ثانيةCOSE_Sign1 بما في ذلك wolfCrypt هو حوالي 20.8 كيلوبايت للتحقق فقط (WOLFCOSE_LEAN_VERIFY_MLDSA) وحوالي 35.8 كيلوبايت للتوقيع والتحقق، أي في حدود 1 كيلوبايت تقريباً من ES256 التقليدية. جزء wolfCOSE وحده هو 4.6 كيلوبايت وحوالي 6.6 كيلوبايت على التوالي. انظر البصمةالتوقيع: 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، والتي تظهر في 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 أصغر، أضف --enable-cryptonly لإسقاط مجموعة TLS وتعطيل الخوارزميات التي لا يستخدمها بناء 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
انظر الضبط من أجل الحجم والضبط من أجل السرعة لضغط 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 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
# بناء وتشغيل اختبارات الدائرة لأداة سطر الأوامر (جميع الخوارزميات)
make tool-test
# تشغيل تجربة دورة الحياة (11 خوارزمية)
make demo
راجع examples/ للحصول على كود عمل كامل:
sign1_demo.c, encrypt0_demo.c, mac0_demo.c: عروض توضيحية للخوارزمياتlifecycle_demo.c: سير عمل كامل من الحافة إلى السحابةcomprehensive/: اختبارات مصفوفة الخوارزمياتscenarios/: توقيع البرامج الثابتة، الإثبات، تكوين الأسطوليتم تشغيله في كل دفعة وطلب سحب:
-fanalyzer--addon=misra لجميع مسارات كود wolfCOSEbugprone-*, cert-*, clang-analyzer-*, misc-*)make coverage # تشغيل الاختبارات مع gcov
make coverage-force-failure # تضمين اختبار مسار فشل التشفير
التوثيق الكامل متاح في الويكي:
الإصدار الحالي هو 1.0.0، أول إصدار مستقر: مجموعة رسائل COSE RFC 9052 الكاملة (جميع أنواع الرسائل الستة، أحادية ومتعددة الفاعل)، 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 | بناء أداة سطر الأوامر (tools/wolfcose_tool) |
make tool-test | اختبار ذاتي لدائرة مغلقة لجميع الخوارزميات السبع عشرة |
make demo | بناء + تشغيل تجربة دورة الحياة (11 خوارزمية) |
make clean | إزالة جميع مخرجات البناء |