dyolo-kya 1.0.0

Know Your Agent (KYA): cryptographic chain-of-custody for recursive AI delegation with provable scope narrowing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use blake3::Hasher;

pub(crate) const DOMAIN_CERT_SIG:     &str = "dyolo::kya::cert::sig::v1";
pub(crate) const DOMAIN_CERT_FP:      &str = "dyolo::kya::cert::fp::v1";
pub(crate) const DOMAIN_CHAIN_FP:     &str = "dyolo::kya::chain::fp::v1";
pub(crate) const DOMAIN_INTENT_LEAF:  &str = "dyolo::kya::intent::leaf::v1";
pub(crate) const DOMAIN_MERKLE_NODE:  &str = "dyolo::kya::merkle::node::v1";
pub(crate) const DOMAIN_SUBSCOPE:     &str = "dyolo::kya::subscope::commit::v1";

/// Domain-separated Merkle node hash over two 32-byte children.
#[inline]
pub(crate) fn merkle_node(left: &[u8; 32], right: &[u8; 32]) -> [u8; 32] {
    let mut h = Hasher::new_derive_key(DOMAIN_MERKLE_NODE);
    h.update(left);
    h.update(right);
    h.finalize().into()
}