46 QSharedPointer<CardConnectionWorker> mCardConnectionWorker;
49 TransmitCommand* createTransmitCommand(
const QVector<InputAPDUInfo>& pInputApduInfos,
const QString pSlotHandle);
53 EstablishPaceChannelCommand* createEstablishPaceChannelCommand(PACE_PASSWORD_ID pPacePasswordId,
const QString& pPacePassword,
const QByteArray& pEffectiveChat,
const QByteArray& pCertificateDescription);
54 SetEidPinCommand* createSetEidPinCommand(
const QString& pNewPin, quint8 pTimeoutSeconds);
59 const QString& pEphemeralPublicKeyAsHex,
60 const QString& pSignatureAsHex,
61 const QByteArray& pAuthenticatedAuxiliaryDataAsBinary);
64 QMetaObject::Connection call(
BaseCardCommand* pCommand,
const typename QtPrivate::FunctionPointer<T>::Object* pReceiver,
T pFunc)
66 pCommand->moveToThread(mCardConnectionWorker->thread());
72 QMetaObject::invokeMethod(pCommand,
"execute", Qt::QueuedConnection);
76 qCritical() <<
"Cannot invoke card command:" << pCommand->metaObject()->className();
77 pCommand->deleteLater();
80 return resultConnection;
85 void onReaderInfoChanged(
const ReaderInfo& pReaderInfo);
88 CardConnection(
const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
108 auto command = createDidAuthenticateEAC1Command();
109 return call(command, pReceiver, pFunc);
116 const QString& pEphemeralPublicKeyAsHex,
117 const QString& pSignatureAsHex,
118 const QByteArray& pAuthenticatedAuxiliaryDataAsBinary)
120 auto command = createDidAuthenticateEAC2Command(pCvcChain, pEphemeralPublicKeyAsHex, pSignatureAsHex, pAuthenticatedAuxiliaryDataAsBinary);
121 return call(command, pReceiver, pFunc);
129 auto command = createUnblockPinCommand(pPuk);
130 return call(command, pReceiver, pFunc);
136 PACE_PASSWORD_ID pPacePasswordId,
const QString& pPacePassword,
const QByteArray& pEffectiveChat = QByteArray(),
const QByteArray& pCertificateDescription = QByteArray())
138 EstablishPaceChannelCommand* command = createEstablishPaceChannelCommand(pPacePasswordId, pPacePassword, pEffectiveChat, pCertificateDescription);
139 return call(command, pReceiver, pFunc);
144 QMetaObject::Connection
callSetEidPinCommand(
const typename QtPrivate::FunctionPointer<T>::Object* pReceiver,
T pFunc,
145 const QString& pNewPin,
146 quint8 pTimeoutSeconds = 60)
148 auto command = createSetEidPinCommand(pNewPin, pTimeoutSeconds);
149 return call(command, pReceiver, pFunc);
156 auto command = createDestroyPaceChannelCommand();
157 return call(command, pReceiver, pFunc);
162 QMetaObject::Connection
callTransmitCommand(
const typename QtPrivate::FunctionPointer<T>::Object* pReceiver,
T pFunc,
163 const QVector<InputAPDUInfo>& pInputApduInfos,
const QString pSlotHandle = QString())
165 auto command = createTransmitCommand(pInputApduInfos, pSlotHandle);
166 return call(command, pReceiver, pFunc);
173 auto command = createUpdateRetryCounterCommand();
174 return call(command, pReceiver, pFunc);
QMetaObject::Connection callUpdateRetryCounterCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc)
Definition: CardConnection.h:171
CardConnection(const QSharedPointer< CardConnectionWorker > &pCardConnectionWorker)
Definition: CardConnection.cpp:10
Definition: UpdateRetryCounterCommand.h:16
QMetaObject::Connection callSetEidPinCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const QString &pNewPin, quint8 pTimeoutSeconds=60)
Definition: CardConnection.h:144
void commandDone(QSharedPointer< BaseCardCommand > pCommand)
Definition: SetEidPinCommand.h:16
Definition: DestroyPaceChannelCommand.h:16
Definition: DidAuthenticateEAC2Command.h:18
QMetaObject::Connection callDidAuthenticateEAC2Command(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const CVCertificateChain &pCvcChain, const QString &pEphemeralPublicKeyAsHex, const QString &pSignatureAsHex, const QByteArray &pAuthenticatedAuxiliaryDataAsBinary)
Definition: CardConnection.h:114
const ReaderInfo & getReaderInfo()
This method returns a stored copy of the reader info object.
Definition: CardConnection.cpp:26
QMetaObject::Connection callDestroyPaceChannelCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc)
Definition: CardConnection.h:154
Definition: ReaderInfo.h:17
Definition: CVCertificateChain.h:21
bool stopSecureMessaging()
Definition: CardConnection.cpp:32
QMetaObject::Connection callTransmitCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const QVector< InputAPDUInfo > &pInputApduInfos, const QString pSlotHandle=QString())
Definition: CardConnection.h:162
#define T(v)
Definition: http_parser.cpp:234
virtual ~CardConnection()
Destroys the CardConnection and disconnects from the card.
Definition: CardConnection.cpp:21
Definition: BaseCardCommand.h:22
Definition: UnblockPinCommand.h:16
This class represents a connection to a smart card.
Definition: CardConnection.h:37
Definition: TransmitCommand.h:19
QMetaObject::Connection callUnblockPinCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const QString &pPuk)
Definition: CardConnection.h:126
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
QMetaObject::Connection callEstablishPaceChannelCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, PACE_PASSWORD_ID pPacePasswordId, const QString &pPacePassword, const QByteArray &pEffectiveChat=QByteArray(), const QByteArray &pCertificateDescription=QByteArray())
Definition: CardConnection.h:135
QMetaObject::Connection callDidAuthenticateEAC1Command(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc)
Definition: CardConnection.h:106
Definition: DidAuthenticateEAC1Command.h:18
Definition: EstablishPaceChannelCommand.h:16