# WARNING: Please don't edit this file. It was generated by Python/WinRT v3.0.0

import datetime
import sys
import types
import typing
import uuid as _uuid
from builtins import property as _property

import winrt._winrt
import winrt.system
import winrt.windows.foundation as windows_foundation
import winrt.windows.foundation.collections as windows_foundation_collections
import winrt.windows.networking as windows_networking
import winrt.windows.storage.streams as windows_storage_streams

from winrt.windows.security.cryptography.certificates import CertificateChainPolicy, ChainValidationResult, EnrollKeyUsages, ExportOption, InstallOptions, KeyProtectionLevel, KeySize, SignatureValidationResult

Self = typing.TypeVar('Self')

@typing.final
class Certificate(winrt.system.Object):
    def __new__(cls: typing.Type[Self], cert_blob: windows_storage_streams.IBuffer) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Security.Cryptography.Certificates.CertificateChain> Windows.Security.Cryptography.Certificates.Certificate::BuildChainAsync(Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.Certificate>)
    def build_chain_async(self, certificates: typing.Iterable[Certificate], /) -> windows_foundation.IAsyncOperation[CertificateChain]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Security.Cryptography.Certificates.CertificateChain> Windows.Security.Cryptography.Certificates.Certificate::BuildChainAsync(Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.Certificate>,Windows.Security.Cryptography.Certificates.ChainBuildingParameters)
    def build_chain_with_parameters_async(self, certificates: typing.Iterable[Certificate], parameters: ChainBuildingParameters, /) -> windows_foundation.IAsyncOperation[CertificateChain]: ...
    # Windows.Storage.Streams.IBuffer Windows.Security.Cryptography.Certificates.Certificate::GetCertificateBlob()
    def get_certificate_blob(self) -> windows_storage_streams.IBuffer: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.Certificate::GetHashValue()
    def get_hash_value(self) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.Certificate::GetHashValue(System.String)
    def get_hash_value_with_algorithm(self, hash_algorithm_name: str, /) -> winrt.system.Array[winrt.system.UInt8]: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_FriendlyName()
    @_property
    def friendly_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.Certificate::put_FriendlyName(System.String)
    @friendly_name.setter
    def friendly_name(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.Certificate::get_EnhancedKeyUsages()
    @_property
    def enhanced_key_usages(self) -> typing.Sequence[str]: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.Certificate::get_HasPrivateKey()
    @_property
    def has_private_key(self) -> bool: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.Certificate::get_IsStronglyProtected()
    @_property
    def is_strongly_protected(self) -> bool: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_Issuer()
    @_property
    def issuer(self) -> str: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.Certificate::get_SerialNumber()
    @_property
    def serial_number(self) -> winrt.system.UInt8: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_Subject()
    @_property
    def subject(self) -> str: ...
    # Windows.Foundation.DateTime Windows.Security.Cryptography.Certificates.Certificate::get_ValidFrom()
    @_property
    def valid_from(self) -> datetime.datetime: ...
    # Windows.Foundation.DateTime Windows.Security.Cryptography.Certificates.Certificate::get_ValidTo()
    @_property
    def valid_to(self) -> datetime.datetime: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.Certificate::get_IsSecurityDeviceBound()
    @_property
    def is_security_device_bound(self) -> bool: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_KeyAlgorithmName()
    @_property
    def key_algorithm_name(self) -> str: ...
    # Windows.Security.Cryptography.Certificates.CertificateKeyUsages Windows.Security.Cryptography.Certificates.Certificate::get_KeyUsages()
    @_property
    def key_usages(self) -> CertificateKeyUsages: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_SignatureAlgorithmName()
    @_property
    def signature_algorithm_name(self) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_SignatureHashAlgorithmName()
    @_property
    def signature_hash_algorithm_name(self) -> str: ...
    # Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo Windows.Security.Cryptography.Certificates.Certificate::get_SubjectAlternativeName()
    @_property
    def subject_alternative_name(self) -> SubjectAlternativeNameInfo: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.Certificate::get_IsPerUser()
    @_property
    def is_per_user(self) -> bool: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_KeyStorageProviderName()
    @_property
    def key_storage_provider_name(self) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.Certificate::get_StoreName()
    @_property
    def store_name(self) -> str: ...

@typing.final
class CertificateChain(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate> Windows.Security.Cryptography.Certificates.CertificateChain::GetCertificates(System.Boolean)
    def get_certificates(self, include_root: bool, /) -> typing.Sequence[Certificate]: ...
    # Windows.Security.Cryptography.Certificates.ChainValidationResult Windows.Security.Cryptography.Certificates.CertificateChain::Validate()
    def validate(self) -> ChainValidationResult: ...
    # Windows.Security.Cryptography.Certificates.ChainValidationResult Windows.Security.Cryptography.Certificates.CertificateChain::Validate(Windows.Security.Cryptography.Certificates.ChainValidationParameters)
    def validate_with_parameters(self, parameter: ChainValidationParameters, /) -> ChainValidationResult: ...

@typing.final
class CertificateEnrollmentManager_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<System.String> Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager::CreateRequestAsync(Windows.Security.Cryptography.Certificates.CertificateRequestProperties)
    def create_request_async(cls, request: CertificateRequestProperties, /) -> windows_foundation.IAsyncOperation[str]: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager::ImportPfxDataAsync(System.String,System.String,Windows.Security.Cryptography.Certificates.ExportOption,Windows.Security.Cryptography.Certificates.KeyProtectionLevel,Windows.Security.Cryptography.Certificates.InstallOptions,System.String)
    def import_pfx_data_async(cls, pfx_data: str, password: str, exportable: ExportOption, key_protection_level: KeyProtectionLevel, install_option: InstallOptions, friendly_name: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager::ImportPfxDataAsync(System.String,System.String,Windows.Security.Cryptography.Certificates.ExportOption,Windows.Security.Cryptography.Certificates.KeyProtectionLevel,Windows.Security.Cryptography.Certificates.InstallOptions,System.String,System.String)
    def import_pfx_data_to_ksp_async(cls, pfx_data: str, password: str, exportable: ExportOption, key_protection_level: KeyProtectionLevel, install_option: InstallOptions, friendly_name: str, key_storage_provider: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager::ImportPfxDataAsync(System.String,System.String,Windows.Security.Cryptography.Certificates.PfxImportParameters)
    def import_pfx_data_to_ksp_with_parameters_async(cls, pfx_data: str, password: str, pfx_import_parameters: PfxImportParameters, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager::InstallCertificateAsync(System.String,Windows.Security.Cryptography.Certificates.InstallOptions)
    def install_certificate_async(cls, certificate: str, install_option: InstallOptions, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager Windows.Security.Cryptography.Certificates.CertificateEnrollmentManager::get_UserCertificateEnrollmentManager()
    @_property
    def user_certificate_enrollment_manager(cls) -> UserCertificateEnrollmentManager: ...

@typing.final
class CertificateEnrollmentManager(winrt.system.Object, metaclass=CertificateEnrollmentManager_Static):
    pass

@typing.final
class CertificateExtension(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateExtension::EncodeValue(System.String)
    def encode_value(self, value: str, /) -> None: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.CertificateExtension::get_Value()
    @_property
    def value(self) -> winrt.system.UInt8: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateExtension::put_Value(System.Byte[])
    @value.setter
    def value(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer]) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateExtension::get_ObjectId()
    @_property
    def object_id(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateExtension::put_ObjectId(System.String)
    @object_id.setter
    def object_id(self, value: str) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateExtension::get_IsCritical()
    @_property
    def is_critical(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateExtension::put_IsCritical(System.Boolean)
    @is_critical.setter
    def is_critical(self, value: bool) -> None: ...

@typing.final
class CertificateKeyUsages(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_NonRepudiation()
    @_property
    def non_repudiation(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_NonRepudiation(System.Boolean)
    @non_repudiation.setter
    def non_repudiation(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_KeyEncipherment()
    @_property
    def key_encipherment(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_KeyEncipherment(System.Boolean)
    @key_encipherment.setter
    def key_encipherment(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_KeyCertificateSign()
    @_property
    def key_certificate_sign(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_KeyCertificateSign(System.Boolean)
    @key_certificate_sign.setter
    def key_certificate_sign(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_KeyAgreement()
    @_property
    def key_agreement(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_KeyAgreement(System.Boolean)
    @key_agreement.setter
    def key_agreement(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_EncipherOnly()
    @_property
    def encipher_only(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_EncipherOnly(System.Boolean)
    @encipher_only.setter
    def encipher_only(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_DigitalSignature()
    @_property
    def digital_signature(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_DigitalSignature(System.Boolean)
    @digital_signature.setter
    def digital_signature(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_DataEncipherment()
    @_property
    def data_encipherment(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_DataEncipherment(System.Boolean)
    @data_encipherment.setter
    def data_encipherment(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateKeyUsages::get_CrlSign()
    @_property
    def crl_sign(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateKeyUsages::put_CrlSign(System.Boolean)
    @crl_sign.setter
    def crl_sign(self, value: bool) -> None: ...

@typing.final
class CertificateQuery(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.CertificateQuery::get_Thumbprint()
    @_property
    def thumbprint(self) -> winrt.system.UInt8: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_Thumbprint(System.Byte[])
    @thumbprint.setter
    def thumbprint(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer]) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateQuery::get_IssuerName()
    @_property
    def issuer_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_IssuerName(System.String)
    @issuer_name.setter
    def issuer_name(self, value: str) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateQuery::get_HardwareOnly()
    @_property
    def hardware_only(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_HardwareOnly(System.Boolean)
    @hardware_only.setter
    def hardware_only(self, value: bool) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateQuery::get_FriendlyName()
    @_property
    def friendly_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_FriendlyName(System.String)
    @friendly_name.setter
    def friendly_name(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.CertificateQuery::get_EnhancedKeyUsages()
    @_property
    def enhanced_key_usages(self) -> typing.MutableSequence[str]: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateQuery::get_StoreName()
    @_property
    def store_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_StoreName(System.String)
    @store_name.setter
    def store_name(self, value: str) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateQuery::get_IncludeExpiredCertificates()
    @_property
    def include_expired_certificates(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_IncludeExpiredCertificates(System.Boolean)
    @include_expired_certificates.setter
    def include_expired_certificates(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateQuery::get_IncludeDuplicates()
    @_property
    def include_duplicates(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateQuery::put_IncludeDuplicates(System.Boolean)
    @include_duplicates.setter
    def include_duplicates(self, value: bool) -> None: ...

@typing.final
class CertificateRequestProperties(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_Subject()
    @_property
    def subject(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_Subject(System.String)
    @subject.setter
    def subject(self, value: str) -> None: ...
    # Windows.Security.Cryptography.Certificates.EnrollKeyUsages Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_KeyUsages()
    @_property
    def key_usages(self) -> EnrollKeyUsages: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_KeyUsages(Windows.Security.Cryptography.Certificates.EnrollKeyUsages)
    @key_usages.setter
    def key_usages(self, value: EnrollKeyUsages) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_KeyStorageProviderName()
    @_property
    def key_storage_provider_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_KeyStorageProviderName(System.String)
    @key_storage_provider_name.setter
    def key_storage_provider_name(self, value: str) -> None: ...
    # System.UInt32 Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_KeySize()
    @_property
    def key_size(self) -> winrt.system.UInt32: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_KeySize(System.UInt32)
    @key_size.setter
    def key_size(self, value: winrt.system.UInt32) -> None: ...
    # Windows.Security.Cryptography.Certificates.ExportOption Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_Exportable()
    @_property
    def exportable(self) -> ExportOption: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_Exportable(Windows.Security.Cryptography.Certificates.ExportOption)
    @exportable.setter
    def exportable(self, value: ExportOption) -> None: ...
    # Windows.Security.Cryptography.Certificates.KeyProtectionLevel Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_KeyProtectionLevel()
    @_property
    def key_protection_level(self) -> KeyProtectionLevel: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_KeyProtectionLevel(Windows.Security.Cryptography.Certificates.KeyProtectionLevel)
    @key_protection_level.setter
    def key_protection_level(self, value: KeyProtectionLevel) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_KeyAlgorithmName()
    @_property
    def key_algorithm_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_KeyAlgorithmName(System.String)
    @key_algorithm_name.setter
    def key_algorithm_name(self, value: str) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_HashAlgorithmName()
    @_property
    def hash_algorithm_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_HashAlgorithmName(System.String)
    @hash_algorithm_name.setter
    def hash_algorithm_name(self, value: str) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_FriendlyName()
    @_property
    def friendly_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_FriendlyName(System.String)
    @friendly_name.setter
    def friendly_name(self, value: str) -> None: ...
    # Windows.Security.Cryptography.Certificates.Certificate Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_AttestationCredentialCertificate()
    @_property
    def attestation_credential_certificate(self) -> Certificate: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_AttestationCredentialCertificate(Windows.Security.Cryptography.Certificates.Certificate)
    @attestation_credential_certificate.setter
    def attestation_credential_certificate(self, value: Certificate) -> None: ...
    # Windows.Security.Cryptography.Certificates.Certificate Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_SigningCertificate()
    @_property
    def signing_certificate(self) -> Certificate: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_SigningCertificate(Windows.Security.Cryptography.Certificates.Certificate)
    @signing_certificate.setter
    def signing_certificate(self, value: Certificate) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_SmartcardReaderName()
    @_property
    def smartcard_reader_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_SmartcardReaderName(System.String)
    @smartcard_reader_name.setter
    def smartcard_reader_name(self, value: str) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_UseExistingKey()
    @_property
    def use_existing_key(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_UseExistingKey(System.Boolean)
    @use_existing_key.setter
    def use_existing_key(self, value: bool) -> None: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_CurveParameters()
    @_property
    def curve_parameters(self) -> winrt.system.UInt8: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_CurveParameters(System.Byte[])
    @curve_parameters.setter
    def curve_parameters(self, value: typing.Union[winrt.system.Array[winrt.system.UInt8], winrt.system.ReadableBuffer]) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_CurveName()
    @_property
    def curve_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_CurveName(System.String)
    @curve_name.setter
    def curve_name(self, value: str) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_ContainerNamePrefix()
    @_property
    def container_name_prefix(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_ContainerNamePrefix(System.String)
    @container_name_prefix.setter
    def container_name_prefix(self, value: str) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_ContainerName()
    @_property
    def container_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateRequestProperties::put_ContainerName(System.String)
    @container_name.setter
    def container_name(self, value: str) -> None: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Security.Cryptography.Certificates.CertificateExtension> Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_Extensions()
    @_property
    def extensions(self) -> typing.MutableSequence[CertificateExtension]: ...
    # Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_SubjectAlternativeName()
    @_property
    def subject_alternative_name(self) -> SubjectAlternativeNameInfo: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.CertificateRequestProperties::get_SuppressedDefaults()
    @_property
    def suppressed_defaults(self) -> typing.MutableSequence[str]: ...

@typing.final
class CertificateStore(winrt.system.Object):
    # System.Void Windows.Security.Cryptography.Certificates.CertificateStore::Add(Windows.Security.Cryptography.Certificates.Certificate)
    def add(self, certificate: Certificate, /) -> None: ...
    # System.Void Windows.Security.Cryptography.Certificates.CertificateStore::Delete(Windows.Security.Cryptography.Certificates.Certificate)
    def delete(self, certificate: Certificate, /) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.CertificateStore::get_Name()
    @_property
    def name(self) -> str: ...

@typing.final
class CertificateStores_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate>> Windows.Security.Cryptography.Certificates.CertificateStores::FindAllAsync()
    def find_all_async(cls) -> windows_foundation.IAsyncOperation[typing.Sequence[Certificate]]: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate>> Windows.Security.Cryptography.Certificates.CertificateStores::FindAllAsync(Windows.Security.Cryptography.Certificates.CertificateQuery)
    def find_all_with_query_async(cls, query: CertificateQuery, /) -> windows_foundation.IAsyncOperation[typing.Sequence[Certificate]]: ...
    # Windows.Security.Cryptography.Certificates.CertificateStore Windows.Security.Cryptography.Certificates.CertificateStores::GetStoreByName(System.String)
    def get_store_by_name(cls, store_name: str, /) -> CertificateStore: ...
    # Windows.Security.Cryptography.Certificates.UserCertificateStore Windows.Security.Cryptography.Certificates.CertificateStores::GetUserStoreByName(System.String)
    def get_user_store_by_name(cls, store_name: str, /) -> UserCertificateStore: ...
    # Windows.Security.Cryptography.Certificates.CertificateStore Windows.Security.Cryptography.Certificates.CertificateStores::get_IntermediateCertificationAuthorities()
    @_property
    def intermediate_certification_authorities(cls) -> CertificateStore: ...
    # Windows.Security.Cryptography.Certificates.CertificateStore Windows.Security.Cryptography.Certificates.CertificateStores::get_TrustedRootCertificationAuthorities()
    @_property
    def trusted_root_certification_authorities(cls) -> CertificateStore: ...

@typing.final
class CertificateStores(winrt.system.Object, metaclass=CertificateStores_Static):
    pass

@typing.final
class ChainBuildingParameters(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.DateTime Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_ValidationTimestamp()
    @_property
    def validation_timestamp(self) -> datetime.datetime: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainBuildingParameters::put_ValidationTimestamp(Windows.Foundation.DateTime)
    @validation_timestamp.setter
    def validation_timestamp(self, value: datetime.datetime) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_RevocationCheckEnabled()
    @_property
    def revocation_check_enabled(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainBuildingParameters::put_RevocationCheckEnabled(System.Boolean)
    @revocation_check_enabled.setter
    def revocation_check_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_NetworkRetrievalEnabled()
    @_property
    def network_retrieval_enabled(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainBuildingParameters::put_NetworkRetrievalEnabled(System.Boolean)
    @network_retrieval_enabled.setter
    def network_retrieval_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_CurrentTimeValidationEnabled()
    @_property
    def current_time_validation_enabled(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainBuildingParameters::put_CurrentTimeValidationEnabled(System.Boolean)
    @current_time_validation_enabled.setter
    def current_time_validation_enabled(self, value: bool) -> None: ...
    # System.Boolean Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_AuthorityInformationAccessEnabled()
    @_property
    def authority_information_access_enabled(self) -> bool: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainBuildingParameters::put_AuthorityInformationAccessEnabled(System.Boolean)
    @authority_information_access_enabled.setter
    def authority_information_access_enabled(self, value: bool) -> None: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_EnhancedKeyUsages()
    @_property
    def enhanced_key_usages(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<Windows.Security.Cryptography.Certificates.Certificate> Windows.Security.Cryptography.Certificates.ChainBuildingParameters::get_ExclusiveTrustRoots()
    @_property
    def exclusive_trust_roots(self) -> typing.MutableSequence[Certificate]: ...

@typing.final
class ChainValidationParameters(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Networking.HostName Windows.Security.Cryptography.Certificates.ChainValidationParameters::get_ServerDnsName()
    @_property
    def server_dns_name(self) -> windows_networking.HostName: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainValidationParameters::put_ServerDnsName(Windows.Networking.HostName)
    @server_dns_name.setter
    def server_dns_name(self, value: windows_networking.HostName) -> None: ...
    # Windows.Security.Cryptography.Certificates.CertificateChainPolicy Windows.Security.Cryptography.Certificates.ChainValidationParameters::get_CertificateChainPolicy()
    @_property
    def certificate_chain_policy(self) -> CertificateChainPolicy: ...
    # System.Void Windows.Security.Cryptography.Certificates.ChainValidationParameters::put_CertificateChainPolicy(Windows.Security.Cryptography.Certificates.CertificateChainPolicy)
    @certificate_chain_policy.setter
    def certificate_chain_policy(self, value: CertificateChainPolicy) -> None: ...

@typing.final
class CmsAttachedSignature_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IBuffer> Windows.Security.Cryptography.Certificates.CmsAttachedSignature::GenerateSignatureAsync(Windows.Storage.Streams.IBuffer,Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo>,Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.Certificate>)
    def generate_signature_async(cls, data: windows_storage_streams.IBuffer, signers: typing.Iterable[CmsSignerInfo], certificates: typing.Iterable[Certificate], /) -> windows_foundation.IAsyncOperation[windows_storage_streams.IBuffer]: ...

@typing.final
class CmsAttachedSignature(winrt.system.Object, metaclass=CmsAttachedSignature_Static):
    def __new__(cls: typing.Type[Self], input_blob: windows_storage_streams.IBuffer) -> Self: ...
    # Windows.Security.Cryptography.Certificates.SignatureValidationResult Windows.Security.Cryptography.Certificates.CmsAttachedSignature::VerifySignature()
    def verify_signature(self) -> SignatureValidationResult: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate> Windows.Security.Cryptography.Certificates.CmsAttachedSignature::get_Certificates()
    @_property
    def certificates(self) -> typing.Sequence[Certificate]: ...
    # System.Byte[] Windows.Security.Cryptography.Certificates.CmsAttachedSignature::get_Content()
    @_property
    def content(self) -> winrt.system.UInt8: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo> Windows.Security.Cryptography.Certificates.CmsAttachedSignature::get_Signers()
    @_property
    def signers(self) -> typing.Sequence[CmsSignerInfo]: ...

@typing.final
class CmsDetachedSignature_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<Windows.Storage.Streams.IBuffer> Windows.Security.Cryptography.Certificates.CmsDetachedSignature::GenerateSignatureAsync(Windows.Storage.Streams.IInputStream,Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo>,Windows.Foundation.Collections.IIterable`1<Windows.Security.Cryptography.Certificates.Certificate>)
    def generate_signature_async(cls, data: windows_storage_streams.IInputStream, signers: typing.Iterable[CmsSignerInfo], certificates: typing.Iterable[Certificate], /) -> windows_foundation.IAsyncOperation[windows_storage_streams.IBuffer]: ...

@typing.final
class CmsDetachedSignature(winrt.system.Object, metaclass=CmsDetachedSignature_Static):
    def __new__(cls: typing.Type[Self], input_blob: windows_storage_streams.IBuffer) -> Self: ...
    # Windows.Foundation.IAsyncOperation`1<Windows.Security.Cryptography.Certificates.SignatureValidationResult> Windows.Security.Cryptography.Certificates.CmsDetachedSignature::VerifySignatureAsync(Windows.Storage.Streams.IInputStream)
    def verify_signature_async(self, data: windows_storage_streams.IInputStream, /) -> windows_foundation.IAsyncOperation[SignatureValidationResult]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate> Windows.Security.Cryptography.Certificates.CmsDetachedSignature::get_Certificates()
    @_property
    def certificates(self) -> typing.Sequence[Certificate]: ...
    # Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.CmsSignerInfo> Windows.Security.Cryptography.Certificates.CmsDetachedSignature::get_Signers()
    @_property
    def signers(self) -> typing.Sequence[CmsSignerInfo]: ...

@typing.final
class CmsSignerInfo(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Security.Cryptography.Certificates.CmsSignerInfo::get_HashAlgorithmName()
    @_property
    def hash_algorithm_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.CmsSignerInfo::put_HashAlgorithmName(System.String)
    @hash_algorithm_name.setter
    def hash_algorithm_name(self, value: str) -> None: ...
    # Windows.Security.Cryptography.Certificates.Certificate Windows.Security.Cryptography.Certificates.CmsSignerInfo::get_Certificate()
    @_property
    def certificate(self) -> Certificate: ...
    # System.Void Windows.Security.Cryptography.Certificates.CmsSignerInfo::put_Certificate(Windows.Security.Cryptography.Certificates.Certificate)
    @certificate.setter
    def certificate(self, value: Certificate) -> None: ...
    # Windows.Security.Cryptography.Certificates.CmsTimestampInfo Windows.Security.Cryptography.Certificates.CmsSignerInfo::get_TimestampInfo()
    @_property
    def timestamp_info(self) -> CmsTimestampInfo: ...

@typing.final
class CmsTimestampInfo(winrt.system.Object):
    # Windows.Foundation.Collections.IVectorView`1<Windows.Security.Cryptography.Certificates.Certificate> Windows.Security.Cryptography.Certificates.CmsTimestampInfo::get_Certificates()
    @_property
    def certificates(self) -> typing.Sequence[Certificate]: ...
    # Windows.Security.Cryptography.Certificates.Certificate Windows.Security.Cryptography.Certificates.CmsTimestampInfo::get_SigningCertificate()
    @_property
    def signing_certificate(self) -> Certificate: ...
    # Windows.Foundation.DateTime Windows.Security.Cryptography.Certificates.CmsTimestampInfo::get_Timestamp()
    @_property
    def timestamp(self) -> datetime.datetime: ...

@typing.final
class KeyAlgorithmNames_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Dsa()
    @_property
    def dsa(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdh256()
    @_property
    def ecdh256(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdh384()
    @_property
    def ecdh384(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdh521()
    @_property
    def ecdh521(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdsa256()
    @_property
    def ecdsa256(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdsa384()
    @_property
    def ecdsa384(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdsa521()
    @_property
    def ecdsa521(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Rsa()
    @_property
    def rsa(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdh()
    @_property
    def ecdh(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAlgorithmNames::get_Ecdsa()
    @_property
    def ecdsa(cls) -> str: ...

@typing.final
class KeyAlgorithmNames(winrt.system.Object, metaclass=KeyAlgorithmNames_Static):
    pass

@typing.final
class KeyAttestationHelper_Static(winrt._winrt.IInspectable_Static):
    # Windows.Foundation.IAsyncOperation`1<System.String> Windows.Security.Cryptography.Certificates.KeyAttestationHelper::DecryptTpmAttestationCredentialAsync(System.String)
    def decrypt_tpm_attestation_credential_async(cls, credential: str, /) -> windows_foundation.IAsyncOperation[str]: ...
    # Windows.Foundation.IAsyncOperation`1<System.String> Windows.Security.Cryptography.Certificates.KeyAttestationHelper::DecryptTpmAttestationCredentialAsync(System.String,System.String)
    def decrypt_tpm_attestation_credential_with_container_name_async(cls, credential: str, container_name: str, /) -> windows_foundation.IAsyncOperation[str]: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyAttestationHelper::GetTpmAttestationCredentialId(System.String)
    def get_tpm_attestation_credential_id(cls, credential: str, /) -> str: ...

@typing.final
class KeyAttestationHelper(winrt.system.Object, metaclass=KeyAttestationHelper_Static):
    pass

@typing.final
class KeyStorageProviderNames_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Security.Cryptography.Certificates.KeyStorageProviderNames::get_PlatformKeyStorageProvider()
    @_property
    def platform_key_storage_provider(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyStorageProviderNames::get_SmartcardKeyStorageProvider()
    @_property
    def smartcard_key_storage_provider(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyStorageProviderNames::get_SoftwareKeyStorageProvider()
    @_property
    def software_key_storage_provider(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.KeyStorageProviderNames::get_PassportKeyStorageProvider()
    @_property
    def passport_key_storage_provider(cls) -> str: ...

@typing.final
class KeyStorageProviderNames(winrt.system.Object, metaclass=KeyStorageProviderNames_Static):
    pass

@typing.final
class PfxImportParameters(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # System.String Windows.Security.Cryptography.Certificates.PfxImportParameters::get_ReaderName()
    @_property
    def reader_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_ReaderName(System.String)
    @reader_name.setter
    def reader_name(self, value: str) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.PfxImportParameters::get_KeyStorageProviderName()
    @_property
    def key_storage_provider_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_KeyStorageProviderName(System.String)
    @key_storage_provider_name.setter
    def key_storage_provider_name(self, value: str) -> None: ...
    # Windows.Security.Cryptography.Certificates.KeyProtectionLevel Windows.Security.Cryptography.Certificates.PfxImportParameters::get_KeyProtectionLevel()
    @_property
    def key_protection_level(self) -> KeyProtectionLevel: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_KeyProtectionLevel(Windows.Security.Cryptography.Certificates.KeyProtectionLevel)
    @key_protection_level.setter
    def key_protection_level(self, value: KeyProtectionLevel) -> None: ...
    # Windows.Security.Cryptography.Certificates.InstallOptions Windows.Security.Cryptography.Certificates.PfxImportParameters::get_InstallOptions()
    @_property
    def install_options(self) -> InstallOptions: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_InstallOptions(Windows.Security.Cryptography.Certificates.InstallOptions)
    @install_options.setter
    def install_options(self, value: InstallOptions) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.PfxImportParameters::get_FriendlyName()
    @_property
    def friendly_name(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_FriendlyName(System.String)
    @friendly_name.setter
    def friendly_name(self, value: str) -> None: ...
    # Windows.Security.Cryptography.Certificates.ExportOption Windows.Security.Cryptography.Certificates.PfxImportParameters::get_Exportable()
    @_property
    def exportable(self) -> ExportOption: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_Exportable(Windows.Security.Cryptography.Certificates.ExportOption)
    @exportable.setter
    def exportable(self, value: ExportOption) -> None: ...
    # System.String Windows.Security.Cryptography.Certificates.PfxImportParameters::get_ContainerNamePrefix()
    @_property
    def container_name_prefix(self) -> str: ...
    # System.Void Windows.Security.Cryptography.Certificates.PfxImportParameters::put_ContainerNamePrefix(System.String)
    @container_name_prefix.setter
    def container_name_prefix(self, value: str) -> None: ...

@typing.final
class StandardCertificateStoreNames_Static(winrt._winrt.IInspectable_Static):
    # System.String Windows.Security.Cryptography.Certificates.StandardCertificateStoreNames::get_IntermediateCertificationAuthorities()
    @_property
    def intermediate_certification_authorities(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.StandardCertificateStoreNames::get_Personal()
    @_property
    def personal(cls) -> str: ...
    # System.String Windows.Security.Cryptography.Certificates.StandardCertificateStoreNames::get_TrustedRootCertificationAuthorities()
    @_property
    def trusted_root_certification_authorities(cls) -> str: ...

@typing.final
class StandardCertificateStoreNames(winrt.system.Object, metaclass=StandardCertificateStoreNames_Static):
    pass

@typing.final
class SubjectAlternativeNameInfo(winrt.system.Object):
    def __new__(cls: typing.Type[Self]) -> Self: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_DistinguishedName()
    @_property
    def distinguished_name(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_DnsName()
    @_property
    def dns_name(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_EmailName()
    @_property
    def email_name(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_IPAddress()
    @_property
    def ip_address(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_PrincipalName()
    @_property
    def principal_name(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVectorView`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_Url()
    @_property
    def url(self) -> typing.Sequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_DistinguishedNames()
    @_property
    def distinguished_names(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_DnsNames()
    @_property
    def dns_names(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_EmailNames()
    @_property
    def email_names(self) -> typing.MutableSequence[str]: ...
    # Windows.Security.Cryptography.Certificates.CertificateExtension Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_Extension()
    @_property
    def extension(self) -> CertificateExtension: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_IPAddresses()
    @_property
    def ip_addresses(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_PrincipalNames()
    @_property
    def principal_names(self) -> typing.MutableSequence[str]: ...
    # Windows.Foundation.Collections.IVector`1<System.String> Windows.Security.Cryptography.Certificates.SubjectAlternativeNameInfo::get_Urls()
    @_property
    def urls(self) -> typing.MutableSequence[str]: ...

@typing.final
class UserCertificateEnrollmentManager(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<System.String> Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager::CreateRequestAsync(Windows.Security.Cryptography.Certificates.CertificateRequestProperties)
    def create_request_async(self, request: CertificateRequestProperties, /) -> windows_foundation.IAsyncOperation[str]: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager::ImportPfxDataAsync(System.String,System.String,Windows.Security.Cryptography.Certificates.ExportOption,Windows.Security.Cryptography.Certificates.KeyProtectionLevel,Windows.Security.Cryptography.Certificates.InstallOptions,System.String)
    def import_pfx_data_async(self, pfx_data: str, password: str, exportable: ExportOption, key_protection_level: KeyProtectionLevel, install_option: InstallOptions, friendly_name: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager::ImportPfxDataAsync(System.String,System.String,Windows.Security.Cryptography.Certificates.ExportOption,Windows.Security.Cryptography.Certificates.KeyProtectionLevel,Windows.Security.Cryptography.Certificates.InstallOptions,System.String,System.String)
    def import_pfx_data_to_ksp_async(self, pfx_data: str, password: str, exportable: ExportOption, key_protection_level: KeyProtectionLevel, install_option: InstallOptions, friendly_name: str, key_storage_provider: str, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager::ImportPfxDataAsync(System.String,System.String,Windows.Security.Cryptography.Certificates.PfxImportParameters)
    def import_pfx_data_to_ksp_with_parameters_async(self, pfx_data: str, password: str, pfx_import_parameters: PfxImportParameters, /) -> windows_foundation.IAsyncAction: ...
    # Windows.Foundation.IAsyncAction Windows.Security.Cryptography.Certificates.UserCertificateEnrollmentManager::InstallCertificateAsync(System.String,Windows.Security.Cryptography.Certificates.InstallOptions)
    def install_certificate_async(self, certificate: str, install_option: InstallOptions, /) -> windows_foundation.IAsyncAction: ...

@typing.final
class UserCertificateStore(winrt.system.Object):
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Security.Cryptography.Certificates.UserCertificateStore::RequestAddAsync(Windows.Security.Cryptography.Certificates.Certificate)
    def request_add_async(self, certificate: Certificate, /) -> windows_foundation.IAsyncOperation[bool]: ...
    # Windows.Foundation.IAsyncOperation`1<System.Boolean> Windows.Security.Cryptography.Certificates.UserCertificateStore::RequestDeleteAsync(Windows.Security.Cryptography.Certificates.Certificate)
    def request_delete_async(self, certificate: Certificate, /) -> windows_foundation.IAsyncOperation[bool]: ...
    # System.String Windows.Security.Cryptography.Certificates.UserCertificateStore::get_Name()
    @_property
    def name(self) -> str: ...

