diff --git a/flaskserver.py b/flaskserver.py index 94eafd5..913d749 100644 --- a/flaskserver.py +++ b/flaskserver.py @@ -17,6 +17,10 @@ def flask_server(): + # python -O silently strips assert statements, so refuse to run unchecked + if not __debug__: + raise Exception('Refusing to run with assertions disabled (python -O)') + # Load, verify, and cache server static key at startup # (Refuse to start if key non-existing or invalid) PINServerECDH.load_private_key() diff --git a/pindb.py b/pindb.py index bba3408..8957a37 100644 --- a/pindb.py +++ b/pindb.py @@ -180,7 +180,7 @@ def _load_pin_fields(cls, pin_pubkey_hash, pin_pubkey, aes_pin_data_key): assert version_bytes == version hmac_payload = hmac_sha256(pin_auth_key, version_bytes + encrypted) - assert hmac_payload == hmac_received + assert compare_digest(hmac_payload, hmac_received) storage_aes_key = hmac_sha256(aes_pin_data_key, pin_pubkey) plaintext = decrypt(storage_aes_key, encrypted)