# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.10

import enum

import winsdk.system

_ns_module = winsdk.system._import_ns_module("Windows.Security.Cryptography.Certificates")

try:
    import winsdk.windows.foundation
except ImportError:
    pass

try:
    import winsdk.windows.foundation.collections
except ImportError:
    pass

try:
    import winsdk.windows.networking
except ImportError:
    pass

try:
    import winsdk.windows.storage.streams
except ImportError:
    pass

class CertificateChainPolicy(enum.IntEnum):
    BASE = 0
    SSL = 1
    N_T_AUTHENTICATION = 2
    MICROSOFT_ROOT = 3

class ChainValidationResult(enum.IntEnum):
    SUCCESS = 0
    UNTRUSTED = 1
    REVOKED = 2
    EXPIRED = 3
    INCOMPLETE_CHAIN = 4
    INVALID_SIGNATURE = 5
    WRONG_USAGE = 6
    INVALID_NAME = 7
    INVALID_CERTIFICATE_AUTHORITY_POLICY = 8
    BASIC_CONSTRAINTS_ERROR = 9
    UNKNOWN_CRITICAL_EXTENSION = 10
    REVOCATION_INFORMATION_MISSING = 11
    REVOCATION_FAILURE = 12
    OTHER_ERRORS = 13

class EnrollKeyUsages(enum.IntFlag):
    NONE = 0
    DECRYPTION = 0x1
    SIGNING = 0x2
    KEY_AGREEMENT = 0x4
    ALL = 0xffffff

class ExportOption(enum.IntEnum):
    NOT_EXPORTABLE = 0
    EXPORTABLE = 1

class InstallOptions(enum.IntFlag):
    NONE = 0
    DELETE_EXPIRED = 0x1

class KeyProtectionLevel(enum.IntEnum):
    NO_CONSENT = 0
    CONSENT_ONLY = 1
    CONSENT_WITH_PASSWORD = 2
    CONSENT_WITH_FINGERPRINT = 3

class KeySize(enum.IntEnum):
    INVALID = 0
    RSA2048 = 2048
    RSA4096 = 4096

class SignatureValidationResult(enum.IntEnum):
    SUCCESS = 0
    INVALID_PARAMETER = 1
    BAD_MESSAGE = 2
    INVALID_SIGNATURE = 3
    OTHER_ERRORS = 4

_ns_module._register_CertificateChainPolicy(CertificateChainPolicy)
_ns_module._register_ChainValidationResult(ChainValidationResult)
_ns_module._register_EnrollKeyUsages(EnrollKeyUsages)
_ns_module._register_ExportOption(ExportOption)
_ns_module._register_InstallOptions(InstallOptions)
_ns_module._register_KeyProtectionLevel(KeyProtectionLevel)
_ns_module._register_KeySize(KeySize)
_ns_module._register_SignatureValidationResult(SignatureValidationResult)

Certificate = _ns_module.Certificate
CertificateChain = _ns_module.CertificateChain
CertificateEnrollmentManager = _ns_module.CertificateEnrollmentManager
CertificateExtension = _ns_module.CertificateExtension
CertificateKeyUsages = _ns_module.CertificateKeyUsages
CertificateQuery = _ns_module.CertificateQuery
CertificateRequestProperties = _ns_module.CertificateRequestProperties
CertificateStore = _ns_module.CertificateStore
CertificateStores = _ns_module.CertificateStores
ChainBuildingParameters = _ns_module.ChainBuildingParameters
ChainValidationParameters = _ns_module.ChainValidationParameters
CmsAttachedSignature = _ns_module.CmsAttachedSignature
CmsDetachedSignature = _ns_module.CmsDetachedSignature
CmsSignerInfo = _ns_module.CmsSignerInfo
CmsTimestampInfo = _ns_module.CmsTimestampInfo
KeyAlgorithmNames = _ns_module.KeyAlgorithmNames
KeyAttestationHelper = _ns_module.KeyAttestationHelper
KeyStorageProviderNames = _ns_module.KeyStorageProviderNames
PfxImportParameters = _ns_module.PfxImportParameters
StandardCertificateStoreNames = _ns_module.StandardCertificateStoreNames
SubjectAlternativeNameInfo = _ns_module.SubjectAlternativeNameInfo
UserCertificateEnrollmentManager = _ns_module.UserCertificateEnrollmentManager
UserCertificateStore = _ns_module.UserCertificateStore
