From 886867989df8283d0c47e77b2c5ed35b59d8457e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jev=20Bj=C3=B6rsell?= Date: Sun, 17 Nov 2019 03:16:09 -0800 Subject: [PATCH] Set `outlen` to 20 bytes for Tezos PKH's. pysodium appears to hold `outlen` in state, so we also specify `outlen` back to the default 32 when producing the message digest. --- docker/crypto_auth_provider.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/crypto_auth_provider.py b/docker/crypto_auth_provider.py index 3e16389..77a7d94 100644 --- a/docker/crypto_auth_provider.py +++ b/docker/crypto_auth_provider.py @@ -35,12 +35,12 @@ def check_password(self, user_id: str, password: str): signature = bytes.fromhex(password.split(":")[1]) public_key = bytes.fromhex(password.split(":")[2]) - public_key_digest = pysodium.crypto_generichash(public_key) + public_key_digest = pysodium.crypto_generichash(public_key, outlen=20) if public_key_hash.hex() == public_key_digest.hex(): try: message_digest = pysodium.crypto_generichash( - u"login:{}".format(int(time.time()/(5*60))).encode()) + u"login:{}".format(int(time.time()/(5*60))).encode(), outlen=32) pysodium.crypto_sign_verify_detached( signature, message_digest, public_key) if not (yield self.account_handler.check_user_exists(user_id)):