wolfcose 0.1.0

Safe Rust API for wolfSSL wolfCOSE.
#![allow(missing_docs)]

use wolfcose::{Algorithm, CoseKeyBuilder, Encrypt0Builder, Mac0Builder, PayloadMode};

fn main() -> wolfcose::Result<()> {
    let enc_key = CoseKeyBuilder::symmetric([0x11u8; 16])
        .algorithm(Algorithm::A128GCM)
        .kid(b"enc-key")
        .build()?;
    let mac_key = CoseKeyBuilder::symmetric([0x22u8; 32])
        .algorithm(Algorithm::HMAC256)
        .kid(b"mac-key")
        .build()?;

    let iv = [0x33u8; 12];
    let encrypted = Encrypt0Builder::new()
        .key(&enc_key)
        .algorithm(Algorithm::A128GCM)
        .iv(&iv)
        .payload(PayloadMode::Attached(b"configuration"))
        .encrypt_to_vec()?;

    let mac = Mac0Builder::new()
        .key(&mac_key)
        .algorithm(Algorithm::HMAC256)
        .kid(b"mac-key")
        .payload(PayloadMode::Attached(&encrypted))
        .mac_to_vec()?;

    println!("encrypt0={} mac0={}", encrypted.len(), mac.len());
    Ok(())
}