2828#include < QtCore/QTextStream>
2929#include < QtNetwork/QSslCertificate>
3030
31+ #include < digidocpp/Conf.h>
32+
33+ using namespace digidoc ;
34+
35+ static QTextStream &operator <<(QTextStream &s, bool result)
36+ {
37+ return s << (result ? " true" : " false" );
38+ }
39+
3140void Diagnostics::generalInfo (QTextStream &s)
3241{
3342 s << " <b>" << tr (" Arguments:" ) << " </b> " << Application::arguments ().join (' ' ) << " <br />"
@@ -45,18 +54,21 @@ void Diagnostics::generalInfo(QTextStream &s)
4554 << " <br />TSA_URL: " << Application::confValue (Application::TSAUrl).toString ()
4655 << " <br />SIVA_URL: " << Application::confValue (Application::SiVaUrl).toString ()
4756 << " <br /><b>CDOC2:</b>"
48- << " <br />" << Settings::CDOC2_DEFAULT.KEY << " : " << ( Settings::CDOC2_DEFAULT ? tr ( " true " ) : tr ( " false " ))
49- << " <br />" << Settings::CDOC2_USE_KEYSERVER.KEY << " : " << ( Settings::CDOC2_USE_KEYSERVER ? tr ( " true " ) : tr ( " false " ))
57+ << " <br />" << Settings::CDOC2_DEFAULT.KEY << " : " << Settings::CDOC2_DEFAULT
58+ << " <br />" << Settings::CDOC2_USE_KEYSERVER.KEY << " : " << Settings::CDOC2_USE_KEYSERVER
5059 << " <br />" << Settings::CDOC2_DEFAULT_KEYSERVER.KEY << " : " << Settings::CDOC2_DEFAULT_KEYSERVER
60+ << " <br /><b>Settings:</b>"
61+ << " <br />Proxy config: " << Settings::PROXY_CONFIG
62+ << " <br />Proxy auth: " << !CONF (proxyUser).empty ()
5163 << " <br /><br /><b>" << tr (" TSL signing certs" ) << " :</b>" ;
5264 for (const QSslCertificate &cert: Application::confValue (Application::TSLCerts).value <QList<QSslCertificate>>())
53- s << " <br />" << cert.subjectInfo (" CN" ).value (0 );
54- s << " <br /><br /><b>" << tr (" TSL cache" ) << " :</b>" ;
65+ s << " <br />" << cert.subjectInfo (" CN" ).value (0 ) << " (Exp: " << cert.expiryDate ().toString (QStringLiteral (" dd.MM.yyyy hh:mm:ss)" ));
5566 QString cache = Application::confValue (Application::TSLCache).toString ();
67+ s << " <br /><br /><b>" << tr (" TSL cache" ) << " </b> (" << cache << " ):" ;
5668 const QStringList tsllist = QDir (cache).entryList ({QStringLiteral (" *.xml" )});
5769 for (const QString &file: tsllist)
5870 {
59- if (uint ver = Application::readTSLVersion (cache + " / " + file); ver > 0 )
71+ if (uint ver = Application::readTSLVersion (cache + ' / ' + file); ver > 0 )
6072 s << " <br />" << file << " (" << ver << " )" ;
6173 }
6274 s << " <br /><br />" ;
@@ -77,10 +89,10 @@ void Diagnostics::generalInfo(QTextStream &s)
7789 s << " <b>" << tr (" Smart Card service status: " ) << " </b>" << " "
7890 << (QPCSC::instance ().serviceRunning () ? tr (" Running" ) : tr (" Not running" ));
7991
80- s << " <br /><b>" << tr (" Smart Card readers" ) << " :</b><br /> " ;
92+ s << " <br /><b>" << tr (" Smart Card readers" ) << " :</b>" ;
8193 for ( const QString &readername: QPCSC::instance ().readers () )
8294 {
83- s << readername;
95+ s << " <br /> " << readername;
8496 QPCSCReader reader ( readername, &QPCSC::instance () );
8597 if ( !reader.isPresent () )
8698 {
@@ -109,17 +121,10 @@ void Diagnostics::generalInfo(QTextStream &s)
109121 if ( !reader.isPresent () )
110122 continue ;
111123
112- reader.reconnect ( QPCSCReader::UnpowerCard );
113- QString cold = reader.atr ();
114- reader.reconnect ( QPCSCReader::ResetCard );
115- QString warm = reader.atr ();
116-
117- s << " ATR cold - " << cold << " <br />"
118- << " ATR warm - " << warm << " <br />" ;
119-
124+ s << " ATR - " << reader.atr () << " <br />" ;
120125 reader.beginTransaction ();
121126 constexpr auto APDU = &QByteArray::fromHex;
122- auto printAID = [&](const QLatin1String & label, const QByteArray &apdu)
127+ auto printAID = [&](QLatin1String label, const QByteArray &apdu)
123128 {
124129 QPCSCReader::Result r = reader.transfer (apdu);
125130 s << label << " : " << Qt::hex << r.SW ;
@@ -135,7 +140,6 @@ void Diagnostics::generalInfo(QTextStream &s)
135140 if (printAID (QLatin1String (" AID_THALES" ), APDU (" 00A4040C 0C A000000063504B43532D3135" )) &&
136141 reader.transfer (APDU (" 00A4080C 04 DFDD 5006" )))
137142 s << " ID - " << reader.transfer (APDU (" 00B00000 00" )).data << " <br />" ;
138- reader.endTransaction ();
139143 }
140144
141145#ifdef Q_OS_WIN
0 commit comments