Module encode

Module encode 

Source
Expand description

Encoder builder for creating Claim 169 QR codes.

The Encoder provides a fluent builder API for encoding identity credentials into QR-ready Base45 strings.

§Basic Usage

use claim169_core::{Encoder, Claim169, CwtMeta};

// Create an unsigned credential (requires explicit opt-in)
let qr_data = Encoder::new(claim169, cwt_meta)
    .allow_unsigned()
    .encode()?;

// Create a signed credential with Ed25519
let qr_data = Encoder::new(claim169, cwt_meta)
    .sign_with_ed25519(&private_key)?
    .encode()?;

// Create a signed and encrypted credential
let qr_data = Encoder::new(claim169, cwt_meta)
    .sign_with_ed25519(&private_key)?
    .encrypt_with_aes256(&aes_key)?
    .encode()?;

§HSM Integration

For hardware security modules, use the generic sign_with() method:

use claim169_core::{Encoder, Signer};

struct HsmSigner { /* ... */ }
impl Signer for HsmSigner { /* ... */ }

let qr_data = Encoder::new(claim169, cwt_meta)
    .sign_with(hsm_signer, iana::Algorithm::EdDSA)
    .encode()?;

Structs§

Encoder
Builder for encoding Claim 169 credentials into QR-ready strings.

Functions§

generate_random_nonce
Generate a random nonce.