Expand description
uvb-mrvb: MRVB Assertion Signing and Verification for UVB
This crate provides cryptographic signing and verification for MRVB (Multi-Rail Verification Bus) assertions with support for:
- Classical cryptography: Ed25519 (fast, widely supported)
- Post-quantum cryptography: Dilithium3 (quantum-resistant, optional)
- Hybrid mode: Ed25519 + Dilithium3 (best of both worlds, optional)
§Architecture
This implementation matches the MRVB+KMS pack design:
KeyPairSetfor managing keypairs with rotation supportAssertionClaimsfor structured JWT-like claimsSignedAssertionfor signed assertion tokensMrvbAssertionSignertrait for signing operationsMrvbAssertionVerifiertrait for verification operations
§Example
use uvb_mrvb::{MrvbConfig, MrvbMode, Ed25519AssertionSigner, AssertionClaims, MrvbAssertionSigner};
// Generate a new Ed25519 keypair
let config = MrvbConfig {
mode: MrvbMode::ClassicalOnly,
keyset_id: "default".to_string(),
};
let signer = Ed25519AssertionSigner::generate(config)?;
// Create assertion claims
let claims = AssertionClaims {
session_id: "session_123".to_string(),
user_id: Some("user_456".to_string()),
rail: "email".to_string(),
verification_level: "high".to_string(),
issued_at: chrono::Utc::now(),
expires_at: chrono::Utc::now() + chrono::Duration::hours(1),
metadata: Default::default(),
};
// Sign the claims (async)
let assertion = signer.sign_assertion(&claims).await?;
// Verify the assertion
let verifier = signer.verifier();
let verified_claims = verifier.verify_assertion(&assertion)?;
assert_eq!(verified_claims.session_id, "session_123");Structs§
- Assertion
Claims - Assertion claims structure for MRVB verification tokens.
- Classical
KeyPair - Classical keypair (e.g., Ed25519).
- Ed25519
Assertion Signer - Ed25519 assertion signer.
- Ed25519
Assertion Verifier - Ed25519 assertion verifier.
- Hybrid
Signature - Result of a hybrid signature operation.
- KeyPair
Set - Combined keyset for hybrid signing/verification.
- Mrvb
Config - MRVB configuration for signing operations.
- PqcKey
Pair - Stub for non-pqc builds
- Signed
Assertion - A signed MRVB assertion token.
Enums§
Traits§
- Mrvb
Assertion Signer - Trait for MRVB assertion signing.
- Mrvb
Assertion Verifier - Trait for MRVB assertion verification.
Type Aliases§
- Mrvb
Result - Result type for MRVB operations