FreeRDP
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Modules Pages
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
27extern "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 */