diff options
author | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2021-05-06 16:05:18 -0400 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2021-05-06 16:05:18 -0400 |
commit | 61446349212d46c02f86ab79dccdfa900b76f306 (patch) | |
tree | 6a3ec0ad0edf156818f598eb5c54b8248dc57cb7 | |
parent | 1422c2aafacbaa177e70919d48671b05a8b79dc4 (diff) | |
download | patatt-61446349212d46c02f86ab79dccdfa900b76f306.tar.gz |
Nicer crash for when PyNaCl isn't available
Don't backtrace all over the screen -- give a nice error message.
Signed-off-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
-rw-r--r-- | patatt/__init__.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/patatt/__init__.py b/patatt/__init__.py index a3870b8..e54bb10 100644 --- a/patatt/__init__.py +++ b/patatt/__init__.py @@ -222,8 +222,11 @@ class DevsigHeader: @staticmethod def _sign_ed25519(payload: bytes, privkey: bytes) -> Tuple[bytes, bytes]: global KEYCACHE - from nacl.signing import SigningKey - from nacl.encoding import Base64Encoder + try: + from nacl.signing import SigningKey + from nacl.encoding import Base64Encoder + except ModuleNotFoundError: + raise RuntimeError('This operation requires PyNaCl libraries') if privkey not in KEYCACHE: sk = SigningKey(privkey, encoder=Base64Encoder) @@ -238,9 +241,12 @@ class DevsigHeader: @staticmethod def _validate_ed25519(sigdata: bytes, pubkey: bytes) -> bytes: - from nacl.signing import VerifyKey - from nacl.encoding import Base64Encoder - from nacl.exceptions import BadSignatureError + try: + from nacl.signing import VerifyKey + from nacl.encoding import Base64Encoder + from nacl.exceptions import BadSignatureError + except ModuleNotFoundError: + raise RuntimeError('This operation requires PyNaCl libraries') vk = VerifyKey(pubkey, encoder=Base64Encoder) try: |