Allow Vona to receive invites, and add validation to make_join

This commit is contained in:
2025-09-10 23:57:35 -04:00
parent 9fd2f84741
commit 789ca3e743
2 changed files with 66 additions and 39 deletions

View File

@@ -6,7 +6,7 @@ import json
import re
import os
vona_version = "1.2.4"
vona_version = "1.2.5"
def canonical_json(value):
@@ -28,23 +28,29 @@ def sign_json(data):
decoded_key = base64.b64decode(base64_key)
signing_key = nacl.signing.SigningKey(decoded_key)
signed_message = signing_key.sign(canonical_json(data))
unsigned_keys = {key: data[key] for key in list(data.keys()) if key == "unsigned"}
for key in unsigned_keys:
del data[key]
signed_message = signing_key.sign(canonical_json(data))
signature = signed_message.signature
key_version = parts[1]
signature_base64 = base64.b64encode(signature).decode("utf-8").rstrip("=")
signed_json = {
**data,
"signatures": {
config.server_name: {
f"ed25519:{key_version}": signature_base64,
},
},
}
new_signature = {f"ed25519:{key_version}": signature_base64}
return signed_json
if "signatures" in data:
data["signatures"][config.server_name] = {
**data["signatures"].get(config.server_name, {}),
**new_signature,
}
else:
data["signatures"] = {config.server_name: new_signature}
data.update(unsigned_keys)
return data
def make_event_id():
@@ -91,7 +97,7 @@ def make_auth_header(destination, method, path, content=None) -> str:
authorization_headers = []
for key, sig in signed_json["signatures"][origin_name].items():
for key, sig in signed_json["signatures"][config.server_name].items():
authorization_headers.append(
bytes(
'X-Matrix origin="%s",destination="%s",key="%s",sig="%s"'
@@ -104,4 +110,4 @@ def make_auth_header(destination, method, path, content=None) -> str:
)
)
return ("Authorization", authorization_headers[0])
return authorization_headers[0]