diff --git a/nitrokeyapp/secrets_tab/__init__.py b/nitrokeyapp/secrets_tab/__init__.py index dd8d0a30..9ddf893a 100644 --- a/nitrokeyapp/secrets_tab/__init__.py +++ b/nitrokeyapp/secrets_tab/__init__.py @@ -508,6 +508,8 @@ def edit_credential(self, credential: Credential) -> None: self.ui.select_algorithm.setCurrentText(str(credential.otp)) self.ui.select_algorithm.setEnabled(True) + self.check_credential() + def act_enable_otp_edit(self) -> None: assert self.active_credential self.active_credential.new_secret = True @@ -517,6 +519,8 @@ def act_enable_otp_edit(self) -> None: self.ui.otp.setPlaceholderText("") self.ui.otp.setText("") + self.check_credential() + @Slot() def add_new_credential(self) -> None: if not self.data: @@ -581,8 +585,12 @@ def check_credential(self) -> None: otp_secret = self.ui.otp.text() algo = self.ui.select_algorithm.currentText() - if algo != "None" and not is_base32(otp_secret): - can_save = False + if self.ui.select_algorithm.isEnabled(): + if algo != "None" and not is_base32(otp_secret): + can_save = False + + if algo != "None" and len(otp_secret) < 1: + can_save = False if len(self.ui.name.text()) < 3: can_save = False