def _build_usage_policy(self, layout):
        self._pin_policy = QtGui.QComboBox()
        self._pin_policy.addItem(m.pin_policy_default, None)
        self._pin_policy.addItem(m.pin_policy_never, "never")
        self._pin_policy.addItem(m.pin_policy_once, "once")
        self._pin_policy.addItem(m.pin_policy_always, "always")
        pin_policy = settings[SETTINGS.PIN_POLICY]
        for index in range(self._pin_policy.count()):
            if self._pin_policy.itemData(index) == pin_policy:
                pin_policy_text = self._pin_policy.itemText(index)
                self._pin_policy.setCurrentIndex(index)
                break
        else:
            pin_policy = None
            pin_policy_text = m.pin_policy_default

        self._touch_policy = QtGui.QCheckBox(m.touch_policy)
        self._touch_policy.setChecked(settings[SETTINGS.TOUCH_POLICY])
        if self._controller.version_tuple < (4, 0, 0):
            return

        layout.addWidget(self.section(m.usage_policy))
        if settings.is_locked(SETTINGS.PIN_POLICY):
            layout.addWidget(QtGui.QLabel(m.pin_policy_1 % pin_policy_text))
        else:
            pin_policy_box = QtGui.QHBoxLayout()
            pin_policy_box.addWidget(QtGui.QLabel(m.pin_policy))
            pin_policy_box.addWidget(self._pin_policy)
            layout.addLayout(pin_policy_box)

        self._touch_policy.setDisabled(settings.is_locked(SETTINGS.TOUCH_POLICY))
        layout.addWidget(self._touch_policy)
 def _build_algorithms(self, layout):
     self._alg_type = QtGui.QButtonGroup(self)
     self._alg_rsa_1024 = QtGui.QRadioButton(m.alg_rsa_1024)
     self._alg_rsa_1024.setProperty('value', 'RSA1024')
     self._alg_rsa_2048 = QtGui.QRadioButton(m.alg_rsa_2048)
     self._alg_rsa_2048.setProperty('value', 'RSA2048')
     self._alg_ecc_p256 = QtGui.QRadioButton(m.alg_ecc_p256)
     self._alg_ecc_p256.setProperty('value', 'ECCP256')
     self._alg_ecc_p384 = QtGui.QRadioButton(m.alg_ecc_p384)
     self._alg_ecc_p384.setProperty('value', 'ECCP384')
     self._alg_type.addButton(self._alg_rsa_1024)
     self._alg_type.addButton(self._alg_rsa_2048)
     self._alg_type.addButton(self._alg_ecc_p256)
     if self._controller.version_tuple >= (4, 0, 0):
         self._alg_type.addButton(self._alg_ecc_p384)
     algo = settings[SETTINGS.ALGORITHM]
     if settings.is_locked(SETTINGS.ALGORITHM):
         layout.addWidget(QtGui.QLabel(m.algorithm_1 % algo))
     else:
         layout.addWidget(self.section(m.algorithm))
         for button in self._alg_type.buttons():
             layout.addWidget(button)
             if button.property('value') == algo:
                 button.setChecked(True)
                 button.setFocus()
         if not self._alg_type.checkedButton():
             button = self._alg_type.buttons()[0]
             button.setChecked(True)
    def _generate_callback2(self, result):
        self.accept()
        if isinstance(result, Exception):
            QtGui.QMessageBox.warning(self, m.error, str(result))
        else:
            settings[SETTINGS.ALGORITHM] = self.algorithm
            if self._controller.version_tuple >= (4, 0, 0):
                settings[SETTINGS.TOUCH_POLICY] = self.touch_policy
            settings[SETTINGS.OUT_TYPE] = self.out_format
            if self.out_format != 'pk' and not \
                    settings.is_locked(SETTINGS.SUBJECT):
                subject = self._subject.text()
                # Only save if different:
                if subject != settings[SETTINGS.SUBJECT]:
                    settings[SETTINGS.SUBJECT] = subject
            if self.out_format == 'ca':
                settings[SETTINGS.CERTREQ_TEMPLATE] = self._cert_tmpl.text()

            message = m.generated_key_desc_1 % self._slot
            if self.out_format == 'pk':
                message += '\n' + m.gen_out_pk_1 % result
            elif self.out_format == 'csr':
                message += '\n' + m.gen_out_csr_1 % result
            elif self.out_format == 'ssc':
                message += '\n' + m.gen_out_ssc
            elif self.out_format == 'ca':
                message += '\n' + m.gen_out_ca

            QtGui.QMessageBox.information(self, m.generated_key, message)
 def _build_algorithms(self, layout):
     self._alg_type = QtGui.QButtonGroup(self)
     self._alg_rsa_1024 = QtGui.QRadioButton(m.alg_rsa_1024)
     self._alg_rsa_1024.setProperty('value', 'RSA1024')
     self._alg_rsa_2048 = QtGui.QRadioButton(m.alg_rsa_2048)
     self._alg_rsa_2048.setProperty('value', 'RSA2048')
     self._alg_ecc_p256 = QtGui.QRadioButton(m.alg_ecc_p256)
     self._alg_ecc_p256.setProperty('value', 'ECCP256')
     self._alg_ecc_p384 = QtGui.QRadioButton(m.alg_ecc_p384)
     self._alg_ecc_p384.setProperty('value', 'ECCP384')
     self._alg_type.addButton(self._alg_rsa_1024)
     self._alg_type.addButton(self._alg_rsa_2048)
     self._alg_type.addButton(self._alg_ecc_p256)
     if self._controller.version_tuple >= (4, 0, 0):
         self._alg_type.addButton(self._alg_ecc_p384)
     algo = settings[SETTINGS.ALGORITHM]
     if settings.is_locked(SETTINGS.ALGORITHM):
         layout.addWidget(QtGui.QLabel(m.algorithm_1 % algo))
     else:
         layout.addWidget(self.section(m.algorithm))
         for button in self._alg_type.buttons():
             layout.addWidget(button)
             if button.property('value') == algo:
                 button.setChecked(True)
                 button.setFocus()
         if not self._alg_type.checkedButton():
             button = self._alg_type.buttons()[0]
             button.setChecked(True)
示例#5
0
    def _build_ui(self):
        layout = QtGui.QVBoxLayout(self)
        layout.setSizeConstraint(QtGui.QLayout.SetFixedSize)

        btns = QtGui.QHBoxLayout()
        self._pin_btn = QtGui.QPushButton(m.change_pin)
        self._pin_btn.clicked.connect(self._controller.wrap(self._change_pin,
                                                            True))
        btns.addWidget(self._pin_btn)

        self._puk_btn = QtGui.QPushButton(m.change_puk)
        self._puk_btn.clicked.connect(self._controller.wrap(self._change_puk,
                                                            True))

        self._key_btn = QtGui.QPushButton(m.change_key)
        self._key_btn.clicked.connect(self._controller.wrap(self._change_key,
                                                            True))
        if not settings.is_locked(SETTINGS.PIN_AS_KEY) or \
                not settings[SETTINGS.PIN_AS_KEY]:
            btns.addWidget(self._puk_btn)
            btns.addWidget(self._key_btn)
        layout.addLayout(btns)

        self._messages = QtGui.QTextEdit()
        self._messages.setFixedSize(480, 100)
        self._messages.setReadOnly(True)
        layout.addWidget(self._messages)
示例#6
0
    def _build_ui(self):
        layout = QtGui.QVBoxLayout(self)
        layout.setSizeConstraint(QtGui.QLayout.SetFixedSize)

        btns = QtGui.QHBoxLayout()
        self._pin_btn = QtGui.QPushButton(m.change_pin)
        self._pin_btn.clicked.connect(
            self._controller.wrap(self._change_pin, True))
        btns.addWidget(self._pin_btn)

        self._puk_btn = QtGui.QPushButton(m.change_puk)
        self._puk_btn.clicked.connect(
            self._controller.wrap(self._change_puk, True))

        self._key_btn = QtGui.QPushButton(m.change_key)
        self._key_btn.clicked.connect(
            self._controller.wrap(self._change_key, True))
        if not settings.is_locked(SETTINGS.PIN_AS_KEY) or \
                not settings[SETTINGS.PIN_AS_KEY]:
            btns.addWidget(self._puk_btn)
            btns.addWidget(self._key_btn)
        layout.addLayout(btns)

        self._messages = QtGui.QTextEdit()
        self._messages.setFixedSize(480, 100)
        self._messages.setReadOnly(True)
        layout.addWidget(self._messages)
    def _generate_callback2(self, result):
        self.accept()
        if isinstance(result, Exception):
            QtGui.QMessageBox.warning(self, m.error, str(result))
        else:
            settings[SETTINGS.ALGORITHM] = self.algorithm
            if self._controller.version_tuple >= (4, 0, 0):
                settings[SETTINGS.TOUCH_POLICY] = self.touch_policy
            settings[SETTINGS.OUT_TYPE] = self.out_format
            if self.out_format != 'pk' and not \
                    settings.is_locked(SETTINGS.SUBJECT):
                subject = self._subject.text()
                # Only save if different:
                if subject != settings[SETTINGS.SUBJECT]:
                    settings[SETTINGS.SUBJECT] = subject
            if self.out_format == 'ca':
                settings[SETTINGS.CERTREQ_TEMPLATE] = self._cert_tmpl.text()

            message = m.generated_key_desc_1 % self._slot
            if self.out_format == 'pk':
                message += '\n' + m.gen_out_pk_1 % result
            elif self.out_format == 'csr':
                message += '\n' + m.gen_out_csr_1 % result
            elif self.out_format == 'ssc':
                message += '\n' + m.gen_out_ssc
            elif self.out_format == 'ca':
                message += '\n' + m.gen_out_ca

            QtGui.QMessageBox.information(self, m.generated_key, message)
 def _init_callback(self, result):
     if isinstance(result, DeviceGoneError):
         QtGui.QMessageBox.warning(self, m.error, m.device_unplugged)
         self.accept()
     elif isinstance(result, Exception):
         QtGui.QMessageBox.warning(self, m.error, str(result))
     else:
         if not settings.is_locked(SETTINGS.PIN_AS_KEY):
             settings[SETTINGS.PIN_AS_KEY] = self._key_panel.use_pin
         self.accept()
 def _init_callback(self, result):
     if isinstance(result, DeviceGoneError):
         QtGui.QMessageBox.warning(self, m.error, m.device_unplugged)
         self.accept()
     elif isinstance(result, Exception):
         QtGui.QMessageBox.warning(self, m.error, str(result))
     else:
         if not settings.is_locked(SETTINGS.PIN_AS_KEY):
             settings[SETTINGS.PIN_AS_KEY] = self._key_panel.use_pin
         self.accept()
示例#10
0
    def _build_usage_policy(self, layout):
        self._pin_policy = QtGui.QComboBox()
        self._pin_policy.addItem(m.pin_policy_default, None)
        self._pin_policy.addItem(m.pin_policy_never, 'never')
        self._pin_policy.addItem(m.pin_policy_once, 'once')
        self._pin_policy.addItem(m.pin_policy_always, 'always')

        self._touch_policy = QtGui.QCheckBox(m.touch_policy)
        if self._controller.version_tuple < (4, 0, 0):
            return

        use_pin_policy = self._slot in settings[SETTINGS.PIN_POLICY_SLOTS]
        use_touch_policy = self._slot in settings[SETTINGS.TOUCH_POLICY_SLOTS]

        if use_pin_policy or use_touch_policy:
            self.has_content = True
            layout.addWidget(self.section(m.usage_policy))

        if use_pin_policy:
            pin_policy = settings[SETTINGS.PIN_POLICY]
            for index in range(self._pin_policy.count()):
                if self._pin_policy.itemData(index) == pin_policy:
                    pin_policy_text = self._pin_policy.itemText(index)
                    self._pin_policy.setCurrentIndex(index)
                    break
            else:
                pin_policy = None
                pin_policy_text = m.pin_policy_default

            if settings.is_locked(SETTINGS.PIN_POLICY):
                layout.addWidget(QtGui.QLabel(m.pin_policy_1 %
                                              pin_policy_text))
            else:
                pin_policy_box = QtGui.QHBoxLayout()
                pin_policy_box.addWidget(QtGui.QLabel(m.pin_policy))
                pin_policy_box.addWidget(self._pin_policy)
                layout.addLayout(pin_policy_box)

        if use_touch_policy:
            self._touch_policy.setChecked(settings[SETTINGS.TOUCH_POLICY])
            self._touch_policy.setDisabled(
                settings.is_locked(SETTINGS.TOUCH_POLICY))
            layout.addWidget(self._touch_policy)
    def _build_ui(self):
        layout = QtGui.QFormLayout(self)

        layout.addRow(self.section(m.pin))

        self._complex_pins = QtGui.QCheckBox(m.use_complex_pins)
        self._complex_pins.setChecked(settings[SETTINGS.COMPLEX_PINS])
        self._complex_pins.setDisabled(
            settings.is_locked(SETTINGS.COMPLEX_PINS))
        layout.addRow(self._complex_pins)

        self._pin_expires = QtGui.QCheckBox(m.pin_expires)
        self._pin_expires_days = QtGui.QSpinBox()
        self._pin_expires_days.setMinimum(30)

        pin_expires = settings[SETTINGS.PIN_EXPIRATION]
        pin_expiry_locked = settings.is_locked(SETTINGS.PIN_EXPIRATION)
        self._pin_expires.setChecked(bool(pin_expires))
        self._pin_expires_days.setValue(pin_expires)
        self._pin_expires.setDisabled(pin_expiry_locked)
        self._pin_expires_days.setDisabled(
            pin_expiry_locked or not pin_expires)
        self._pin_expires.stateChanged.connect(
            self._pin_expires_days.setEnabled)
        layout.addRow(self._pin_expires)
        layout.addRow(m.pin_expires_days, self._pin_expires_days)

        layout.addRow(self.section(m.misc))
        reader_pattern = settings[SETTINGS.CARD_READER]
        self._reader_pattern = QtGui.QLineEdit(reader_pattern)
        layout.addRow(m.reader_name, self._reader_pattern)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok |
                                         QtGui.QDialogButtonBox.Cancel)
        buttons.accepted.connect(self._save)
        buttons.rejected.connect(self.reject)
        layout.addWidget(buttons)
示例#12
0
    def _build_ui(self):
        layout = QtGui.QFormLayout(self)

        layout.addRow(self.section(m.pin))

        self._complex_pins = QtGui.QCheckBox(m.use_complex_pins)
        self._complex_pins.setChecked(settings[SETTINGS.COMPLEX_PINS])
        self._complex_pins.setDisabled(
            settings.is_locked(SETTINGS.COMPLEX_PINS))
        layout.addRow(self._complex_pins)

        self._pin_expires = QtGui.QCheckBox(m.pin_expires)
        self._pin_expires_days = QtGui.QSpinBox()
        self._pin_expires_days.setMinimum(30)

        pin_expires = settings[SETTINGS.PIN_EXPIRATION]
        pin_expiry_locked = settings.is_locked(SETTINGS.PIN_EXPIRATION)
        self._pin_expires.setChecked(bool(pin_expires))
        self._pin_expires_days.setValue(pin_expires)
        self._pin_expires.setDisabled(pin_expiry_locked)
        self._pin_expires_days.setDisabled(pin_expiry_locked
                                           or not pin_expires)
        self._pin_expires.stateChanged.connect(
            self._pin_expires_days.setEnabled)
        layout.addRow(self._pin_expires)
        layout.addRow(m.pin_expires_days, self._pin_expires_days)

        layout.addRow(self.section(m.misc))
        reader_pattern = settings[SETTINGS.CARD_READER]
        self._reader_pattern = QtGui.QLineEdit(reader_pattern)
        layout.addRow(m.reader_name, self._reader_pattern)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok
                                         | QtGui.QDialogButtonBox.Cancel)
        buttons.accepted.connect(self._save)
        buttons.rejected.connect(self.reject)
        layout.addWidget(buttons)
    def _build_ui(self):
        layout = QtGui.QVBoxLayout(self)

        self._pin_panel = PinPanel(self.headers)
        layout.addWidget(self._pin_panel)
        self._key_panel = KeyPanel(self.headers)
        if not settings.is_locked(SETTINGS.PIN_AS_KEY) or \
                not settings[SETTINGS.PIN_AS_KEY]:
            layout.addWidget(self._key_panel)
        layout.addStretch()

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        self._ok_btn = buttons.button(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._initialize)
        layout.addWidget(buttons)
    def _build_ui(self):
        layout = QtGui.QVBoxLayout(self)

        self._pin_panel = PinPanel(self.headers)
        layout.addWidget(self._pin_panel)
        self._key_panel = KeyPanel(self.headers)
        if not settings.is_locked(SETTINGS.PIN_AS_KEY) or \
                not settings[SETTINGS.PIN_AS_KEY]:
            layout.addWidget(self._key_panel)

        layout.addStretch()

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        self._ok_btn = buttons.button(QtGui.QDialogButtonBox.Ok)
        buttons.accepted.connect(self._initialize)
        layout.addWidget(buttons)
示例#15
0
    def _build_ui(self):
        layout = QtGui.QVBoxLayout(self)
        # This unfortunately causes the window to resize when switching tabs.
        # layout.setSizeConstraint(QtGui.QLayout.SetFixedSize)

        self._cert_tabs = QtGui.QTabWidget()
        self._cert_tabs.setMinimumSize(540, 160)
        shown_slots = settings[SETTINGS.SHOWN_SLOTS]
        selected = False
        for (slot, label) in sorted(SLOTS.items()):
            if slot in shown_slots:
                index = self._cert_tabs.addTab(
                    CertWidget(self._controller, slot), label)
                if not selected:
                    self._cert_tabs.setCurrentIndex(index)
                    selected = True
            elif not settings.is_locked(SETTINGS.SHOWN_SLOTS):
                index = self._cert_tabs.addTab(QtGui.QLabel(), label)
                self._cert_tabs.setTabEnabled(index, False)
        layout.addWidget(self._cert_tabs)
示例#16
0
    def _build_ui(self):
        layout = QtGui.QVBoxLayout(self)
        # This unfortunately causes the window to resize when switching tabs.
        # layout.setSizeConstraint(QtGui.QLayout.SetFixedSize)

        self._cert_tabs = QtGui.QTabWidget()
        self._cert_tabs.setMinimumSize(540, 160)
        shown_slots = settings[SETTINGS.SHOWN_SLOTS]
        selected = False
        for (slot, label) in sorted(SLOTS.items()):
            if slot in shown_slots:
                index = self._cert_tabs.addTab(
                    CertWidget(self._controller, slot), label)
                if not selected:
                    self._cert_tabs.setCurrentIndex(index)
                    selected = True
            elif not settings.is_locked(SETTINGS.SHOWN_SLOTS):
                index = self._cert_tabs.addTab(QtGui.QLabel(), label)
                self._cert_tabs.setTabEnabled(index, False)
        layout.addWidget(self._cert_tabs)
示例#17
0
 def touch_policy(self):
     if self._controller.version_tuple < (4, 0, 0):
         return False
     if settings.is_locked(SETTINGS.TOUCH_POLICY):
         return settings[SETTINGS.TOUCH_POLICY]
     return self._touch_policy.isChecked()
 def algorithm(self):
     if settings.is_locked(SETTINGS.ALGORITHM):
         return settings[SETTINGS.ALGORITHM]
     return self._alg_type.checkedButton().property('value')
 def touch_policy(self):
     if self._controller.version_tuple < (4, 0, 0):
         return False
     if settings.is_locked(SETTINGS.TOUCH_POLICY):
         return settings[SETTINGS.TOUCH_POLICY]
     return self._touch_policy.isChecked()
 def pin_policy(self):
     if settings.is_locked(SETTINGS.PIN_POLICY):
         return settings[SETTINGS.PIN_POLICY]
     return self._pin_policy.itemData(self._pin_policy.currentIndex())
    def _build_output(self, layout):
        layout.addWidget(self.section(m.output))
        self._out_type = QtGui.QButtonGroup(self)
        self._out_pk = QtGui.QRadioButton(m.out_pk)
        self._out_pk.setProperty('value', 'pk')
        self._out_ssc = QtGui.QRadioButton(m.out_ssc)
        self._out_ssc.setProperty('value', 'ssc')
        self._out_csr = QtGui.QRadioButton(m.out_csr)
        self._out_csr.setProperty('value', 'csr')
        self._out_ca = QtGui.QRadioButton(m.out_ca)
        self._out_ca.setProperty('value', 'ca')
        self._out_type.addButton(self._out_pk)
        self._out_type.addButton(self._out_ssc)
        self._out_type.addButton(self._out_csr)
        out_btns = []
        for button in self._out_type.buttons():
            value = button.property('value')
            if value in settings[SETTINGS.SHOWN_OUT_FORMS]:
                layout.addWidget(button)
                out_btns.append(button)
                if value == settings[SETTINGS.OUT_TYPE]:
                    button.setChecked(True)

        self._cert_tmpl = QtGui.QLineEdit(settings[SETTINGS.CERTREQ_TEMPLATE])
        if 'ca' in settings[SETTINGS.SHOWN_OUT_FORMS]:
            if has_ca():
                out_btns.append(self._out_ca)
                self._out_type.addButton(self._out_ca)
                self._out_ca.setChecked(True)
                layout.addWidget(self._out_ca)
                if not settings.is_locked(SETTINGS.CERTREQ_TEMPLATE):
                    cert_box = QtGui.QHBoxLayout()
                    cert_box.addWidget(QtGui.QLabel(m.cert_tmpl))
                    cert_box.addWidget(self._cert_tmpl)
                    layout.addLayout(cert_box)
            else:
                layout.addWidget(QtGui.QLabel(m.ca_not_connected))

        self._out_type.buttonClicked.connect(self._output_changed)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok
                                         | QtGui.QDialogButtonBox.Cancel)

        self._subject = QtGui.QLineEdit(settings[SETTINGS.SUBJECT])
        self._subject.setValidator(SUBJECT_VALIDATOR)

        today = QtCore.QDate.currentDate()
        self._expire_date = QtGui.QDateTimeEdit(today.addYears(1))
        self._expire_date.setDisplayFormat("yyyy-MM-dd")
        self._expire_date.setMinimumDate(today.addDays(1))

        if not out_btns:
            layout.addWidget(QtGui.QLabel(m.no_output))
            buttons.button(QtGui.QDialogButtonBox.Ok).setDisabled(True)
        else:
            if not settings.is_locked(SETTINGS.SUBJECT) and \
                    needs_subject([b.property('value') for b in out_btns]):
                subject_box = QtGui.QHBoxLayout()
                subject_box.addWidget(QtGui.QLabel(m.subject))
                subject_box.addWidget(self._subject)
                layout.addLayout(subject_box)
                expire_date = QtGui.QHBoxLayout()
                expire_date.addWidget(QtGui.QLabel(m.expiration_date))
                expire_date.addWidget(self._expire_date)
                layout.addLayout(expire_date)

            out_btn = self._out_type.checkedButton()
            if out_btn is None:
                out_btn = out_btns[0]
                out_btn.setChecked(True)
            self._output_changed(out_btn)
        buttons.accepted.connect(self._generate)
        buttons.rejected.connect(self.reject)
        layout.addWidget(buttons)
    def _build_output(self, layout):
        layout.addWidget(self.section(m.output))
        self._out_type = QtGui.QButtonGroup(self)
        self._out_pk = QtGui.QRadioButton(m.out_pk)
        self._out_pk.setProperty('value', 'pk')
        self._out_ssc = QtGui.QRadioButton(m.out_ssc)
        self._out_ssc.setProperty('value', 'ssc')
        self._out_csr = QtGui.QRadioButton(m.out_csr)
        self._out_csr.setProperty('value', 'csr')
        self._out_ca = QtGui.QRadioButton(m.out_ca)
        self._out_ca.setProperty('value', 'ca')
        self._out_type.addButton(self._out_pk)
        self._out_type.addButton(self._out_ssc)
        self._out_type.addButton(self._out_csr)
        out_btns = []
        for button in self._out_type.buttons():
            value = button.property('value')
            if value in settings[SETTINGS.SHOWN_OUT_FORMS]:
                layout.addWidget(button)
                out_btns.append(button)
                if value == settings[SETTINGS.OUT_TYPE]:
                    button.setChecked(True)

        self._cert_tmpl = QtGui.QLineEdit(settings[SETTINGS.CERTREQ_TEMPLATE])
        if 'ca' in settings[SETTINGS.SHOWN_OUT_FORMS]:
            if has_ca():
                out_btns.append(self._out_ca)
                self._out_type.addButton(self._out_ca)
                self._out_ca.setChecked(True)
                layout.addWidget(self._out_ca)
                if not settings.is_locked(SETTINGS.CERTREQ_TEMPLATE):
                    cert_box = QtGui.QHBoxLayout()
                    cert_box.addWidget(QtGui.QLabel(m.cert_tmpl))
                    cert_box.addWidget(self._cert_tmpl)
                    layout.addLayout(cert_box)
            else:
                layout.addWidget(QtGui.QLabel(m.ca_not_connected))

        self._out_type.buttonClicked.connect(self._output_changed)

        buttons = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok |
                                         QtGui.QDialogButtonBox.Cancel)

        self._subject = QtGui.QLineEdit(settings[SETTINGS.SUBJECT])
        self._subject.setValidator(SUBJECT_VALIDATOR)
        if not out_btns:
            layout.addWidget(QtGui.QLabel(m.no_output))
            buttons.button(QtGui.QDialogButtonBox.Ok).setDisabled(True)
        else:
            if not settings.is_locked(SETTINGS.SUBJECT) and \
                    needs_subject([b.property('value') for b in out_btns]):
                subject_box = QtGui.QHBoxLayout()
                subject_box.addWidget(QtGui.QLabel(m.subject))
                subject_box.addWidget(self._subject)
                layout.addLayout(subject_box)
            out_btn = self._out_type.checkedButton()
            if out_btn is None:
                out_btn = out_btns[0]
                out_btn.setChecked(True)
            self._output_changed(out_btn)
        buttons.accepted.connect(self._generate)
        buttons.rejected.connect(self.reject)
        layout.addWidget(buttons)
 def algorithm(self):
     if settings.is_locked(SETTINGS.ALGORITHM):
         return settings[SETTINGS.ALGORITHM]
     return self._alg_type.checkedButton().property('value')
示例#24
0
 def pin_policy(self):
     if settings.is_locked(SETTINGS.PIN_POLICY):
         return settings[SETTINGS.PIN_POLICY]
     return self._pin_policy.itemData(self._pin_policy.currentIndex())