wolfcose 0.1.0

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

use wolfcose::{Algorithm, CoseKeyBuilder, CoseKeyView, SymmetricKey};

fn main() -> wolfcose::Result<()> {
    let key = SymmetricKey::new([0x44u8; 32])
        .with_algorithm(Algorithm::A256GCM)
        .with_kid(b"fleet-a")
        .into_cose_key()?;

    let view = CoseKeyView::from_key(&key);
    println!(
        "kty={} alg={} kid={} symmetric_len={:?}",
        view.key_type.id(),
        view.algorithm.id(),
        String::from_utf8_lossy(&view.kid),
        view.symmetric_len
    );

    let direct = CoseKeyBuilder::symmetric([0x55u8; 32])
        .algorithm(Algorithm::HMAC256)
        .build()?;
    println!(
        "direct symmetric len={:?}",
        CoseKeyView::from_key(&direct).symmetric_len
    );
    Ok(())
}