Skip to content

Commit b331f52

Browse files
authored
Simplify APDU SW usage (#1292)
IB-8231 Signed-off-by: Raul Metsma <[email protected]>
1 parent cd8d216 commit b331f52

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

client/Diagnostics.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727
#include <QtCore/QTextStream>
2828
#include <QtNetwork/QSslCertificate>
2929

30+
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
31+
namespace Qt {
32+
using ::hex;
33+
}
34+
#endif
35+
3036
void Diagnostics::generalInfo(QTextStream &s)
3137
{
3238
s << "<b>" << tr("Arguments:") << "</b> " << Application::arguments().join(' ') << "<br />"
@@ -122,10 +128,10 @@ void Diagnostics::generalInfo(QTextStream &s)
122128
{
123129
constexpr auto APDU = &QByteArray::fromHex;
124130
QPCSCReader::Result r = reader.transfer(apdu);
125-
s << label << ": " << r.SW.toHex();
126-
if (r.SW == APDU("9000")) s << " (OK)";
127-
if (r.SW == APDU("6A81")) s << " (Locked)";
128-
if (r.SW == APDU("6A82")) s << " (Not found)";
131+
s << label << ": " << Qt::hex << r.SW;
132+
if (r.SW == 0x9000) s << " (OK)";
133+
if (r.SW == 0x6A81) s << " (Locked)";
134+
if (r.SW == 0x6A82) s << " (Not found)";
129135
s << "<br />";
130136
return r;
131137
};

client/QSmartCard.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,9 @@ bool IDEMIACard::loadPerso(QPCSCReader *reader, QSmartCardDataPrivate *d) const
209209
readFailed = true;
210210
return QSslCertificate();
211211
}
212-
int size = quint8(fci[0x80][0]) << 8 | quint8(fci[0x80][1]);
213212
QByteArray cert;
214213
QByteArray cmd = READBINARY;
215-
while(cert.size() < size)
214+
for(int size = quint8(fci[0x80][0]) << 8 | quint8(fci[0x80][1]); cert.size() < size; )
216215
{
217216
cmd[2] = char(cert.size() >> 8);
218217
cmd[3] = char(cert.size());
@@ -312,7 +311,7 @@ QSmartCard::ErrorType QSmartCard::Private::handlePinResult(QPCSCReader *reader,
312311
{
313312
if(!response || forceUpdate)
314313
card->updateCounters(reader, t.d);
315-
switch((quint8(response.SW[0]) << 8) + quint8(response.SW[1]))
314+
switch(response.SW)
316315
{
317316
case 0x9000: return QSmartCard::NoError;
318317
case 0x63C0: return QSmartCard::BlockedError;//pin retry count 0

common

0 commit comments

Comments
 (0)