reguai-engine / src /ledger /crypto.py
gitmodelmujtaba's picture
Deploy ReguAI: Neuro-Symbolic AI GRC & Automated Conformity Assessment Engine
ac8e628 verified
Raw
History Blame Contribute Delete
1.5 kB
"""
Cryptographic hashing and ledger integrity functions for ReguAI.
Ensures zero-repudiation and deterministic provenance proofs.
"""
import hashlib
import json
from typing import Dict, Any
from rdflib import Graph
def compute_sha256_text(content: str) -> str:
"""Computes standard SHA-256 hex digest for utf-8 text."""
return hashlib.sha256(content.encode("utf-8")).hexdigest()
def compute_sha256_dict(data: Dict[str, Any]) -> str:
"""Computes deterministic SHA-256 hex digest for JSON-serializable dictionaries."""
canonical_json = json.dumps(data, sort_keys=True, separators=(",", ":"))
return hashlib.sha256(canonical_json.encode("utf-8")).hexdigest()
def compute_canonical_graph_sha256(graph: Graph) -> str:
"""
Computes a deterministic hash of an RDF graph by serializing to canonical
sorted N-Triples format.
"""
ntriples = graph.serialize(format="nt")
# Sort lines to ensure canonical ordering regardless of triple insertion order
sorted_lines = sorted(line.strip() for line in ntriples.splitlines() if line.strip())
canonical_body = "\n".join(sorted_lines)
return hashlib.sha256(canonical_body.encode("utf-8")).hexdigest()
def generate_conformity_token(system_id: str, assessment_hash: str) -> str:
"""Generates an official verifiable conformity certificate token."""
short_hash = assessment_hash[:12].upper()
clean_sys = system_id.replace("-", "").upper()[:8]
return f"REGU-EU2024-1689-{clean_sys}-{short_hash}"