agent-cid 0.1.0

Content-addressed artifact manifest for AI agents (Rust port of @p-vbordei/agent-cid)
Documentation
use base64::{engine::general_purpose::STANDARD, Engine};
use ed25519_dalek::{Signature, Verifier, VerifyingKey};

pub fn verify_bytes(sig: &[u8], message: &[u8], pubkey: &[u8; 32]) -> bool {
    let Ok(vk) = VerifyingKey::from_bytes(pubkey) else {
        return false;
    };
    let Ok(arr) = <[u8; 64]>::try_from(sig) else {
        return false;
    };
    let sig = Signature::from_bytes(&arr);
    vk.verify(message, &sig).is_ok()
}

pub fn b64encode(data: &[u8]) -> String {
    STANDARD.encode(data)
}

pub fn b64decode(s: &str) -> Result<Vec<u8>, base64::DecodeError> {
    STANDARD.decode(s.as_bytes())
}