Skip to content

Commit

Permalink
Hex strings should be decoded as strings and not used as raw bytes
Browse files Browse the repository at this point in the history
  • Loading branch information
Giulio committed Oct 31, 2023
1 parent afd354b commit 2f32d0b
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
4 changes: 2 additions & 2 deletions journalist.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ def add_ephemeral_keys(journalist_key, journalist_id):
# database.
def load_ephemeral_keys(journalist_key, journalist_id):
ephemeral_keys = []
key_file_list = listdir(f"{commons.DIR}journalists/{journalist_key.verify_key.encode(HexEncoder)}/")
key_file_list = listdir(f"{commons.DIR}journalists/{journalist_key.verify_key.encode(HexEncoder).decode('ascii')}/")
for file_name in key_file_list:
if file_name.endswith('.key'):
with open(f"{commons.DIR}journalists/{journalist_key.verify_key.encode(HexEncoder)}/{file_name}", "r") as f:
with open(f"{commons.DIR}journalists/{journalist_key.verify_key.encode(HexEncoder).decode('ascii')}/{file_name}", "r") as f:
key = f.read()
ephemeral_keys.append(PrivateKey(key, Base64Encoder))
return ephemeral_keys
Expand Down
8 changes: 4 additions & 4 deletions pki.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,19 +143,19 @@ def generate_journalists(intermediate_key):

def generate_ephemeral(journalist_key, journalist_id):
try:
mkdir(f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder)}")
mkdir(f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder).decode('ascii')}")
except Exception:
pass
key = PrivateKey.generate()
name = key.public_key.encode(HexEncoder)

with open(f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder)}/{name}.key", "w") as f:
with open(f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder).decode('ascii')}/{name}.key", "w") as f:
f.write(key.encode(Base64Encoder).decode('ascii'))

with open(f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder)}/{name}.public", "w") as f:
with open(f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder).decode('ascii')}/{name}.public", "w") as f:
f.write(key.public_key.encode(Base64Encoder).decode('ascii'))

sig = sign_key(journalist_key, key.public_key, f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder)}/{name}.sig")
sig = sign_key(journalist_key, key.public_key, f"{commons.DIR}/journalists/{journalist_key.verify_key.encode(HexEncoder).decode('ascii')}/{name}.sig")

return sig, key

Expand Down
4 changes: 2 additions & 2 deletions server.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ def add_ephemeral_keys():
ephemeral_key_verifying_key,
None,
ephemeral_key_dict["ephemeral_sig"])
redis.sadd(f"journalist:{journalist_verifying_key.encode(HexEncoder)}",
redis.sadd(f"journalist:{journalist_verifying_key.encode(HexEncoder).decode('ascii')}",
json.dumps({"ephemeral_key": ephemeral_key_verifying_key.encode(Base64Encoder).decode("ascii"),
"ephemeral_sig": ephemeral_sig}))

Expand All @@ -158,7 +158,7 @@ def get_ephemeral_keys():

for journalist in journalists:
journalist_dict = json.loads(journalist.decode("ascii"))
ephemeral_key_dict = json.loads(redis.spop(f"journalist:{VerifyKey(journalist_dict['journalist_key'], Base64Encoder).encode(HexEncoder)}").decode("ascii"))
ephemeral_key_dict = json.loads(redis.spop(f"journalist:{VerifyKey(journalist_dict['journalist_key'], Base64Encoder).encode(HexEncoder).decode('ascii')}").decode("ascii"))
ephemeral_key_dict["journalist_key"] = journalist_dict["journalist_key"]
ephemeral_keys.append(ephemeral_key_dict)

Expand Down

0 comments on commit 2f32d0b

Please sign in to comment.