import typing

import java
import java.chaquopy
import java.io
import java.lang
import java.math
import java.net
import java.security
import java.util
import javax.security.auth.x500

class CRL(java.lang.Object):
    def __init__(self, type: str | java.lang.String, /) -> None: ...
    def getType(self) -> str: ...
    def isRevoked(self, arg1: Certificate, /) -> bool: ...
    def toString(self) -> str: ...

class CRLException(java.security.GeneralSecurityException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class CRLReason(java.lang.Enum[CRLReason]):
    AA_COMPROMISE: typing.ClassVar[CRLReason] = ...
    AFFILIATION_CHANGED: typing.ClassVar[CRLReason] = ...
    CA_COMPROMISE: typing.ClassVar[CRLReason] = ...
    CERTIFICATE_HOLD: typing.ClassVar[CRLReason] = ...
    CESSATION_OF_OPERATION: typing.ClassVar[CRLReason] = ...
    KEY_COMPROMISE: typing.ClassVar[CRLReason] = ...
    PRIVILEGE_WITHDRAWN: typing.ClassVar[CRLReason] = ...
    REMOVE_FROM_CRL: typing.ClassVar[CRLReason] = ...
    SUPERSEDED: typing.ClassVar[CRLReason] = ...
    UNSPECIFIED: typing.ClassVar[CRLReason] = ...
    UNUSED: typing.ClassVar[CRLReason] = ...
    @staticmethod
    def valueOf(name: str | java.lang.String, /) -> CRLReason: ...
    @staticmethod
    def values() -> java.chaquopy.JavaArray[CRLReason]: ...

class CRLSelector(java.lang.Cloneable):
    def clone(self) -> java.lang.Object: ...
    def match(self, arg1: CRL, /) -> bool: ...

class CertPath(java.io.Serializable):
    def __init__(self, type: str | java.lang.String, /) -> None: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getCertificates(self) -> java.util.List[Certificate]: ...
    @typing.overload
    def getEncoded(self) -> java.chaquopy.JavaArrayJByte: ...
    @typing.overload
    def getEncoded(self, arg1: str | java.lang.String, /) -> java.chaquopy.JavaArrayJByte: ...
    def getEncodings(self) -> java.util.Iterator[java.lang.String]: ...
    def getType(self) -> str: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def writeReplace(self) -> java.lang.Object: ...

    class CertPathRep(java.io.Serializable):
        def __init__(self, type: str | java.lang.String, data: java.chaquopy.JavaArrayJByte, /) -> None: ...
        def readResolve(self) -> java.lang.Object: ...

class CertPathBuilder(java.lang.Object):
    def __init__(self, builderSpi: CertPathBuilderSpi, provider: java.security.Provider, algorithm: str | java.lang.String, /) -> None: ...
    def build(self, params: CertPathParameters, /) -> CertPathBuilderResult: ...
    def getAlgorithm(self) -> str: ...
    @staticmethod
    def getDefaultType() -> str: ...
    @typing.overload
    @staticmethod
    def getInstance(algorithm: str | java.lang.String, /) -> CertPathBuilder: ...
    @typing.overload
    @staticmethod
    def getInstance(algorithm: str | java.lang.String, provider: str | java.lang.String, /) -> CertPathBuilder: ...
    @typing.overload
    @staticmethod
    def getInstance(algorithm: str | java.lang.String, provider: java.security.Provider, /) -> CertPathBuilder: ...
    def getProvider(self) -> java.security.Provider: ...
    def getRevocationChecker(self) -> CertPathChecker: ...

class CertPathBuilderException(java.security.GeneralSecurityException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class CertPathBuilderResult(java.lang.Cloneable):
    def clone(self) -> java.lang.Object: ...
    def getCertPath(self) -> CertPath: ...

class CertPathBuilderSpi(java.lang.Object):
    def __init__(self) -> None: ...
    def engineBuild(self, arg1: CertPathParameters, /) -> CertPathBuilderResult: ...
    def engineGetRevocationChecker(self) -> CertPathChecker: ...

class CertPathChecker(java.lang.Object):
    def check(self, arg1: Certificate, /) -> None: ...
    def init(self, arg1: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def isForwardCheckingSupported(self) -> bool: ...

class CertPathParameters(java.lang.Cloneable):
    def clone(self) -> java.lang.Object: ...

class CertPathValidator(java.lang.Object):
    def __init__(self, validatorSpi: CertPathValidatorSpi, provider: java.security.Provider, algorithm: str | java.lang.String, /) -> None: ...
    def getAlgorithm(self) -> str: ...
    @staticmethod
    def getDefaultType() -> str: ...
    @typing.overload
    @staticmethod
    def getInstance(algorithm: str | java.lang.String, /) -> CertPathValidator: ...
    @typing.overload
    @staticmethod
    def getInstance(algorithm: str | java.lang.String, provider: str | java.lang.String, /) -> CertPathValidator: ...
    @typing.overload
    @staticmethod
    def getInstance(algorithm: str | java.lang.String, provider: java.security.Provider, /) -> CertPathValidator: ...
    def getProvider(self) -> java.security.Provider: ...
    def getRevocationChecker(self) -> CertPathChecker: ...
    def validate(self, certPath: CertPath, params: CertPathParameters, /) -> CertPathValidatorResult: ...

class CertPathValidatorException(java.security.GeneralSecurityException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, cause: java.lang.Throwable, certPath: CertPath, index: int | java.jint | java.lang.Integer, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, cause: java.lang.Throwable, certPath: CertPath, index: int | java.jint | java.lang.Integer, reason: CertPathValidatorException.Reason, /) -> None: ...
    def getCertPath(self) -> CertPath: ...
    def getIndex(self) -> int: ...
    def getReason(self) -> CertPathValidatorException.Reason: ...

    class Reason(java.io.Serializable): ...

    class BasicReason(java.lang.Enum[CertPathValidatorException.BasicReason], CertPathValidatorException.Reason):
        ALGORITHM_CONSTRAINED: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        EXPIRED: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        INVALID_SIGNATURE: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        NOT_YET_VALID: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        REVOKED: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        UNDETERMINED_REVOCATION_STATUS: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        UNSPECIFIED: typing.ClassVar[CertPathValidatorException.BasicReason] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> CertPathValidatorException.BasicReason: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[CertPathValidatorException.BasicReason]: ...

class CertPathValidatorResult(java.lang.Cloneable):
    def clone(self) -> java.lang.Object: ...

class CertPathValidatorSpi(java.lang.Object):
    def __init__(self) -> None: ...
    def engineGetRevocationChecker(self) -> CertPathChecker: ...
    def engineValidate(self, arg1: CertPath, arg2: CertPathParameters, /) -> CertPathValidatorResult: ...

class CertSelector(java.lang.Cloneable):
    def clone(self) -> java.lang.Object: ...
    def match(self, arg1: Certificate, /) -> bool: ...

class CertStore(java.lang.Object):
    def __init__(self, storeSpi: CertStoreSpi, provider: java.security.Provider, type: str | java.lang.String, params: CertStoreParameters, /) -> None: ...
    def getCRLs(self, selector: CRLSelector, /) -> java.util.Collection[CRL]: ...
    def getCertStoreParameters(self) -> CertStoreParameters: ...
    def getCertificates(self, selector: CertSelector, /) -> java.util.Collection[Certificate]: ...
    @staticmethod
    def getDefaultType() -> str: ...
    @typing.overload
    @staticmethod
    def getInstance(type: str | java.lang.String, params: CertStoreParameters, /) -> CertStore: ...
    @typing.overload
    @staticmethod
    def getInstance(type: str | java.lang.String, params: CertStoreParameters, provider: str | java.lang.String, /) -> CertStore: ...
    @typing.overload
    @staticmethod
    def getInstance(type: str | java.lang.String, params: CertStoreParameters, provider: java.security.Provider, /) -> CertStore: ...
    def getProvider(self) -> java.security.Provider: ...
    def getType(self) -> str: ...

class CertStoreException(java.security.GeneralSecurityException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class CertStoreParameters(java.lang.Cloneable):
    def clone(self) -> java.lang.Object: ...

class CertStoreSpi(java.lang.Object):
    def __init__(self, params: CertStoreParameters, /) -> None: ...
    def engineGetCRLs(self, arg1: CRLSelector, /) -> java.util.Collection[CRL]: ...
    def engineGetCertificates(self, arg1: CertSelector, /) -> java.util.Collection[Certificate]: ...

class Certificate(java.io.Serializable):
    def __init__(self, type: str | java.lang.String, /) -> None: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getEncoded(self) -> java.chaquopy.JavaArrayJByte: ...
    def getPublicKey(self) -> java.security.PublicKey: ...
    def getType(self) -> str: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    @typing.overload
    def verify(self, arg1: java.security.PublicKey, /) -> None: ...
    @typing.overload
    def verify(self, arg1: java.security.PublicKey, arg2: str | java.lang.String, /) -> None: ...
    @typing.overload
    def verify(self, key: java.security.PublicKey, sigProvider: java.security.Provider, /) -> None: ...
    def writeReplace(self) -> java.lang.Object: ...

    class CertificateRep(java.io.Serializable):
        def __init__(self, type: str | java.lang.String, data: java.chaquopy.JavaArrayJByte, /) -> None: ...
        def readResolve(self) -> java.lang.Object: ...

class CertificateEncodingException(CertificateException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class CertificateException(java.security.GeneralSecurityException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, msg: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class CertificateExpiredException(CertificateException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...

class CertificateFactory(java.lang.Object):
    def __init__(self, certFacSpi: CertificateFactorySpi, provider: java.security.Provider, type: str | java.lang.String, /) -> None: ...
    def generateCRL(self, inStream: java.io.InputStream, /) -> CRL: ...
    def generateCRLs(self, inStream: java.io.InputStream, /) -> java.util.Collection[CRL]: ...
    @typing.overload
    def generateCertPath(self, inStream: java.io.InputStream, /) -> CertPath: ...
    @typing.overload
    def generateCertPath(self, certificates: java.util.List[Certificate], /) -> CertPath: ...
    @typing.overload
    def generateCertPath(self, inStream: java.io.InputStream, encoding: str | java.lang.String, /) -> CertPath: ...
    def generateCertificate(self, inStream: java.io.InputStream, /) -> Certificate: ...
    def generateCertificates(self, inStream: java.io.InputStream, /) -> java.util.Collection[Certificate]: ...
    def getCertPathEncodings(self) -> java.util.Iterator[java.lang.String]: ...
    @typing.overload
    @staticmethod
    def getInstance(type: str | java.lang.String, /) -> CertificateFactory: ...
    @typing.overload
    @staticmethod
    def getInstance(type: str | java.lang.String, provider: str | java.lang.String, /) -> CertificateFactory: ...
    @typing.overload
    @staticmethod
    def getInstance(type: str | java.lang.String, provider: java.security.Provider, /) -> CertificateFactory: ...
    def getProvider(self) -> java.security.Provider: ...
    def getType(self) -> str: ...

class CertificateFactorySpi(java.lang.Object):
    def __init__(self) -> None: ...
    def engineGenerateCRL(self, arg1: java.io.InputStream, /) -> CRL: ...
    def engineGenerateCRLs(self, arg1: java.io.InputStream, /) -> java.util.Collection[CRL]: ...
    @typing.overload
    def engineGenerateCertPath(self, inStream: java.io.InputStream, /) -> CertPath: ...
    @typing.overload
    def engineGenerateCertPath(self, certificates: java.util.List[Certificate], /) -> CertPath: ...
    @typing.overload
    def engineGenerateCertPath(self, inStream: java.io.InputStream, encoding: str | java.lang.String, /) -> CertPath: ...
    def engineGenerateCertificate(self, arg1: java.io.InputStream, /) -> Certificate: ...
    def engineGenerateCertificates(self, arg1: java.io.InputStream, /) -> java.util.Collection[Certificate]: ...
    def engineGetCertPathEncodings(self) -> java.util.Iterator[java.lang.String]: ...

class CertificateNotYetValidException(CertificateException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...

class CertificateParsingException(CertificateException):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, cause: java.lang.Throwable, /) -> None: ...
    @typing.overload
    def __init__(self, message: str | java.lang.String, cause: java.lang.Throwable, /) -> None: ...

class CertificateRevokedException(CertificateException):
    def __init__(self, revocationDate: java.util.Date, reason: CRLReason, authority: javax.security.auth.x500.X500Principal, extensions: java.util.Map[java.lang.String, Extension], /) -> None: ...
    def getAuthorityName(self) -> javax.security.auth.x500.X500Principal: ...
    def getExtensions(self) -> java.util.Map[java.lang.String, Extension]: ...
    def getInvalidityDate(self) -> java.util.Date: ...
    def getMessage(self) -> str: ...
    def getRevocationDate(self) -> java.util.Date: ...
    def getRevocationReason(self) -> CRLReason: ...

class CollectionCertStoreParameters(CertStoreParameters):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, collection: java.util.Collection[java.lang.Object], /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getCollection(self) -> java.util.Collection[java.lang.Object]: ...
    def toString(self) -> str: ...

class Extension(java.lang.Object):
    def encode(self, arg1: java.io.OutputStream, /) -> None: ...
    def getId(self) -> str: ...
    def getValue(self) -> java.chaquopy.JavaArrayJByte: ...
    def isCritical(self) -> bool: ...

class LDAPCertStoreParameters(CertStoreParameters):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, serverName: str | java.lang.String, /) -> None: ...
    @typing.overload
    def __init__(self, serverName: str | java.lang.String, port: int | java.jint | java.lang.Integer, /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getPort(self) -> int: ...
    def getServerName(self) -> str: ...
    def toString(self) -> str: ...

class PKIXBuilderParameters(PKIXParameters):
    @typing.overload
    def __init__(self, keystore: java.security.KeyStore, targetConstraints: CertSelector, /) -> None: ...
    @typing.overload
    def __init__(self, trustAnchors: java.util.Set[TrustAnchor], targetConstraints: CertSelector, /) -> None: ...
    def getMaxPathLength(self) -> int: ...
    def setMaxPathLength(self, maxPathLength: int | java.jint | java.lang.Integer, /) -> None: ...
    def toString(self) -> str: ...

class PKIXCertPathBuilderResult(CertPathBuilderResult, PKIXCertPathValidatorResult):
    def __init__(self, certPath: CertPath, trustAnchor: TrustAnchor, policyTree: PolicyNode, subjectPublicKey: java.security.PublicKey, /) -> None: ...
    def getCertPath(self) -> CertPath: ...
    def toString(self) -> str: ...

class PKIXCertPathChecker(CertPathChecker, java.lang.Cloneable):
    def __init__(self) -> None: ...
    @typing.overload
    def check(self, cert: Certificate, /) -> None: ...
    @typing.overload
    def check(self, arg1: Certificate, arg2: java.util.Collection[java.lang.String], /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getSupportedExtensions(self) -> java.util.Set[java.lang.String]: ...
    def init(self, arg1: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def isForwardCheckingSupported(self) -> bool: ...

class PKIXCertPathValidatorResult(CertPathValidatorResult):
    def __init__(self, trustAnchor: TrustAnchor, policyTree: PolicyNode, subjectPublicKey: java.security.PublicKey, /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getPolicyTree(self) -> PolicyNode: ...
    def getPublicKey(self) -> java.security.PublicKey: ...
    def getTrustAnchor(self) -> TrustAnchor: ...
    def toString(self) -> str: ...

class PKIXParameters(CertPathParameters):
    @typing.overload
    def __init__(self, keystore: java.security.KeyStore, /) -> None: ...
    @typing.overload
    def __init__(self, trustAnchors: java.util.Set[TrustAnchor], /) -> None: ...
    def addCertPathChecker(self, checker: PKIXCertPathChecker, /) -> None: ...
    def addCertStore(self, store: CertStore, /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getCertPathCheckers(self) -> java.util.List[PKIXCertPathChecker]: ...
    def getCertStores(self) -> java.util.List[CertStore]: ...
    def getDate(self) -> java.util.Date: ...
    def getInitialPolicies(self) -> java.util.Set[java.lang.String]: ...
    def getPolicyQualifiersRejected(self) -> bool: ...
    def getSigProvider(self) -> str: ...
    def getTargetCertConstraints(self) -> CertSelector: ...
    def getTrustAnchors(self) -> java.util.Set[TrustAnchor]: ...
    def isAnyPolicyInhibited(self) -> bool: ...
    def isExplicitPolicyRequired(self) -> bool: ...
    def isPolicyMappingInhibited(self) -> bool: ...
    def isRevocationEnabled(self) -> bool: ...
    def setAnyPolicyInhibited(self, val: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setCertPathCheckers(self, checkers: java.util.List[PKIXCertPathChecker], /) -> None: ...
    def setCertStores(self, stores: java.util.List[CertStore], /) -> None: ...
    def setDate(self, date: java.util.Date, /) -> None: ...
    def setExplicitPolicyRequired(self, val: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setInitialPolicies(self, initialPolicies: java.util.Set[java.lang.String], /) -> None: ...
    def setPolicyMappingInhibited(self, val: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setPolicyQualifiersRejected(self, qualifiersRejected: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setRevocationEnabled(self, val: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setSigProvider(self, sigProvider: str | java.lang.String, /) -> None: ...
    def setTargetCertConstraints(self, selector: CertSelector, /) -> None: ...
    def setTrustAnchors(self, trustAnchors: java.util.Set[TrustAnchor], /) -> None: ...
    def toString(self) -> str: ...

class PKIXReason(java.lang.Enum[PKIXReason], CertPathValidatorException.Reason):
    INVALID_KEY_USAGE: typing.ClassVar[PKIXReason] = ...
    INVALID_NAME: typing.ClassVar[PKIXReason] = ...
    INVALID_POLICY: typing.ClassVar[PKIXReason] = ...
    NAME_CHAINING: typing.ClassVar[PKIXReason] = ...
    NOT_CA_CERT: typing.ClassVar[PKIXReason] = ...
    NO_TRUST_ANCHOR: typing.ClassVar[PKIXReason] = ...
    PATH_TOO_LONG: typing.ClassVar[PKIXReason] = ...
    UNRECOGNIZED_CRIT_EXT: typing.ClassVar[PKIXReason] = ...
    @staticmethod
    def valueOf(name: str | java.lang.String, /) -> PKIXReason: ...
    @staticmethod
    def values() -> java.chaquopy.JavaArray[PKIXReason]: ...

class PKIXRevocationChecker(PKIXCertPathChecker):
    def __init__(self) -> None: ...
    def clone(self) -> PKIXRevocationChecker: ...
    def getOcspExtensions(self) -> java.util.List[Extension]: ...
    def getOcspResponder(self) -> java.net.URI: ...
    def getOcspResponderCert(self) -> X509Certificate: ...
    def getOcspResponses(self) -> java.util.Map[X509Certificate, java.chaquopy.JavaArrayJByte]: ...
    def getOptions(self) -> java.util.Set[PKIXRevocationChecker.Option]: ...
    def getSoftFailExceptions(self) -> java.util.List[CertPathValidatorException]: ...
    def setOcspExtensions(self, extensions: java.util.List[Extension], /) -> None: ...
    def setOcspResponder(self, uri: java.net.URI, /) -> None: ...
    def setOcspResponderCert(self, cert: X509Certificate, /) -> None: ...
    def setOcspResponses(self, responses: java.util.Map[X509Certificate, java.chaquopy.JavaArrayJByte], /) -> None: ...
    def setOptions(self, options: java.util.Set[PKIXRevocationChecker.Option], /) -> None: ...

    class Option(java.lang.Enum[PKIXRevocationChecker.Option]):
        NO_FALLBACK: typing.ClassVar[PKIXRevocationChecker.Option] = ...
        ONLY_END_ENTITY: typing.ClassVar[PKIXRevocationChecker.Option] = ...
        PREFER_CRLS: typing.ClassVar[PKIXRevocationChecker.Option] = ...
        SOFT_FAIL: typing.ClassVar[PKIXRevocationChecker.Option] = ...
        @staticmethod
        def valueOf(name: str | java.lang.String, /) -> PKIXRevocationChecker.Option: ...
        @staticmethod
        def values() -> java.chaquopy.JavaArray[PKIXRevocationChecker.Option]: ...

class PolicyNode(java.lang.Object):
    def getChildren(self) -> java.util.Iterator[PolicyNode]: ...
    def getDepth(self) -> int: ...
    def getExpectedPolicies(self) -> java.util.Set[java.lang.String]: ...
    def getParent(self) -> PolicyNode: ...
    def getPolicyQualifiers(self) -> java.util.Set[PolicyQualifierInfo]: ...
    def getValidPolicy(self) -> str: ...
    def isCritical(self) -> bool: ...

class PolicyQualifierInfo(java.lang.Object):
    def __init__(self, encoded: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def getEncoded(self) -> java.chaquopy.JavaArrayJByte: ...
    def getPolicyQualifier(self) -> java.chaquopy.JavaArrayJByte: ...
    def getPolicyQualifierId(self) -> str: ...
    def toString(self) -> str: ...

class TrustAnchor(java.lang.Object):
    @typing.overload
    def __init__(self, trustedCert: X509Certificate, nameConstraints: java.chaquopy.JavaArrayJByte, /) -> None: ...
    @typing.overload
    def __init__(self, caName: str | java.lang.String, pubKey: java.security.PublicKey, nameConstraints: java.chaquopy.JavaArrayJByte, /) -> None: ...
    @typing.overload
    def __init__(self, caPrincipal: javax.security.auth.x500.X500Principal, pubKey: java.security.PublicKey, nameConstraints: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def getCA(self) -> javax.security.auth.x500.X500Principal: ...
    def getCAName(self) -> str: ...
    def getCAPublicKey(self) -> java.security.PublicKey: ...
    def getNameConstraints(self) -> java.chaquopy.JavaArrayJByte: ...
    def getTrustedCert(self) -> X509Certificate: ...
    def toString(self) -> str: ...

class URICertStoreParameters(CertStoreParameters):
    def __init__(self, uri: java.net.URI, /) -> None: ...
    def clone(self) -> URICertStoreParameters: ...
    def equals(self, p: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getURI(self) -> java.net.URI: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class X509CRL(CRL, X509Extension):
    def __init__(self) -> None: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getEncoded(self) -> java.chaquopy.JavaArrayJByte: ...
    def getIssuerDN(self) -> java.security.Principal: ...
    def getIssuerX500Principal(self) -> javax.security.auth.x500.X500Principal: ...
    def getNextUpdate(self) -> java.util.Date: ...
    @typing.overload
    def getRevokedCertificate(self, arg1: java.math.BigInteger, /) -> X509CRLEntry: ...
    @typing.overload
    def getRevokedCertificate(self, certificate: X509Certificate, /) -> X509CRLEntry: ...
    def getRevokedCertificates(self) -> java.util.Set[X509CRLEntry]: ...
    def getSigAlgName(self) -> str: ...
    def getSigAlgOID(self) -> str: ...
    def getSigAlgParams(self) -> java.chaquopy.JavaArrayJByte: ...
    def getSignature(self) -> java.chaquopy.JavaArrayJByte: ...
    def getTBSCertList(self) -> java.chaquopy.JavaArrayJByte: ...
    def getThisUpdate(self) -> java.util.Date: ...
    def getVersion(self) -> int: ...
    def hashCode(self) -> int: ...
    @typing.overload
    def verify(self, arg1: java.security.PublicKey, /) -> None: ...
    @typing.overload
    def verify(self, arg1: java.security.PublicKey, arg2: str | java.lang.String, /) -> None: ...
    @typing.overload
    def verify(self, key: java.security.PublicKey, sigProvider: java.security.Provider, /) -> None: ...

class X509CRLEntry(X509Extension):
    def __init__(self) -> None: ...
    def equals(self, other: java.lang.Object | int | bool | float | str, /) -> bool: ...
    def getCertificateIssuer(self) -> javax.security.auth.x500.X500Principal: ...
    def getEncoded(self) -> java.chaquopy.JavaArrayJByte: ...
    def getRevocationDate(self) -> java.util.Date: ...
    def getRevocationReason(self) -> CRLReason: ...
    def getSerialNumber(self) -> java.math.BigInteger: ...
    def hasExtensions(self) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class X509CRLSelector(CRLSelector):
    def __init__(self) -> None: ...
    def addIssuer(self, issuer: javax.security.auth.x500.X500Principal, /) -> None: ...
    @typing.overload
    def addIssuerName(self, name: str | java.lang.String, /) -> None: ...
    @typing.overload
    def addIssuerName(self, name: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getCertificateChecking(self) -> X509Certificate: ...
    def getDateAndTime(self) -> java.util.Date: ...
    def getIssuerNames(self) -> java.util.Collection[java.lang.Object]: ...
    def getIssuers(self) -> java.util.Collection[javax.security.auth.x500.X500Principal]: ...
    def getMaxCRL(self) -> java.math.BigInteger: ...
    def getMinCRL(self) -> java.math.BigInteger: ...
    def match(self, crl: CRL, /) -> bool: ...
    def setCertificateChecking(self, cert: X509Certificate, /) -> None: ...
    def setDateAndTime(self, dateAndTime: java.util.Date, /) -> None: ...
    def setIssuerNames(self, names: java.util.Collection[java.lang.Object], /) -> None: ...
    def setIssuers(self, issuers: java.util.Collection[javax.security.auth.x500.X500Principal], /) -> None: ...
    def setMaxCRLNumber(self, maxCRL: java.math.BigInteger, /) -> None: ...
    def setMinCRLNumber(self, minCRL: java.math.BigInteger, /) -> None: ...
    def toString(self) -> str: ...

class X509CertSelector(CertSelector):
    def __init__(self) -> None: ...
    @typing.overload
    def addPathToName(self, type: int | java.jint | java.lang.Integer, name: str | java.lang.String, /) -> None: ...
    @typing.overload
    def addPathToName(self, type: int | java.jint | java.lang.Integer, name: java.chaquopy.JavaArrayJByte, /) -> None: ...
    @typing.overload
    def addSubjectAlternativeName(self, type: int | java.jint | java.lang.Integer, name: str | java.lang.String, /) -> None: ...
    @typing.overload
    def addSubjectAlternativeName(self, type: int | java.jint | java.lang.Integer, name: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def clone(self) -> java.lang.Object: ...
    def getAuthorityKeyIdentifier(self) -> java.chaquopy.JavaArrayJByte: ...
    def getBasicConstraints(self) -> int: ...
    def getCertificate(self) -> X509Certificate: ...
    def getCertificateValid(self) -> java.util.Date: ...
    def getExtendedKeyUsage(self) -> java.util.Set[java.lang.String]: ...
    def getIssuer(self) -> javax.security.auth.x500.X500Principal: ...
    def getIssuerAsBytes(self) -> java.chaquopy.JavaArrayJByte: ...
    def getIssuerAsString(self) -> str: ...
    def getKeyUsage(self) -> java.chaquopy.JavaArrayJBoolean: ...
    def getMatchAllSubjectAltNames(self) -> bool: ...
    def getNameConstraints(self) -> java.chaquopy.JavaArrayJByte: ...
    def getPathToNames(self) -> java.util.Collection[java.util.List[java.lang.Object]]: ...
    def getPolicy(self) -> java.util.Set[java.lang.String]: ...
    def getPrivateKeyValid(self) -> java.util.Date: ...
    def getSerialNumber(self) -> java.math.BigInteger: ...
    def getSubject(self) -> javax.security.auth.x500.X500Principal: ...
    def getSubjectAlternativeNames(self) -> java.util.Collection[java.util.List[java.lang.Object]]: ...
    def getSubjectAsBytes(self) -> java.chaquopy.JavaArrayJByte: ...
    def getSubjectAsString(self) -> str: ...
    def getSubjectKeyIdentifier(self) -> java.chaquopy.JavaArrayJByte: ...
    def getSubjectPublicKey(self) -> java.security.PublicKey: ...
    def getSubjectPublicKeyAlgID(self) -> str: ...
    def match(self, cert: Certificate, /) -> bool: ...
    def setAuthorityKeyIdentifier(self, authorityKeyID: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def setBasicConstraints(self, minMaxPathLen: int | java.jint | java.lang.Integer, /) -> None: ...
    def setCertificate(self, cert: X509Certificate, /) -> None: ...
    def setCertificateValid(self, certValid: java.util.Date, /) -> None: ...
    def setExtendedKeyUsage(self, keyPurposeSet: java.util.Set[java.lang.String], /) -> None: ...
    @typing.overload
    def setIssuer(self, issuerDN: str | java.lang.String, /) -> None: ...
    @typing.overload
    def setIssuer(self, issuer: javax.security.auth.x500.X500Principal, /) -> None: ...
    @typing.overload
    def setIssuer(self, issuerDN: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def setKeyUsage(self, keyUsage: java.chaquopy.JavaArrayJBoolean, /) -> None: ...
    def setMatchAllSubjectAltNames(self, matchAllNames: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    def setNameConstraints(self, bytes: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def setPathToNames(self, names: java.util.Collection[java.util.List[java.lang.Object]], /) -> None: ...
    def setPolicy(self, certPolicySet: java.util.Set[java.lang.String], /) -> None: ...
    def setPrivateKeyValid(self, privateKeyValid: java.util.Date, /) -> None: ...
    def setSerialNumber(self, serial: java.math.BigInteger, /) -> None: ...
    @typing.overload
    def setSubject(self, subjectDN: str | java.lang.String, /) -> None: ...
    @typing.overload
    def setSubject(self, subject: javax.security.auth.x500.X500Principal, /) -> None: ...
    @typing.overload
    def setSubject(self, subjectDN: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def setSubjectAlternativeNames(self, names: java.util.Collection[java.util.List[java.lang.Object]], /) -> None: ...
    def setSubjectKeyIdentifier(self, subjectKeyID: java.chaquopy.JavaArrayJByte, /) -> None: ...
    @typing.overload
    def setSubjectPublicKey(self, key: java.security.PublicKey, /) -> None: ...
    @typing.overload
    def setSubjectPublicKey(self, key: java.chaquopy.JavaArrayJByte, /) -> None: ...
    def setSubjectPublicKeyAlgID(self, oid: str | java.lang.String, /) -> None: ...
    def toString(self) -> str: ...

class X509Certificate(Certificate, X509Extension):
    def __init__(self) -> None: ...
    @typing.overload
    def checkValidity(self) -> None: ...
    @typing.overload
    def checkValidity(self, arg1: java.util.Date, /) -> None: ...
    def getBasicConstraints(self) -> int: ...
    def getExtendedKeyUsage(self) -> java.util.List[java.lang.String]: ...
    def getIssuerAlternativeNames(self) -> java.util.Collection[java.util.List[java.lang.Object]]: ...
    def getIssuerDN(self) -> java.security.Principal: ...
    def getIssuerUniqueID(self) -> java.chaquopy.JavaArrayJBoolean: ...
    def getIssuerX500Principal(self) -> javax.security.auth.x500.X500Principal: ...
    def getKeyUsage(self) -> java.chaquopy.JavaArrayJBoolean: ...
    def getNotAfter(self) -> java.util.Date: ...
    def getNotBefore(self) -> java.util.Date: ...
    def getSerialNumber(self) -> java.math.BigInteger: ...
    def getSigAlgName(self) -> str: ...
    def getSigAlgOID(self) -> str: ...
    def getSigAlgParams(self) -> java.chaquopy.JavaArrayJByte: ...
    def getSignature(self) -> java.chaquopy.JavaArrayJByte: ...
    def getSubjectAlternativeNames(self) -> java.util.Collection[java.util.List[java.lang.Object]]: ...
    def getSubjectDN(self) -> java.security.Principal: ...
    def getSubjectUniqueID(self) -> java.chaquopy.JavaArrayJBoolean: ...
    def getSubjectX500Principal(self) -> javax.security.auth.x500.X500Principal: ...
    def getTBSCertificate(self) -> java.chaquopy.JavaArrayJByte: ...
    def getVersion(self) -> int: ...
    def verify(self, key: java.security.PublicKey, sigProvider: java.security.Provider, /) -> None: ...

class X509Extension(java.lang.Object):
    def getCriticalExtensionOIDs(self) -> java.util.Set[java.lang.String]: ...
    def getExtensionValue(self, arg1: str | java.lang.String, /) -> java.chaquopy.JavaArrayJByte: ...
    def getNonCriticalExtensionOIDs(self) -> java.util.Set[java.lang.String]: ...
    def hasUnsupportedCriticalExtension(self) -> bool: ...
