def SDF_GetDeviceInfo(self) -> dict:
# 获取设备信息
class DEVICEINFO(Structure):
_fields_ = [('IssuerName', c_char*40),
('DeviceName', c_char*16),
('DeviceSerial', c_char*16),
('DeviceVersion', c_int32),
('StandardVersion', c_int32),
('AsymAlgAbility', c_int32*2),
('SymAlgAbility', c_int32),
('HashAlgAbility', c_int32),
('BufferSize', c_int32)]
try:
deviceInfoPointer = pointer(DEVICEINFO())
code = self.SO.SDF_GetDeviceInfo(self.hSessionHandle, deviceInfoPointer)
deviceInfo1 = deviceInfoPointer.contents
reVal = dict()
reVal['code'] = code
reVal['IssuerName'] = deviceInfo1.IssuerName.decode()
reVal['DeviceName'] = deviceInfo1.DeviceName.decode()
reVal['DeviceSerial'] = deviceInfo1.DeviceSerial.decode()
reVal['DeviceVersion'] = str(deviceInfo1.DeviceVersion)
reVal['StandardVersion'] = str(deviceInfo1.StandardVersion)
reVal['AsymAlgAbility'] = str(deviceInfo1.AsymAlgAbility[0]) + "|" + str(deviceInfo1.AsymAlgAbility[1])
reVal['SymAlgAbility'] = str(deviceInfo1.SymAlgAbility)
reVal['HashAlgAbility'] = str(deviceInfo1.HashAlgAbility)
reVal['BufferSize'] = str(deviceInfo1.BufferSize)
log.debug("retVal:" + str(reVal))
return reVal
except BaseException as e:
log.critical('关闭会话失败: ' + traceback.format_exc(e))