summaryrefslogtreecommitdiffstats
path: root/poc/spike6_gek.py
diff options
context:
space:
mode:
Diffstat (limited to 'poc/spike6_gek.py')
-rw-r--r--poc/spike6_gek.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/poc/spike6_gek.py b/poc/spike6_gek.py
index 89ab06c..3595d6d 100644
--- a/poc/spike6_gek.py
+++ b/poc/spike6_gek.py
@@ -16,14 +16,20 @@ Validates the full GEK lifecycle:
The hub stores opaque encrypted blobs — it never sees the GEK in cleartext.
"""
-import asyncio, httpx, base64, os, json, time
+import asyncio
+import base64
+import json
+import os
+import time
from pathlib import Path
+
+import blake3
+import httpx
+from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey, X25519PublicKey
from cryptography.hazmat.primitives.ciphers.aead import ChaCha20Poly1305
from cryptography.hazmat.primitives.kdf.hkdf import HKDF
-from cryptography.hazmat.primitives import hashes, serialization
-import blake3
HUB_URL = "http://meshbay.org"
STATE_FILE = Path("node_state.json")
@@ -218,7 +224,7 @@ async def main():
wrap_ms = (time.perf_counter()-t0)*1000
print(f" {PASS} Wrapped in {wrap_ms:.2f}ms")
print(f" pk_eph : {bundle_bob['pk_eph_b64'][:24]}...")
- print(f" (different from Alice's bundle — ephemeral key is unique)")
+ print(" (different from Alice's bundle — ephemeral key is unique)")
r = await c.post(
f"{HUB_URL}/v1/groups/{group_id}/members/bob_member/gek",
@@ -301,10 +307,10 @@ async def main():
print(f" {PASS} Wrong private key correctly rejected (AEAD auth failed)")
print("\n" + "="*55)
- print(f"Spike 6 COMPLETE — GEK distribution validated.")
+ print("Spike 6 COMPLETE — GEK distribution validated.")
print(f" wrap_gek : {wrap_ms:.2f} ms")
print(f" unwrap_gek : {unwrap_ms:.2f} ms")
- print(f" Hub role : stores opaque bundle, never sees GEK in clear")
- print(f" Security : wrong key rejected by AEAD authentication tag")
+ print(" Hub role : stores opaque bundle, never sees GEK in clear")
+ print(" Security : wrong key rejected by AEAD authentication tag")
asyncio.run(main())