30 class test_CardConnection;
31 class test_StatePreparePace;
43 friend class ::test_CardConnection;
50 QSharedPointer<CardConnectionWorker> mCardConnectionWorker;
53 bool mPaceCanSuccessful;
54 bool mPacePinSuccessful;
56 TransmitCommand* createTransmitCommand(
const QVector<InputAPDUInfo>& pInputApduInfos,
const QString& pSlotHandle);
60 EstablishPaceChannelCommand* createEstablishPaceChannelCommand(PacePasswordId pPacePasswordId,
const QString& pPacePassword,
const QByteArray& pEffectiveChat,
const QByteArray& pCertificateDescription);
66 const QString& pEphemeralPublicKeyAsHex,
67 const QString& pSignatureAsHex,
68 const QByteArray& pAuthenticatedAuxiliaryDataAsBinary);
71 QMetaObject::Connection call(
BaseCardCommand* pCommand,
const typename QtPrivate::FunctionPointer<T>::Object* pReceiver,
T pFunc)
73 pCommand->moveToThread(mCardConnectionWorker->thread());
83 qCCritical(card) <<
"Cannot invoke card command:" << pCommand->metaObject()->className();
84 pCommand->deleteLater();
87 return resultConnection;
91 void onReaderInfoChanged(
const ReaderInfo& pReaderInfo);
97 explicit CardConnection(
const QSharedPointer<CardConnectionWorker>& pCardConnectionWorker);
121 auto command = createDidAuthenticateEAC1Command();
122 return call(command, pReceiver, pFunc);
129 const QString& pEphemeralPublicKeyAsHex,
130 const QString& pSignatureAsHex,
131 const QByteArray& pAuthenticatedAuxiliaryDataAsBinary)
133 auto command = createDidAuthenticateEAC2Command(pCvcChain, pEphemeralPublicKeyAsHex, pSignatureAsHex, pAuthenticatedAuxiliaryDataAsBinary);
134 return call(command, pReceiver, pFunc);
142 auto command = createUnblockPinCommand(pPuk);
143 return call(command, pReceiver, pFunc);
149 PacePasswordId pPacePasswordId,
const QString& pPacePassword,
const QByteArray& pEffectiveChat = QByteArray(),
const QByteArray& pCertificateDescription = QByteArray())
151 EstablishPaceChannelCommand* command = createEstablishPaceChannelCommand(pPacePasswordId, pPacePassword, pEffectiveChat, pCertificateDescription);
156 mPaceCanSuccessful = pCommand->getReturnCode() == CardReturnCode::OK;
162 mPacePinSuccessful = pCommand->getReturnCode() == CardReturnCode::OK;
163 if (!mPacePinSuccessful)
165 mPaceCanSuccessful =
false;
170 return call(command, pReceiver, pFunc);
175 QMetaObject::Connection
callSetEidPinCommand(
const typename QtPrivate::FunctionPointer<T>::Object* pReceiver,
T pFunc,
176 const QString& pNewPin,
177 quint8 pTimeoutSeconds = 60)
179 auto command = createSetEidPinCommand(pNewPin, pTimeoutSeconds);
180 return call(command, pReceiver, pFunc);
187 auto command = createDestroyPaceChannelCommand();
188 return call(command, pReceiver, pFunc);
193 QMetaObject::Connection
callTransmitCommand(
const typename QtPrivate::FunctionPointer<T>::Object* pReceiver,
T pFunc,
194 const QVector<InputAPDUInfo>& pInputApduInfos,
const QString& pSlotHandle = QString())
196 auto command = createTransmitCommand(pInputApduInfos, pSlotHandle);
197 return call(command, pReceiver, pFunc);
204 auto command = createUpdateRetryCounterCommand();
205 return call(command, pReceiver, pFunc);
Definition: BaseCardCommand.h:21
void commandDone(QSharedPointer< BaseCardCommand > pCommand)
void run()
Definition: BaseCardCommand.cpp:37
Definition: CVCertificateChain.h:22
This class represents a connection to a smart card.
Definition: CardConnection.h:41
QMetaObject::Connection callDestroyPaceChannelCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc)
Definition: CardConnection.h:185
void fireReaderInfoChanged(const ReaderInfo &pReaderInfo)
QMetaObject::Connection callUpdateRetryCounterCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc)
Definition: CardConnection.h:202
bool getPacePinSuccessful() const
Definition: CardConnection.cpp:45
virtual const ReaderInfo & getReaderInfo()
This method returns a stored copy of the reader info object.
Definition: CardConnection.cpp:33
QMetaObject::Connection callEstablishPaceChannelCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, PacePasswordId pPacePasswordId, const QString &pPacePassword, const QByteArray &pEffectiveChat=QByteArray(), const QByteArray &pCertificateDescription=QByteArray())
Definition: CardConnection.h:148
QMetaObject::Connection callSetEidPinCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const QString &pNewPin, quint8 pTimeoutSeconds=60)
Definition: CardConnection.h:175
QMetaObject::Connection callUnblockPinCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const QString &pPuk)
Definition: CardConnection.h:139
void setProgressMessage(const QString &pMessage)
Definition: CardConnection.cpp:51
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:127
QMetaObject::Connection callTransmitCommand(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc, const QVector< InputAPDUInfo > &pInputApduInfos, const QString &pSlotHandle=QString())
Definition: CardConnection.h:193
bool getPaceCanSuccessful() const
Definition: CardConnection.cpp:39
CardConnection()
Definition: CardConnection.cpp:23
QMetaObject::Connection callDidAuthenticateEAC1Command(const typename QtPrivate::FunctionPointer< T >::Object *pReceiver, T pFunc)
Definition: CardConnection.h:119
bool stopSecureMessaging()
Definition: CardConnection.cpp:59
virtual ~CardConnection()=default
Destroys the CardConnection and disconnects from the card.
Definition: DestroyPaceChannelCommand.h:18
Definition: DidAuthenticateEAC1Command.h:20
Definition: DidAuthenticateEAC2Command.h:20
Definition: EstablishPaceChannelCommand.h:19
Definition: ReaderInfo.h:17
Definition: SetEidPinCommand.h:19
Definition: TransmitCommand.h:20
Definition: UnblockPinCommand.h:18
Definition: UpdateRetryCounterCommand.h:18
#define T(v)
Definition: http_parser.cpp:237
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
quint8
Definition: ResponseApdu.h:62
PACE_PIN
Definition: SmartCardDefinitions.h:21
PACE_CAN
Definition: SmartCardDefinitions.h:20