diff --git a/lib/pki_pkcs12.cpp b/lib/pki_pkcs12.cpp index 8e977f75..8539121f 100644 --- a/lib/pki_pkcs12.cpp +++ b/lib/pki_pkcs12.cpp @@ -207,6 +207,14 @@ QString encAlgo::name() const return QString(encAlgo_nid == NID_undef ? "" : OBJ_nid2sn(encAlgo_nid)); } +QString encAlgo::displayName() const +{ + QString n = name(); + if (legacy()) + n += QString(" (%1)").arg(QObject::tr("insecure")); + return n; +} + int encAlgo::getEncAlgoNid() const { return encAlgo_nid; diff --git a/lib/pki_pkcs12.h b/lib/pki_pkcs12.h index 0d30f93e..2714a2c1 100644 --- a/lib/pki_pkcs12.h +++ b/lib/pki_pkcs12.h @@ -28,6 +28,7 @@ class encAlgo encAlgo& operator=(const encAlgo &d) = default; QString name() const; + QString displayName() const; int getEncAlgoNid() const; bool legacy() const { diff --git a/widgets/pkcs12EncBox.cpp b/widgets/pkcs12EncBox.cpp index 211ea4dc..5f4471bc 100644 --- a/widgets/pkcs12EncBox.cpp +++ b/widgets/pkcs12EncBox.cpp @@ -16,34 +16,34 @@ pkcs12EncBox::pkcs12EncBox(QWidget *parent) const encAlgo pkcs12EncBox::current() const { - return encAlgo(currentText()); + return encAlgo(currentData().toInt()); } void pkcs12EncBox::setCurrent(const encAlgo &md) { - int idx = findText(md.name()); + int idx = findData(QVariant(md.getEncAlgoNid())); if (idx != -1) { setCurrentIndex(idx); - wanted_encAlgo = ""; + wanted_encAlgo = NID_undef; } else { - wanted_encAlgo = md.name(); + wanted_encAlgo = md.getEncAlgoNid(); } } void pkcs12EncBox::setupEncAlgos(QList nids) { - QString md = currentText(); + int md = currentData().toInt(); - if (!wanted_encAlgo.isEmpty()) + if (wanted_encAlgo != NID_undef) md = wanted_encAlgo; clear(); foreach(int nid, encAlgo::all_encAlgos) { if (nids.contains(nid)) - addItem(encAlgo(nid).name()); + addItem(encAlgo(nid).displayName(), QVariant(nid)); } setEnabled(count() > 0); setDefaultEncAlgo(); - if (!md.isEmpty()) + if (md != NID_undef) setCurrent(encAlgo(md)); else setDefaultEncAlgo(); diff --git a/widgets/pkcs12EncBox.h b/widgets/pkcs12EncBox.h index 4e8199c7..b97dac0b 100644 --- a/widgets/pkcs12EncBox.h +++ b/widgets/pkcs12EncBox.h @@ -14,8 +14,10 @@ class pkcs12EncBox: public QComboBox { Q_OBJECT + private: - QString wanted_encAlgo{}; + int wanted_encAlgo{}; + public: pkcs12EncBox(QWidget *parent); const encAlgo current() const;