void CertWizard::on_qleImportFile_textChanged(const QString &text) { if (text.isEmpty()) { qlePassword->clear(); qlePassword->setEnabled(false); qlPassword->setEnabled(false); qwpImport->setComplete(false); return; } QString fname = QDir::fromNativeSeparators(text); QFile f(fname); if (f.open(QIODevice::ReadOnly)) { QByteArray qba = f.readAll(); QPair<QList<QSslCertificate>, QSslKey> imp = importCert(qba, qlePassword->text()); if (validateCert(imp)) { qlePassword->setEnabled(false); qlPassword->setEnabled(false); cvImport->setCert(imp.first); qwpImport->setComplete(true); return; } else { qlePassword->setEnabled(true); qlPassword->setEnabled(true); } } else { qlePassword->clear(); qlePassword->setEnabled(false); qlPassword->setEnabled(false); } cvImport->setCert(QList<QSslCertificate>()); qwpImport->setComplete(false); }
bool CertWizard::validateCurrentPage() { if (currentPage() == qwpNew) { QRegExp ereg(QLatin1String("(^$)|((.+)@(.+))"), Qt::CaseInsensitive, QRegExp::RegExp2); if (!ereg.exactMatch(qleEmail->text())) { qlError->setText(tr("Unable to validate email.<br />Enter a valid (or blank) email to continue.")); qwpNew->setComplete(false); return false; } else { kpNew = generateNewCert(qleName->text(), qleEmail->text()); if (! validateCert(kpNew)) { qlError->setText(tr("There was an error generating your certificate.<br />Please try again.")); return false; } } } if (currentPage() == qwpExport) { QByteArray qba = exportCert(kpNew); if (qba.isEmpty()) { QToolTip::showText(qleExportFile->mapToGlobal(QPoint(0,0)), tr("Your certificate and key could not be exported to PKCS#12 format. There might be an error in your certificate."), qleExportFile); return false; } QFile f(qleExportFile->text()); if (! f.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Unbuffered)) { QToolTip::showText(qleExportFile->mapToGlobal(QPoint(0,0)), tr("The file could not be opened for writing. Please use another file."), qleExportFile); return false; } qint64 written = f.write(qba); f.close(); if (written != qba.length()) { QToolTip::showText(qleExportFile->mapToGlobal(QPoint(0,0)), tr("The file could not be written successfully. Please use another file."), qleExportFile); return false; } } if (currentPage() == qwpImport) { QFile f(qleImportFile->text()); if (! f.open(QIODevice::ReadOnly | QIODevice::Unbuffered)) { QToolTip::showText(qleImportFile->mapToGlobal(QPoint(0,0)), tr("The file could not be opened for reading. Please use another file."), qleImportFile); return false; } QByteArray qba = f.readAll(); f.close(); if (qba.isEmpty()) { QToolTip::showText(qleImportFile->mapToGlobal(QPoint(0,0)), tr("The file is empty or could not be read. Please use another file."), qleImportFile); return false; } QPair<QList<QSslCertificate>, QSslKey> imp = importCert(qba, qlePassword->text()); if (! validateCert(imp)) { QToolTip::showText(qleImportFile->mapToGlobal(QPoint(0,0)), tr("The file did not contain a valid certificate and key. Please use another file."), qleImportFile); return false; } kpNew = imp; } if (currentPage() == qwpFinish) { g.s.kpCertificate = kpNew; } return QWizard::validateCurrentPage(); }
jint __MIX_PREFIX_FUNC_PASTE(MIX_PREFIX_UPAPI_FUNC,importCert(JNIEnv* env, jobject javaThis, jstring str_dev_name, jstring str_cert)) { if(!str_dev_name || !str_cert) { setLastErrInfo(EStateErrorInvalidArg); return EStateErrorInvalidArg; } return (jint)importCert((* env)->GetStringUTFChars(env, str_dev_name, 0), (* env)->GetStringUTFChars(env, str_cert, 0)); }