我正在使用PyKCS11库从令牌设备读取证书。在
这是我现在使用的代码,问题是属性是二进制的。在
pkcs11 = PyKCS11Lib()
pkcs11.load("C:\Windows\System32\eTPKCS11.dll")
slot = pkcs11.getSlotList()[2]
session = pkcs11.openSession(slot, PyKCS11.CKF_SERIAL_SESSION)
objects = session.findObjects([(PyKCS11.CKA_CLASS, PyKCS11.CKO_CERTIFICATE)])
all_attributes = [PyKCS11.CKA_SUBJECT, PyKCS11.CKA_VALUE, PyKCS11.CKA_ISSUER, PyKCS11.CKA_CERTIFICATE_CATEGORY, PyKCS11.CKA_END_DATE]
for object in objects:
try:
attributes = session.getAttributeValue(object, all_attributes)
except PyKCS11.PyKCS11Error as e:
continue
attrDict = dict(list(zip(all_attributes, attributes)))
if attrDict[PyKCS11.CKA_CERTIFICATE_CATEGORY] == (0x2, 0x0, 0x0, 0x0):
continue
print attrDict[PyKCS11.CKA_SUBJECT]
print attrDict[PyKCS11.CKA_VALUE]
session.closeSession()
它打印的是一个元组,类似于:(48L,130L,5L,192L,48L,130L,4L,168L)。在
如何提取使用者名称和x509证书?四
编辑
我终于解决了。为了防止其他人陷入困境,这是获得证书的方法:
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐