mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-27 10:44:33 +00:00
Exchange encrypted JSON, not Python data.
This commit is contained in:
parent
9bff19c827
commit
f2b2af9f3b
@ -22,8 +22,6 @@ We don't:
|
|||||||
- Use a reasonable data-store.
|
- Use a reasonable data-store.
|
||||||
- Have a decent control (rate-limiting) mechanism.
|
- Have a decent control (rate-limiting) mechanism.
|
||||||
|
|
||||||
:FIXME: Remove sets and just do "key in" operations - it's annoying to remember
|
|
||||||
to convert to and from sets with every operation. Or just build a wrapper.
|
|
||||||
:TODO: add doctests
|
:TODO: add doctests
|
||||||
:FIXME: allow multiple listeners and senders per protocol (with different
|
:FIXME: allow multiple listeners and senders per protocol (with different
|
||||||
proxies)
|
proxies)
|
||||||
@ -57,6 +55,7 @@ import cfg
|
|||||||
from collections import defaultdict as DefaultDict
|
from collections import defaultdict as DefaultDict
|
||||||
import gnupg
|
import gnupg
|
||||||
import inspect
|
import inspect
|
||||||
|
import json
|
||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
import shelve
|
import shelve
|
||||||
@ -299,8 +298,7 @@ class Santiago(object):
|
|||||||
self.requests[host].add(service)
|
self.requests[host].add(service)
|
||||||
|
|
||||||
request = self.gpg.encrypt(
|
request = self.gpg.encrypt(
|
||||||
# TODO json this.
|
json.dumps({ "host": host, "client": client,
|
||||||
str({ "host": host, "client": client,
|
|
||||||
"service": service, "locations": list(locations or ""),
|
"service": service, "locations": list(locations or ""),
|
||||||
"reply_to": list(reply_to),
|
"reply_to": list(reply_to),
|
||||||
"request_version": 1,
|
"request_version": 1,
|
||||||
@ -379,7 +377,6 @@ class Santiago(object):
|
|||||||
understand.
|
understand.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# TODO json -> python
|
|
||||||
request = self.gpg.decrypt(request)
|
request = self.gpg.decrypt(request)
|
||||||
|
|
||||||
# skip badly signed messages or ones for other folks.
|
# skip badly signed messages or ones for other folks.
|
||||||
@ -390,7 +387,7 @@ class Santiago(object):
|
|||||||
|
|
||||||
# copy out only required keys from request, throwing away cruft
|
# copy out only required keys from request, throwing away cruft
|
||||||
request_body = dict()
|
request_body = dict()
|
||||||
source = ast.literal_eval(str(request))
|
source = json.loads((str(request)))
|
||||||
try:
|
try:
|
||||||
for key in Santiago.ALL_KEYS:
|
for key in Santiago.ALL_KEYS:
|
||||||
request_body[key] = source[key]
|
request_body[key] = source[key]
|
||||||
@ -404,7 +401,8 @@ class Santiago(object):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# versions must overlap.
|
# versions must overlap.
|
||||||
if not (Santiago.SUPPORTED_PROTOCOLS & request_body["reply_versions"]):
|
if not (Santiago.SUPPORTED_PROTOCOLS &
|
||||||
|
set(request_body["reply_versions"])):
|
||||||
return
|
return
|
||||||
if not (Santiago.SUPPORTED_PROTOCOLS &
|
if not (Santiago.SUPPORTED_PROTOCOLS &
|
||||||
set([request_body["request_version"]])):
|
set([request_body["request_version"]])):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user