Skip to content
Aidan Garske edited this page Mar 19, 2026 · 4 revisions

wolfCOSE Documentation

Welcome to the wolfCOSE wiki. This is the complete documentation for wolfCOSE, a lightweight CBOR and COSE library for embedded systems.

What is wolfCOSE?

wolfCOSE is a C library implementing:

  • CBOR (RFC 8949): Concise Binary Object Representation
  • COSE (RFC 9052/9053): CBOR Object Signing and Encryption

It uses wolfSSL as the cryptographic backend and is designed for constrained IoT devices, FIPS-bounded deployments, and anywhere you need authenticated CBOR payloads in minimal RAM.

Key Features

Feature Description
Post-quantum signing ML-DSA (Dilithium) at all three security levels
Zero allocation All operations use caller-provided buffers, no malloc
Tiny footprint Core library is ~15KB .text, zero .data/.bss
26 algorithms Signing, encryption, and MAC across classical and post-quantum
CNSA 2.0 ready ML-DSA-44/65/87 for quantum-resistant signatures
MISRA-C:2023 compliance striving, Single-exit pattern, no recursion, deviation-logged

Documentation

Page Description
Getting Started Prerequisites, building, and quick start examples
Algorithms Complete list of supported algorithms with COSE IDs
API Reference Full API documentation for all functions
Macros Configuration macros and compile-time options
Testing Unit tests, coverage, and failure injection
Project Structure Source code layout and file descriptions

Supported Message Types

wolfCOSE implements all six COSE message types from RFC 9052:

Message Type Tag Description
COSE_Sign1 18 Single signer digital signature
COSE_Sign 98 Multiple signers
COSE_Encrypt0 16 Symmetric encryption (single key)
COSE_Encrypt 96 Multi-recipient encryption
COSE_Mac0 17 Symmetric MAC (single key)
COSE_Mac 97 Multi-recipient MAC

Quick Links

License

wolfCOSE is free software licensed under GPLv3. For commercial licensing and support, contact wolfSSL.

Clone this wiki locally