FreeRDP
smartcardlogon.h
1 
19 #ifndef FREERDP_UTILS_SMARTCARDLOGON_H
20 #define FREERDP_UTILS_SMARTCARDLOGON_H
21 
22 #include <freerdp/types.h>
23 #include <freerdp/settings.h>
24 #include <freerdp/crypto/certificate.h>
25 
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif
30 
31  typedef struct SmartcardKeyInfo_st SmartcardKeyInfo;
32 
33  typedef struct SmartcardCertInfo_st
34  {
35  LPWSTR csp;
36  LPWSTR reader;
37  rdpCertificate* certificate;
38  char* pkinitArgs;
39  UINT32 slotId;
40  char* keyName;
41  WCHAR* containerName;
42  char* upn;
43  char* userHint;
44  char* domainHint;
45  char* subject;
46  char* issuer;
47  BYTE sha1Hash[20];
48  SmartcardKeyInfo* key_info;
50 
51  FREERDP_API BOOL smartcard_enumerateCerts(const rdpSettings* settings,
52  SmartcardCertInfo*** scCerts, size_t* retCount,
53  BOOL gateway);
54  FREERDP_API BOOL smartcard_getCert(const rdpContext* context, SmartcardCertInfo** cert,
55  BOOL gateway);
56  FREERDP_API void smartcardCertInfo_Free(SmartcardCertInfo* pscCert);
57  FREERDP_API void smartcardCertList_Free(SmartcardCertInfo** pscCert, size_t count);
58 
59 #ifdef __cplusplus
60 }
61 #endif
62 #endif /* FREERDP_UTILS_SMARTCARDLOGON_H */