{"service":"Umpire","operator":"Vima Brosta LLC","key_id":"ed1_d334f291853d5e78","alg":"Ed25519","public_key_jwk":{"crv":"Ed25519","x":"d7ovjRWIKite0jyXlXuVdbeQFDPYB21r_zTG8SNzfJk","kty":"OKP"},"public_key_pem":"-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAd7ovjRWIKite0jyXlXuVdbeQFDPYB21r/zTG8SNzfJk=\n-----END PUBLIC KEY-----\n","how_to_verify":["1. Take the signed document and remove its `signature` field.","2. Serialize the remainder as JSON with object keys sorted at every depth, no whitespace, UTF-8, non ASCII characters left unescaped (Python: json.dumps(doc, sort_keys=True, separators=(',', ':'), ensure_ascii=False)).","3. Compare sha256 of those bytes with signature.payload_sha256. A mismatch means your serialization differs from ours, not that the document is forged.","4. Verify the Ed25519 signature sig_base64 over those bytes against this public key."],"python_example":["import json, hashlib, base64","from cryptography.hazmat.primitives.serialization import load_pem_public_key","doc = dict(signed_document); sig = doc.pop('signature')","payload = json.dumps(doc, sort_keys=True, separators=(',', ':'), ensure_ascii=False).encode('utf-8')","assert hashlib.sha256(payload).hexdigest() == sig['payload_sha256']","load_pem_public_key(public_key_pem.encode()).verify(base64.b64decode(sig['sig_base64']), payload)"]}