#ifndef SMARTCARDAUTH_H #define SMARTCARDAUTH_H #include #include class QWidget; struct enum_certs_s; class SmartCardAuth : public QOpenSslHook { public: SmartCardAuth(QWidget* parent=0); ~SmartCardAuth(); static void setPinDlgParent(QWidget* parent); virtual bool hookInitSslContext(SSL_CTX* ctx); private: static int client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey); static ENGINE* e; static enum_certs_s* certs_found; static QWidget* parent; static bool pin_configured; static bool pin_rejected; static QMutex _mutex; }; #endif // SMARTCARDAUTH_H