Een Klavida-bewijs zelf controleren ==================================== Een bestand dat eindigt op .klavida-bewijs.json bevat drie dingen: - "inhoud": de gegevens (bijvoorbeeld het biedlogboek); - "handtekening": de handtekening van Klavida, met de openbare sleutel erbij; - "controleren": deze uitleg in het kort. De handtekening is Ed25519, een open standaard. Hij staat over het veld "inhoud", opgeschreven als JSON met de sleutels op alfabet, zonder witruimte, in UTF-8. De openbare sleutel van Klavida staat in het bestand zelf en op https://klavida.nl/.well-known/klavida-bewijs.json Voorbeeld in Python (pip install pynacl): import json, base64 from nacl.signing import VerifyKey b = json.load(open("biedlogboek.klavida-bewijs.json", encoding="utf-8")) tekst = json.dumps(b["inhoud"], sort_keys=True, separators=(",", ":"), ensure_ascii=False).encode() h = b["handtekening"] VerifyKey(base64.b64decode(h["publiekeSleutel"])).verify(tekst, base64.b64decode(h["waarde"])) print("De handtekening klopt.") Klopt de handtekening, dan is de inhoud niet veranderd sinds het ondertekenen. Wil je ook zeker weten dat het bestand van Klavida komt? Vergelijk dan "publiekeSleutel" in het bestand met de sleutel van Klavida die je eerder bewaarde, of met de sleutel op de site.