mirror of
https://github.com/hakril/PythonForWindows
synced 2026-06-08 14:31:45 +00:00
Add wmi.gen_select for class select returning a generator + fom E_CRYPT define + CryptObj.nb_signer return 0 if CRYPT_E_INVALID_MSG_TYPE
This commit is contained in:
@@ -815,6 +815,17 @@
|
||||
#define CERT_E_INVALID_NAME (0x800B0114L)
|
||||
#define CRYPT_E_FILE_ERROR (0x80092003L)
|
||||
|
||||
#define CRYPT_E_MSG_ERROR (0x80091001L)
|
||||
#define CRYPT_E_UNKNOWN_ALGO (0x80091002L)
|
||||
#define CRYPT_E_OID_FORMAT (0x80091003L)
|
||||
#define CRYPT_E_INVALID_MSG_TYPE (0x80091004L)
|
||||
#define CRYPT_E_UNEXPECTED_ENCODING (0x80091005L)
|
||||
#define CRYPT_E_AUTH_ATTR_MISSING (0x80091006L)
|
||||
#define CRYPT_E_HASH_VALUE (0x80091007L)
|
||||
#define E_INVALIDARG (0x80070057L)
|
||||
#define CRYPT_E_NOT_DECRYPTED (0x8009100AL)
|
||||
#define CRYPT_E_INVALID_INDEX (0x80091008L)
|
||||
#define CRYPT_E_ATTRIBUTES_MISSING (0x8009100FL)
|
||||
|
||||
|
||||
#define IMAGE_SCN_TYPE_REG 0x00000000
|
||||
|
||||
@@ -703,6 +703,17 @@ Windef
|
||||
.. autodata:: CERT_E_INVALID_POLICY
|
||||
.. autodata:: CERT_E_INVALID_NAME
|
||||
.. autodata:: CRYPT_E_FILE_ERROR
|
||||
.. autodata:: CRYPT_E_MSG_ERROR
|
||||
.. autodata:: CRYPT_E_UNKNOWN_ALGO
|
||||
.. autodata:: CRYPT_E_OID_FORMAT
|
||||
.. autodata:: CRYPT_E_INVALID_MSG_TYPE
|
||||
.. autodata:: CRYPT_E_UNEXPECTED_ENCODING
|
||||
.. autodata:: CRYPT_E_AUTH_ATTR_MISSING
|
||||
.. autodata:: CRYPT_E_HASH_VALUE
|
||||
.. autodata:: E_INVALIDARG
|
||||
.. autodata:: CRYPT_E_NOT_DECRYPTED
|
||||
.. autodata:: CRYPT_E_INVALID_INDEX
|
||||
.. autodata:: CRYPT_E_ATTRIBUTES_MISSING
|
||||
.. autodata:: IMAGE_SCN_TYPE_REG
|
||||
.. autodata:: IMAGE_SCN_TYPE_DSECT
|
||||
.. autodata:: IMAGE_SCN_TYPE_NOLOAD
|
||||
|
||||
@@ -59,7 +59,12 @@ class CryptMessage(gdef.HCRYPTMSG):
|
||||
|
||||
:type: :class:`int`
|
||||
"""
|
||||
return self.get_param(gdef.CMSG_SIGNER_COUNT_PARAM)
|
||||
try:
|
||||
return self.get_param(gdef.CMSG_SIGNER_COUNT_PARAM)
|
||||
except WindowsError as e:
|
||||
if (e.winerror & 0xffffffff) == gdef.CRYPT_E_INVALID_MSG_TYPE:
|
||||
return 0
|
||||
raise
|
||||
|
||||
|
||||
def get_signer_data(self, index=0):
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -759,6 +759,17 @@ CERT_E_UNTRUSTEDCA = make_flag("CERT_E_UNTRUSTEDCA", ( 0x800B0112 ))
|
||||
CERT_E_INVALID_POLICY = make_flag("CERT_E_INVALID_POLICY", ( 0x800B0113 ))
|
||||
CERT_E_INVALID_NAME = make_flag("CERT_E_INVALID_NAME", ( 0x800B0114 ))
|
||||
CRYPT_E_FILE_ERROR = make_flag("CRYPT_E_FILE_ERROR", ( 0x80092003 ))
|
||||
CRYPT_E_MSG_ERROR = make_flag("CRYPT_E_MSG_ERROR", ( 0x80091001 ))
|
||||
CRYPT_E_UNKNOWN_ALGO = make_flag("CRYPT_E_UNKNOWN_ALGO", ( 0x80091002 ))
|
||||
CRYPT_E_OID_FORMAT = make_flag("CRYPT_E_OID_FORMAT", ( 0x80091003 ))
|
||||
CRYPT_E_INVALID_MSG_TYPE = make_flag("CRYPT_E_INVALID_MSG_TYPE", ( 0x80091004 ))
|
||||
CRYPT_E_UNEXPECTED_ENCODING = make_flag("CRYPT_E_UNEXPECTED_ENCODING", ( 0x80091005 ))
|
||||
CRYPT_E_AUTH_ATTR_MISSING = make_flag("CRYPT_E_AUTH_ATTR_MISSING", ( 0x80091006 ))
|
||||
CRYPT_E_HASH_VALUE = make_flag("CRYPT_E_HASH_VALUE", ( 0x80091007 ))
|
||||
E_INVALIDARG = make_flag("E_INVALIDARG", ( 0x80070057 ))
|
||||
CRYPT_E_NOT_DECRYPTED = make_flag("CRYPT_E_NOT_DECRYPTED", ( 0x8009100A ))
|
||||
CRYPT_E_INVALID_INDEX = make_flag("CRYPT_E_INVALID_INDEX", ( 0x80091008 ))
|
||||
CRYPT_E_ATTRIBUTES_MISSING = make_flag("CRYPT_E_ATTRIBUTES_MISSING", ( 0x8009100F ))
|
||||
IMAGE_SCN_TYPE_REG = make_flag("IMAGE_SCN_TYPE_REG", 0x00000000)
|
||||
IMAGE_SCN_TYPE_DSECT = make_flag("IMAGE_SCN_TYPE_DSECT", 0x00000001)
|
||||
IMAGE_SCN_TYPE_NOLOAD = make_flag("IMAGE_SCN_TYPE_NOLOAD", 0x00000002)
|
||||
|
||||
@@ -32,7 +32,14 @@ class WmiRequester(object):
|
||||
|
||||
:rtype: list of dict
|
||||
"""
|
||||
return self.query("select * from {0}".format(frm), attrs, **kwargs)
|
||||
return list(self.gen_select(frm, attrs, **kwargs))
|
||||
|
||||
def gen_select(self, frm, attrs="*", **kwargs):
|
||||
"""Select ``attrs`` from ``frm`` in a generator (like :func:`gen_query`)
|
||||
|
||||
:rtype: generator
|
||||
"""
|
||||
return self.gen_query("select * from {0}".format(frm), attrs, **kwargs)
|
||||
|
||||
@property
|
||||
def classes(self):
|
||||
@@ -94,7 +101,6 @@ class WmiRequester(object):
|
||||
if result != WBEM_S_FALSE:
|
||||
yield procres, result
|
||||
|
||||
|
||||
def _iwbemclassobject_to_dict(self, wbemclassobj, attrs):
|
||||
if attrs == "*":
|
||||
attrs = [x for x in self.get_names(wbemclassobj) if not x.startswith("__")]
|
||||
@@ -115,7 +121,6 @@ class WmiRequester(object):
|
||||
print("[WMI-ERROR] Field <{0}> ignored: {1}".format(name, e))
|
||||
return obj_as_dict
|
||||
|
||||
|
||||
def get_names(self, processor):
|
||||
res = POINTER(SAFEARRAY)()
|
||||
processor.GetNames(None, 0, None, byref(res))
|
||||
@@ -123,7 +128,6 @@ class WmiRequester(object):
|
||||
safe_array.elt_type = BSTR
|
||||
return safe_array.to_list()
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return """<{0} namespace="{1}">""".format(type(self).__name__, self.namespace)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user