18 lines
548 B
Python
18 lines
548 B
Python
#!/usr/bin/env python3
|
|
|
|
import ctypes
|
|
|
|
# Load DLL
|
|
XUIAMSSOi = ctypes.WinDLL('C:\\Program Files (x86)\\Micro Focus\\Reflection\\XUIAMSSOi.dll')
|
|
XUIAMSSOi.MySsoTokenVBA.restype = ctypes.c_long
|
|
XUIAMSSOi.MySsoTokenVBA.argtypes = (ctypes.c_wchar_p, ctypes.c_long)
|
|
|
|
# Authenticate against smartcard
|
|
def XUIAMSSOi_MySsoTokenVBA(bufsize=15000):
|
|
buf = ctypes.create_unicode_buffer(bufsize)
|
|
sz = XUIAMSSOi.MySsoTokenVBA(buf, bufsize)
|
|
if sz <= bufsize:
|
|
return buf.value.encode('utf-16')[2:].decode('latin-1')
|
|
else:
|
|
return XUIAMSSOi_MySsoTokenVBA(sz)
|