Вы перепутали константы. Я не знаю, откуда вы их взяли, но значения (по крайней мере, оба, которые вы использовали) неверны, поэтому я удалил их все (не смотрел на остальные). Они (или большинство из них) являются макросами препроцессора , определенными в [MS.Docs]: заголовок wincrypt.h (часть Windows SDK - к сожалению, я не нашел официальное местоположение в Интернете, откуда его можно было бы загрузить - у меня оно есть на моем ноутбуке, так как оно было автоматически установлено Visual Studio ).
code00.py :
#!/usr/bin/env python
import sys
import win32crypt as wcrypt
# lpszStoreProvider
CERT_STORE_PROV_SYSTEM = 0x0000000A
# dwFlags
CERT_SYSTEM_STORE_LOCAL_MACHINE = 0x00020000
def main(*argv):
store = wcrypt.CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, None, CERT_SYSTEM_STORE_LOCAL_MACHINE, "My")
for cert in store.CertEnumCertificatesInStore():
print("1 Cert: {0:}".format(cert))
print("2 CertEnumCertificateContextProperties returned: {0:}".format(cert.CertEnumCertificateContextProperties()))
print("3 cert.Subject: {0:}".format(wcrypt.CertNameToStr(cert.Subject)))
if __name__ == "__main__":
print("Python {0:s} {1:d}bit on {2:s}\n".format(" ".join(item.strip() for item in sys.version.split("\n")), 64 if sys.maxsize > 0x100000000 else 32, sys.platform))
main(*sys.argv[1:])
print("\nDone.")
Выход :
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q061118677]> "e:\Work\Dev\VEnvs\py_pc064_03.07.06_test0\Scripts\python.exe" code00.py
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] 64bit on win32
1 Cert: <PyCERT_CONTEXT object at 0x0000021CDE3BD740>
2 CertEnumCertificateContextProperties returned: [92, 15, 20, 11, 2, 3, 4, 25, 89]
3 cert.Subject: localhost
Done.