Skip to content

Commit cf057a0

Browse files
Fix static typing and code style issues
1 parent 1b2e6d5 commit cf057a0

2 files changed

Lines changed: 18 additions & 15 deletions

File tree

nitrokeyapp/secrets_tab/data.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from base64 import b64encode, b64decode
12
from dataclasses import dataclass
23
from datetime import datetime
34
from enum import Enum, auto, unique
@@ -6,7 +7,6 @@
67
from nitrokey.nk3.secrets_app import Kind as RawKind
78
from nitrokey.nk3.secrets_app import ListItem, PasswordSafeEntry, SecretsApp
89

9-
from base64 import b64encode, b64decode
1010
# TODO: these could be moved into pynitrokey
1111

1212

@@ -142,13 +142,16 @@ def serialize_credential(self) -> dict:
142142

143143
@classmethod
144144
def deserialize_credential(cls, credential_dict: dict) -> "Credential":
145+
login=credential_dict.get("login", "")
146+
password=credential_dict.get("password", "")
147+
comment=credential_dict.get("comment", "")
145148
credential = cls(
146149
id=b64decode(credential_dict.get("id")),
147-
login=b64decode(credential_dict.get("login")) if credential_dict.get("login", "") else None,
148-
password=b64decode(credential_dict.get("password")) if credential_dict.get("password", "") else None,
149-
comment=b64decode(credential_dict.get("comment")) if credential_dict.get("comment", "") else None,
150-
protected=credential_dict.get("protected"),
151-
touch_required=credential_dict.get("touch_required")
150+
login=b64decode(login) if login else None
151+
password=b64decode(password) if password else None
152+
comment=b64decode(comment) if comment else None
153+
protected=credential_dict.get("protected", False),
154+
touch_required=credential_dict.get("touch_required", False)
152155
)
153156

154157
kind= _kind_from_raw(RawKind(credential_dict.get("kind")))

nitrokeyapp/secrets_tab/worker.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from datetime import datetime
44
from typing import Dict, Optional
55
import json
6-
import traceback
76

87
from nitrokey.nk3 import NK3
98
from nitrokey.nk3.secrets_app import SecretsApp, SecretsAppException
@@ -664,7 +663,8 @@ def get_credential_backup(self) -> None:
664663
try:
665664
if credential.protected:
666665
pin= self.pin_cache.get(self.data)
667-
secrets.verify_pin_raw(pin)
666+
if pin:
667+
secrets.verify_pin_raw(pin)
668668
pse = secrets.get_credential(credential.id)
669669
except SecretsAppException as e:
670670
self.trigger_exception(e)
@@ -673,8 +673,8 @@ def get_credential_backup(self) -> None:
673673
cred = credential.extend_with_password_safe_entry(pse)
674674
try:
675675
credential_list_serialized.append(cred.serialize_credential())
676-
except:
677-
logger.warn("Serialization failed")
676+
except SecretsAppException as e:
677+
self.trigger_exception(e)
678678

679679
credential_list_formatted=json.dumps(credential_list_serialized, indent=4)
680680
self.credential_bkp.emit(credential_list_formatted)
@@ -709,15 +709,15 @@ def run(self) -> None:
709709
def check_credential_backup(self, existing_credentials: list[Credential]) -> None:
710710
try:
711711
serialized_credential_list=json.loads(self.credential_backup)
712-
except:
712+
except json.JSONDecodeError as e:
713713
self.trigger_error('Error: Invalid backup file')
714714
credential_list=[]
715715
for serialized_credential in serialized_credential_list:
716716
try:
717717
credential = Credential.deserialize_credential(serialized_credential)
718718
credential_list.append(credential)
719-
except Exception as e:
720-
self.trigger_error('Error: Invalid credential entry')
719+
except SecretsAppException as e:
720+
self.trigger_exception(e)
721721

722722
pin_required=False
723723
ids = {credential.id for credential in existing_credentials}
@@ -772,7 +772,7 @@ def add_credential(self, successful: bool = True) -> None:
772772
try:
773773
secrets.register(**reg_data) # type: ignore [arg-type]
774774
except SecretsAppException as e:
775-
self.trigger_error('Addition failed')
775+
self.trigger_exception(e)
776776

777777
self.credential_restore.emit()
778778

@@ -855,4 +855,4 @@ def backup_credential(self, data: DeviceData, pin_protected: bool) -> None:
855855
def restore_credential(self, data:DeviceData, backup_conent: str) -> None:
856856
job = RestoreCredentialJob(self.common_ui, self.pin_cache, self.pin_ui, data, backup_conent)
857857
job.credential_restore.connect(self.credential_restore)
858-
self.run(job)
858+
self.run(job)

0 commit comments

Comments
 (0)