AusweisApp
Lade ...
Suche ...
Keine Treffer
PcscUtils.h
gehe zur Dokumentation dieser Datei
1
10#pragma once
11
12#include <QMetaEnum>
13#include <QString>
14#include <QtGlobal>
15
16#include <winscard.h>
17
18#ifndef Q_OS_WIN
19 #include <wintypes.h>
20#endif
21
22/*
23 * Because the three PC/SC implementations on Windows,
24 * MacOS and Linux have slightly different types, we typedef
25 * an abstraction layer for those data types.
26 */
27#ifdef Q_OS_WIN
28using PCSC_CHAR = TCHAR;
29using PCSC_CHAR_PTR = TCHAR*;
30using PCSC_CUCHAR_PTR = LPCBYTE;
31using PCSC_INT = DWORD;
32using PCSC_RETURNCODE = LONG;
33using PCSC_UCHAR_PTR = LPBYTE;
34#elif defined Q_OS_MACOS
35using PCSC_CHAR = char;
36using PCSC_CHAR_PTR = char*;
37using PCSC_CUCHAR_PTR = const uchar*;
38using PCSC_INT = uint32_t;
39using PCSC_RETURNCODE = int32_t;
40using PCSC_UCHAR_PTR = uchar*;
41#elif defined Q_OS_UNIX
42using PCSC_CHAR = char;
43using PCSC_CHAR_PTR = char*;
44using PCSC_CUCHAR_PTR = const uchar*;
45using PCSC_INT = DWORD;
46using PCSC_RETURNCODE = LONG;
47using PCSC_UCHAR_PTR = uchar*;
48#endif
49
50#ifdef Q_OS_MACOS
51 #define returnCode(x) static_cast<PCSC_RETURNCODE>(x)
52#else
53 #define returnCode(x) x
54#endif
55
56
58{
59
60
61Q_NAMESPACE
62
66enum PcscReturnCode : PCSC_RETURNCODE
67{
68 Scard_S_Success = returnCode(SCARD_S_SUCCESS),
69 Scard_F_Internal_Error = returnCode(SCARD_F_INTERNAL_ERROR),
70 Scard_E_Cancelled = returnCode(SCARD_E_CANCELLED),
71 Scard_E_Invalid_Handle = returnCode(SCARD_E_INVALID_HANDLE),
72 Scard_E_Invalid_Parameter = returnCode(SCARD_E_INVALID_PARAMETER),
73 Scard_E_Invalid_Target = returnCode(SCARD_E_INVALID_TARGET),
74 Scard_E_No_Memory = returnCode(SCARD_E_NO_MEMORY),
75 Scard_F_Waited_Too_Long = returnCode(SCARD_F_WAITED_TOO_LONG),
76 Scard_E_Insufficient_Buffer = returnCode(SCARD_E_INSUFFICIENT_BUFFER),
77 Scard_E_Unknown_Reader = returnCode(SCARD_E_UNKNOWN_READER),
78 Scard_E_Timeout = returnCode(SCARD_E_TIMEOUT),
79 Scard_E_Sharing_Violation = returnCode(SCARD_E_SHARING_VIOLATION),
80 Scard_E_No_Smartcard = returnCode(SCARD_E_NO_SMARTCARD),
81 Scard_E_Unknown_Card = returnCode(SCARD_E_UNKNOWN_CARD),
82 Scard_E_Cant_Dispose = returnCode(SCARD_E_CANT_DISPOSE),
83 Scard_E_Proto_Mismatch = returnCode(SCARD_E_PROTO_MISMATCH),
84 Scard_E_Not_Ready = returnCode(SCARD_E_NOT_READY),
85 Scard_E_Invalid_Value = returnCode(SCARD_E_INVALID_VALUE),
86 Scard_E_System_Cancelled = returnCode(SCARD_E_SYSTEM_CANCELLED),
87 Scard_F_Comm_Error = returnCode(SCARD_F_COMM_ERROR),
88 Scard_F_Unknown_Error = returnCode(SCARD_F_UNKNOWN_ERROR),
89 Scard_E_Invalid_Atr = returnCode(SCARD_E_INVALID_ATR),
90 Scard_E_Not_Transacted = returnCode(SCARD_E_NOT_TRANSACTED),
91 Scard_E_Reader_Unavailable = returnCode(SCARD_E_READER_UNAVAILABLE),
92 Scard_P_Shutdown = returnCode(SCARD_P_SHUTDOWN),
93 Scard_E_Pci_Too_Small = returnCode(SCARD_E_PCI_TOO_SMALL),
94 Scard_E_Reader_Unsupported = returnCode(SCARD_E_READER_UNSUPPORTED),
95 Scard_E_Duplicate_Reader = returnCode(SCARD_E_DUPLICATE_READER),
96 Scard_E_Card_Unsupported = returnCode(SCARD_E_CARD_UNSUPPORTED),
97 Scard_E_No_Service = returnCode(SCARD_E_NO_SERVICE),
98 Scard_E_Service_Stopped = returnCode(SCARD_E_SERVICE_STOPPED),
99 Scard_E_Unsupported_Feature = returnCode(SCARD_E_UNSUPPORTED_FEATURE),
100 Scard_E_Unexpected = returnCode(SCARD_E_UNEXPECTED),
101 Scard_E_Icc_Installation = returnCode(SCARD_E_ICC_INSTALLATION),
102 Scard_E_Icc_Createorder = returnCode(SCARD_E_ICC_CREATEORDER),
104 Scard_E_Dir_Not_Found = returnCode(SCARD_E_DIR_NOT_FOUND),
105 Scard_E_File_Not_Found = returnCode(SCARD_E_FILE_NOT_FOUND),
106 Scard_E_No_Dir = returnCode(SCARD_E_NO_DIR),
107 Scard_E_No_File = returnCode(SCARD_E_NO_FILE),
108 Scard_E_No_Access = returnCode(SCARD_E_NO_ACCESS),
109 Scard_E_Write_Too_Many = returnCode(SCARD_E_WRITE_TOO_MANY),
110 Scard_E_Bad_Seek = returnCode(SCARD_E_BAD_SEEK),
111 Scard_E_Invalid_Chv = returnCode(SCARD_E_INVALID_CHV),
112 Scard_E_Unknown_Res_Mng = returnCode(SCARD_E_UNKNOWN_RES_MNG),
113 Scard_E_No_Such_Certificate = returnCode(SCARD_E_NO_SUCH_CERTIFICATE),
114 Scard_E_Certificate_Unavailable = returnCode(SCARD_E_CERTIFICATE_UNAVAILABLE),
115 Scard_E_No_Readers_Available = returnCode(SCARD_E_NO_READERS_AVAILABLE),
116 Scard_E_Comm_Data_Lost = returnCode(SCARD_E_COMM_DATA_LOST),
117 Scard_E_No_Key_Container = returnCode(SCARD_E_NO_KEY_CONTAINER),
118 Scard_E_Server_Too_Busy = returnCode(SCARD_E_SERVER_TOO_BUSY),
120 Scard_W_Unsupported_Card = returnCode(SCARD_W_UNSUPPORTED_CARD),
121 Scard_W_Unresponsive_Card = returnCode(SCARD_W_UNRESPONSIVE_CARD),
122 Scard_W_Unpowered_Card = returnCode(SCARD_W_UNPOWERED_CARD),
123 Scard_W_Reset_Card = returnCode(SCARD_W_RESET_CARD),
124 Scard_W_Removed_Card = returnCode(SCARD_W_REMOVED_CARD),
126 Scard_W_Security_Violation = returnCode(SCARD_W_SECURITY_VIOLATION),
127 Scard_W_Wrong_Chv = returnCode(SCARD_W_WRONG_CHV),
128 Scard_W_Chv_Blocked = returnCode(SCARD_W_CHV_BLOCKED),
129 Scard_W_Eof = returnCode(SCARD_W_EOF),
130 Scard_W_Cancelled_By_User = returnCode(SCARD_W_CANCELLED_BY_USER),
131 Scard_W_Card_Not_Authenticated = returnCode(SCARD_W_CARD_NOT_AUTHENTICATED)
133Q_ENUM_NS(PcscReturnCode)
134
135QString toString(PCSC_RETURNCODE pCode);
136
137QDataStream& operator<<(QDataStream& pStream, const PcscReturnCode& pCode);
138QDataStream& operator>>(QDataStream& pStream, PcscReturnCode& pCode);
139} // namespace governikus::pcsc
140
141
145#undef returnCode
146
147#ifdef QT_NO_DEBUG
148 #undef SCARD_S_SUCCESS
149 #undef SCARD_F_INTERNAL_ERROR
150 #undef SCARD_E_CANCELLED
151 #undef SCARD_E_INVALID_HANDLE
152 #undef SCARD_E_INVALID_PARAMETER
153 #undef SCARD_E_INVALID_TARGET
154 #undef SCARD_E_NO_MEMORY
155 #undef SCARD_F_WAITED_TOO_LONG
156 #undef SCARD_E_INSUFFICIENT_BUFFER
157 #undef SCARD_E_UNKNOWN_READER
158 #undef SCARD_E_TIMEOUT
159 #undef SCARD_E_SHARING_VIOLATION
160 #undef SCARD_E_NO_SMARTCARD
161 #undef SCARD_E_UNKNOWN_CARD
162 #undef SCARD_E_CANT_DISPOSE
163 #undef SCARD_E_PROTO_MISMATCH
164 #undef SCARD_E_NOT_READY
165 #undef SCARD_E_INVALID_VALUE
166 #undef SCARD_E_SYSTEM_CANCELLED
167 #undef SCARD_F_COMM_ERROR
168 #undef SCARD_F_UNKNOWN_ERROR
169 #undef SCARD_E_INVALID_ATR
170 #undef SCARD_E_NOT_TRANSACTED
171 #undef SCARD_E_READER_UNAVAILABLE
172 #undef SCARD_P_SHUTDOWN
173 #undef SCARD_E_PCI_TOO_SMALL
174 #undef SCARD_E_READER_UNSUPPORTED
175 #undef SCARD_E_DUPLICATE_READER
176 #undef SCARD_E_CARD_UNSUPPORTED
177 #undef SCARD_E_NO_SERVICE
178 #undef SCARD_E_SERVICE_STOPPED
179 #undef SCARD_E_UNEXPECTED
180 #undef SCARD_E_UNSUPPORTED_FEATURE
181 #undef SCARD_E_ICC_INSTALLATION
182 #undef SCARD_E_ICC_CREATEORDER
183
184 #undef SCARD_E_DIR_NOT_FOUND
185 #undef SCARD_E_FILE_NOT_FOUND
186 #undef SCARD_E_NO_DIR
187 #undef SCARD_E_NO_FILE
188 #undef SCARD_E_NO_ACCESS
189 #undef SCARD_E_WRITE_TOO_MANY
190 #undef SCARD_E_BAD_SEEK
191 #undef SCARD_E_INVALID_CHV
192 #undef SCARD_E_UNKNOWN_RES_MNG
193 #undef SCARD_E_NO_SUCH_CERTIFICATE
194 #undef SCARD_E_CERTIFICATE_UNAVAILABLE
195 #undef SCARD_E_NO_READERS_AVAILABLE
196 #undef SCARD_E_COMM_DATA_LOST
197 #undef SCARD_E_NO_KEY_CONTAINER
198 #undef SCARD_E_SERVER_TOO_BUSY
199
200 #undef SCARD_W_UNSUPPORTED_CARD
201 #undef SCARD_W_UNRESPONSIVE_CARD
202 #undef SCARD_W_UNPOWERED_CARD
203 #undef SCARD_W_RESET_CARD
204 #undef SCARD_W_REMOVED_CARD
205
206 #undef SCARD_W_SECURITY_VIOLATION
207 #undef SCARD_W_WRONG_CHV
208 #undef SCARD_W_CHV_BLOCKED
209 #undef SCARD_W_EOF
210 #undef SCARD_W_CANCELLED_BY_USER
211 #undef SCARD_W_CARD_NOT_AUTHENTICATED
212#endif
#define returnCode(x)
toString method for PCSC_RETURNCODE and platform dependent typedefs for PCSC types.
Definition PcscUtils.h:53
Definition PcscUtils.h:58
QDataStream & operator>>(QDataStream &pStream, PcscReturnCode &pCode)
Definition PcscUtils.cpp:29
QDataStream & operator<<(QDataStream &pStream, const PcscReturnCode &pCode)
Definition PcscUtils.cpp:23
QString toString(PCSC_RETURNCODE pCode)
Definition PcscUtils.cpp:10
PcscReturnCode
Definition PcscUtils.h:67
@ Scard_E_Pci_Too_Small
Definition PcscUtils.h:93
@ Scard_W_Unsupported_Card
Definition PcscUtils.h:120
@ Scard_E_File_Not_Found
Definition PcscUtils.h:105
@ Scard_F_Unknown_Error
Definition PcscUtils.h:88
@ Scard_E_Not_Ready
Definition PcscUtils.h:84
@ Scard_E_Reader_Unavailable
Definition PcscUtils.h:91
@ Scard_W_Card_Not_Authenticated
Definition PcscUtils.h:131
@ Scard_F_Waited_Too_Long
Definition PcscUtils.h:75
@ Scard_E_Reader_Unsupported
Definition PcscUtils.h:94
@ Scard_E_Cant_Dispose
Definition PcscUtils.h:82
@ Scard_E_Duplicate_Reader
Definition PcscUtils.h:95
@ Scard_E_System_Cancelled
Definition PcscUtils.h:86
@ Scard_E_Sharing_Violation
Definition PcscUtils.h:79
@ Scard_E_No_Memory
Definition PcscUtils.h:74
@ Scard_E_Invalid_Chv
Definition PcscUtils.h:111
@ Scard_W_Unpowered_Card
Definition PcscUtils.h:122
@ Scard_E_Unknown_Card
Definition PcscUtils.h:81
@ Scard_W_Removed_Card
Definition PcscUtils.h:124
@ Scard_W_Unresponsive_Card
Definition PcscUtils.h:121
@ Scard_E_Dir_Not_Found
Definition PcscUtils.h:104
@ Scard_S_Success
Definition PcscUtils.h:68
@ Scard_E_Bad_Seek
Definition PcscUtils.h:110
@ Scard_E_Timeout
Definition PcscUtils.h:78
@ Scard_E_Icc_Createorder
Definition PcscUtils.h:102
@ Scard_E_Invalid_Handle
Definition PcscUtils.h:71
@ Scard_E_Unknown_Reader
Definition PcscUtils.h:77
@ Scard_E_No_File
Definition PcscUtils.h:107
@ Scard_E_Unsupported_Feature
Definition PcscUtils.h:99
@ Scard_E_Cancelled
Definition PcscUtils.h:70
@ Scard_W_Chv_Blocked
Definition PcscUtils.h:128
@ Scard_E_Comm_Data_Lost
Definition PcscUtils.h:116
@ Scard_W_Eof
Definition PcscUtils.h:129
@ Scard_E_Card_Unsupported
Definition PcscUtils.h:96
@ Scard_F_Comm_Error
Definition PcscUtils.h:87
@ Scard_E_Icc_Installation
Definition PcscUtils.h:101
@ Scard_E_Insufficient_Buffer
Definition PcscUtils.h:76
@ Scard_E_Invalid_Atr
Definition PcscUtils.h:89
@ Scard_E_No_Service
Definition PcscUtils.h:97
@ Scard_E_No_Readers_Available
Definition PcscUtils.h:115
@ Scard_W_Cancelled_By_User
Definition PcscUtils.h:130
@ Scard_E_Write_Too_Many
Definition PcscUtils.h:109
@ Scard_E_Invalid_Value
Definition PcscUtils.h:85
@ Scard_E_No_Such_Certificate
Definition PcscUtils.h:113
@ Scard_E_Unexpected
Definition PcscUtils.h:100
@ Scard_E_Unknown_Res_Mng
Definition PcscUtils.h:112
@ Scard_F_Internal_Error
Definition PcscUtils.h:69
@ Scard_E_Not_Transacted
Definition PcscUtils.h:90
@ Scard_E_No_Key_Container
Definition PcscUtils.h:117
@ Scard_P_Shutdown
Definition PcscUtils.h:92
@ Scard_E_Server_Too_Busy
Definition PcscUtils.h:118
@ Scard_E_No_Smartcard
Definition PcscUtils.h:80
@ Scard_E_Invalid_Target
Definition PcscUtils.h:73
@ Scard_E_Service_Stopped
Definition PcscUtils.h:98
@ Scard_E_No_Access
Definition PcscUtils.h:108
@ Scard_W_Reset_Card
Definition PcscUtils.h:123
@ Scard_E_Proto_Mismatch
Definition PcscUtils.h:83
@ Scard_E_No_Dir
Definition PcscUtils.h:106
@ Scard_E_Invalid_Parameter
Definition PcscUtils.h:72
@ Scard_W_Wrong_Chv
Definition PcscUtils.h:127
@ Scard_W_Security_Violation
Definition PcscUtils.h:126
@ Scard_E_Certificate_Unavailable
Definition PcscUtils.h:114
char
Definition SmartCardDefinitions.h:17