import typing

import java.chaquopy
import java.io
import java.lang
import java.math
import java.security
import java.util

class Certificate(java.lang.Object):
    def __init__(self) -> 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 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: ...

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

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

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

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: ...

class X509Certificate(Certificate):
    def __init__(self) -> None: ...
    @typing.overload
    def checkValidity(self) -> None: ...
    @typing.overload
    def checkValidity(self, arg1: java.util.Date, /) -> None: ...
    @typing.overload
    @staticmethod
    def getInstance(inStream: java.io.InputStream, /) -> X509Certificate: ...
    @typing.overload
    @staticmethod
    def getInstance(certData: java.chaquopy.JavaArrayJByte, /) -> X509Certificate: ...
    def getIssuerDN(self) -> java.security.Principal: ...
    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 getSubjectDN(self) -> java.security.Principal: ...
    def getVersion(self) -> int: ...
