diff --git a/src/userconfigbase.ui b/src/userconfigbase.ui index 4439222..581d1c8 100644 --- a/src/userconfigbase.ui +++ b/src/userconfigbase.ui @@ -935,7 +935,21 @@ 17 - + + + enableAutoPIN + + + Store PIN in certificate + + + + + autoPIN + + + + createCertificate @@ -943,7 +957,7 @@ Generate New PKI Certificate - + unnamed_layoutwidget1 diff --git a/src/userconfigdlg.cpp b/src/userconfigdlg.cpp index 9e90065..13d4b26 100644 --- a/src/userconfigdlg.cpp +++ b/src/userconfigdlg.cpp @@ -81,6 +81,8 @@ UserConfigDialog::UserConfigDialog(LDAPUserInfo user, LDAPConfig* parent, const connect(m_base->certGenPrivateKey, TQT_SIGNAL(clicked()), this, TQT_SLOT(processLockouts())); connect(m_base->certPrivateKeyFileName, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(processLockouts())); connect(m_base->certPublicCertFileName, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(processLockouts())); + connect(m_base->enableAutoPIN, TQT_SIGNAL(clicked()), this, TQT_SLOT(processLockouts())); + connect(m_base->autoPIN, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT(processLockouts())); connect(m_base->createCertificate, TQT_SIGNAL(clicked()), this, TQT_SLOT(createPKICertificate())); connect(m_base->revokeCertificate, TQT_SIGNAL(clicked()), this, TQT_SLOT(revokePKICertificate())); connect(m_base->downloadCertificate, TQT_SIGNAL(clicked()), this, TQT_SLOT(downloadPKICertificate())); @@ -243,6 +245,13 @@ void UserConfigDialog::processLockouts() { m_base->passwordMinAge->setEnabled(false); } + if (m_base->enableAutoPIN->isChecked()) { + m_base->autoPIN->setEnabled(true); + } + else { + m_base->autoPIN->setEnabled(false); + } + // Disable the primary group checkbox in the group list TQListViewItemIterator it(m_base->secondary_group_list); while (it.current()) { @@ -287,6 +296,11 @@ void UserConfigDialog::processLockouts() { ok_enabled = false; } } + if (m_base->enableAutoPIN->isChecked()) { + if (m_base->autoPIN->text() == "") { + ok_enabled = false; + } + } m_base->createCertificate->setEnabled(ok_enabled); TQListViewItem* lvi = m_base->certPKIDatabaseList->selectedItem(); @@ -342,7 +356,12 @@ void UserConfigDialog::createPKICertificate() { } caPrivateKeyTempFile.sync(); - ret = LDAPManager::generateClientCertificatePublicCertificate(expirydays, m_user, realms[m_ldapconfig->m_ldapmanager->realm()], caPrivateKeyTempFile.name(), m_base->certPrivateKeyFileName->url(), m_base->certPublicCertFileName->url()); + if (m_base->enableAutoPIN->isChecked()) { + ret = LDAPManager::generateClientCertificatePublicCertificate(expirydays, m_user, realms[m_ldapconfig->m_ldapmanager->realm()], caPrivateKeyTempFile.name(), m_base->certPrivateKeyFileName->url(), m_base->certPublicCertFileName->url(), m_base->autoPIN->text()); + } + else { + ret = LDAPManager::generateClientCertificatePublicCertificate(expirydays, m_user, realms[m_ldapconfig->m_ldapmanager->realm()], caPrivateKeyTempFile.name(), m_base->certPrivateKeyFileName->url(), m_base->certPublicCertFileName->url()); + } // Delete the private key as soon as possible after certificate signing caPrivateKeyTempFile.unlink();