Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Deal with mypy errors w/ type-hinted pynacl 1.5.0 (#11714)
Browse files Browse the repository at this point in the history
* Deal with mypy errors w/ type-hinted pynacl 1.5.0

Fixes #11644.

I really don't like that we're monkey patching pynacl SignedKey
instances with alg and version objects. But I'm too scared to make the
changes necessary right now.

(Ideally I would replace `signedjson.types.SingingKey` with a runtime class which
wraps or inherits from `nacl.signing.SigningKey`.) C.f. matrix-org/python-signedjson#16
  • Loading branch information
David Robertson authored and babolivier committed Jan 26, 2022
1 parent d1fedca commit c360840
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.d/11714.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a typechecker problem related to our (ab)use of `nacl.signing.SigningKey`s.
8 changes: 7 additions & 1 deletion tests/crypto/test_event_signing.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@


import nacl.signing
import signedjson.types
from unpaddedbase64 import decode_base64

from synapse.api.room_versions import RoomVersions
Expand All @@ -35,7 +36,12 @@

class EventSigningTestCase(unittest.TestCase):
def setUp(self):
self.signing_key = nacl.signing.SigningKey(SIGNING_KEY_SEED)
# NB: `signedjson` expects `nacl.signing.SigningKey` instances which have been
# monkeypatched to include new `alg` and `version` attributes. This is captured
# by the `signedjson.types.SigningKey` protocol.
self.signing_key: signedjson.types.SigningKey = nacl.signing.SigningKey(
SIGNING_KEY_SEED
)
self.signing_key.alg = KEY_ALG
self.signing_key.version = KEY_VER

Expand Down

0 comments on commit c360840

Please sign in to comment.