#ifndef SMARTCARDAUTH_H #define SMARTCARDAUTH_H #include class QWidget; struct enum_certs_s; class SmartCardAuth : public QOpenSslHook { public: static void initialize(); static void deinitialize(); 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; }; #endif // SMARTCARDAUTH_H