open-pincery 1.0.1

Multi-agent platform for durable, event-driven AI agents
Documentation
use sha2::{Digest, Sha256};

pub fn generate_token() -> String {
    use rand::Rng;
    let mut rng = rand::rng();
    let bytes: Vec<u8> = (0..32).map(|_| rng.random::<u8>()).collect();
    hex::encode(bytes)
}

pub fn hash_token(token: &str) -> String {
    let mut hasher = Sha256::new();
    hasher.update(token.as_bytes());
    hex::encode(hasher.finalize())
}

pub fn generate_webhook_secret() -> String {
    use base64::{engine::general_purpose::STANDARD_NO_PAD, Engine as _};
    use rand::Rng;

    let mut rng = rand::rng();
    let bytes: Vec<u8> = (0..32).map(|_| rng.random::<u8>()).collect();
    STANDARD_NO_PAD.encode(bytes)
}