
임베디드 시스템을 위한 빠르고, 이식성이 뛰어나며, 가벼운 COSE + CBOR 구현체입니다. PQC, FIPS 140-3, DO-178 및 MISRA C를 지원합니다. wolfSSL 기반입니다.
wolfCOSE는 wolfSSL을 암호화 백엔드로 사용하여 CBOR (RFC 8949), COSE (RFC 9052/9053), 그리고 포스트퀀텀 COSE용 ML-DSA (RFC 9964)를 구현하는 경량 C 라이브러리입니다.
COSE_Sign 및 다중 수신자 COSE_Encrypt / COSE_Mac을 포함한 6가지 COSE 메시지 유형 전체COSE_Key(AKP 키 유형, 시드 기반 개인 키).data/.bss 사용량 0).COSE_Sign1 wolfCOSE(COSE + CBOR 엔진)는 검증 전용 ~5.1 KB, 서명 + 검증 ~6.8 KB입니다.
wolfCrypt를 포함한 총 플래시는 검증 전용(WOLFCOSE_LEAN_VERIFY) ~26.2 KB, 서명 + 검증 ~34.6 KB입니다.COSE_Sign1, x86_64, wolfCrypt sp_256 asm): 초당 66,538회 서명, 초당 26,437회 검증COSE_Sign1은 wolfCrypt를 포함한 총 플래시가 검증 전용
(WOLFCOSE_LEAN_VERIFY_MLDSA) ~20.8 KB, 서명 + 검증 ~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 variants
MAC: HMAC-SHA256/384/512, AES-MAC
키 분배: Direct, AES Key Wrap, ECDH-ES+HKDF
wolfCOSE는 단일 주체 및 다중 주체 변형 모두를 포함한 모든 RFC 9052 메시지를 구현했습니다:
wolfCOSE는 암호화 백엔드로 wolfSSL이 필요합니다. 최소 지원 버전: v5.8.0-stable(공개 wc_ForceZero 심볼이 포함된 첫 릴리스). 포스트퀀텀 서명은 wolfSSL v5.9.1-stable 이후 버전에 포함된 표준 FIPS 204 wc_MlDsaKey API를 사용합니다. v5.8.0–v5.9.1에 대해 wolfCOSE를 빌드하면 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
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는 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-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
완전한 작동 코드는 examples/를 참조하세요:
sign1_demo.c, encrypt0_demo.c, mac0_demo.c: 알고리즘 데모lifecycle_demo.c: 엣지-클라우드 전체 워크플로comprehensive/: 알고리즘 매트릭스 테스트scenarios/: 펌웨어 서명, 증명, 플릿 구성모든 푸시와 PR에서 실행됩니다:
-fanalyzer--addon=misra로 모든 wolfCOSE 코드 경로 검사bugprone-*, cert-*, clang-analyzer-*, misc-*)make coverage # Run tests with gcov
make coverage-force-failure # Include crypto failure path testing
전체 문서는 Wiki에서 확인할 수 있습니다:
현재 릴리스는 1.0.0으로, 첫 번째 안정 릴리스입니다: 완전한 RFC 9052 COSE 메시지 집합(6가지 메시지 유형 전체, 단일 및 다중 주체), 40가지 알고리즘, 표준화된 포스트퀀텀 ML-DSA(RFC 9964)를 모두 동적 할당 없이 제공합니다. 전체 릴리스 노트는 ChangeLog.md를 참조하세요.
wolfCOSE 1.0.0은 wolfSSL의 개발 및 QA 프로세스(https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance 참조)에 따라 개발되었으며 품질 기준을 성공적으로 통과했습니다.
wolfCOSE는 GPLv3에 따라 라이선스가 부여된 자유 소프트웨어입니다. 전체 전문은 LICENSE를 참조하세요.
Copyright (C) 2026 wolfSSL Inc.
상업적 라이선스, 전문 지원 계약, 또는 wolfCOSE를 프로덕션 환경에 도입하는 것에 대해 논의하려면 wolfSSL에 문의하세요.
| 메시지 | 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 | 모든 키 유형에 대한 키 직렬화 |
| 대상 | 설명 |
|---|
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 | 모든 빌드 산출물 제거 |