a ‚oe ã@s:ddlmZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZmZddlmZddlmZdd lmZmZdd lmZdd lmZmZmZmZmZmZm Z m!Z!m"Z"dd l#m$Z$m%Z%dd l&m'Z'm(Z(m)Z)m*Z*ej+dddd�Z,dddœdd„Z-ddœdd„Z.Gdd„de/ƒZ0Gdd„de/ƒZ1Gdd„dej2d �Z3Gd!d"„d"ƒZ4Gd#d$„d$e3ƒZ5Gd%d&„d&e3ƒZ6Gd'd(„d(e3ƒZ7Gd)d*„d*e3ƒZ8Gd+d,„d,e3ƒZ9Gd-d.„d.ƒZ:Gd/d0„d0e3ƒZ;Gd1d2„d2e3ƒZGd7d8„d8ƒZ?Gd9d:„d:ej@ƒZAeAjBeAjCeAjDeAjEeAjFeAjGeAjHeAjId;œZJeAjBdeAjEd?eAjFd@eAjGdAeAjHdBeAjIdCiZKGdDdE„dEe3ƒZLGdFdG„dGe3ƒZMGdHdI„dIƒZNGdJdK„dKƒZOGdLdM„dMƒZPGdNdO„dOe3ƒZQGdPdQ„dQe3ƒZRGdRdS„dSe3ƒZSGdTdU„dUe3ƒZTGdVdW„dWej@ƒZUdXdY„eUDƒZVGdZd[„d[e3ƒZWGd\d]„d]e3ƒZXGd^d_„d_e3ƒZYGd`da„daejZe,ƒZ[Gdbdc„dcƒZ\Gddde„dee3ƒZ]Gdfdg„dge3ƒZ^Gdhdi„die3ƒZ_Gdjdk„dke3ƒZ`Gdldm„dme3ƒZaGdndo„doe3ƒZbGdpdq„dqe3ƒZcGdrds„dse3ƒZdGdtdu„due3ƒZeGdvdw„dwe3ƒZfGdxdy„dye3ƒZgGdzd{„d{e3ƒZhdS)|é)Ú annotationsN)Úutils)Úasn1)Úx509)Ú constant_timeÚ serialization)ÚEllipticCurvePublicKey)Ú RSAPublicKey)ÚCertificateIssuerPublicKeyTypesÚCertificatePublicKeyTypes)ÚSignedCertificateTimestamp) Ú DirectoryNameÚDNSNameÚ GeneralNameÚ IPAddressÚ OtherNameÚ RegisteredIDÚ RFC822NameÚUniformResourceIdentifierÚ_IPAddressTypes)ÚNameÚRelativeDistinguishedName)ÚCRLEntryExtensionOIDÚ ExtensionOIDÚObjectIdentifierÚOCSPExtensionOIDÚExtensionTypeVarÚ ExtensionTypeT)ÚboundÚ covariantr Úbytes©Ú public_keyÚreturncCslt|tƒr | tjjtjj¡}n>t|tƒr@| tjj tjj ¡}n| tjjtjj ¡}t   |¡}t |¡ ¡S©N)Ú isinstancer Ú public_bytesrZEncodingZDERZ PublicFormatZPKCS1rZX962ZUncompressedPointZSubjectPublicKeyInforZparse_spki_for_dataÚhashlibZsha1Údigest)r"ÚdataZ serialized©r*ú=C:\Program Files\Certbot\pkgs\cryptography\x509\extensions.pyÚ_key_identifier_from_public_key2s  þ þþ r,Ústr©Ú field_namecs4ddœ‡fdd„ }‡fdd„}‡fdd„}|||fS) NÚint©r#cstt|ˆƒƒSr$)ÚlenÚgetattr©Úselfr.r*r+Ú len_methodKsz*_make_sequence_methods..len_methodcstt|ˆƒƒSr$)Úiterr3r4r.r*r+Ú iter_methodNsz+_make_sequence_methods..iter_methodcst|ˆƒ|Sr$)r3)r5Úidxr.r*r+Úgetitem_methodQsz._make_sequence_methods..getitem_methodr*)r/r6r8r:r*r.r+Ú_make_sequence_methodsJs  r;cs&eZdZddddœ‡fdd„ Z‡ZS)ÚDuplicateExtensionr-rÚNone©ÚmsgÚoidr#cstƒ |¡||_dSr$©ÚsuperÚ__init__r@©r5r?r@©Ú __class__r*r+rCXs zDuplicateExtension.__init__©Ú__name__Ú __module__Ú __qualname__rCÚ __classcell__r*r*rEr+r<Wsr<cs&eZdZddddœ‡fdd„ Z‡ZS)ÚExtensionNotFoundr-rr=r>cstƒ |¡||_dSr$rArDrEr*r+rC^s zExtensionNotFound.__init__rGr*r*rEr+rL]srLc@s$eZdZUded<ddœdd„ZdS)rz!typing.ClassVar[ObjectIdentifier]r@r r1cCstd |¡ƒ‚dS)z7 Serializes the extension type to DER. z7public_bytes is not implemented for extension type {!r}N)ÚNotImplementedErrorÚformatr4r*r*r+r&fs ÿÿzExtensionType.public_bytesN)rHrIrJÚ__annotations__r&r*r*r*r+rcs )Ú metaclassc@sXeZdZdddœdd„Zdddœd d „Zd d d œdd„Zedƒ\ZZZ ddœdd„Z dS)Ú Extensionsz)typing.Iterable[Extension[ExtensionType]]r=)Ú extensionsr#cCst|ƒ|_dSr$)ÚlistÚ _extensions)r5rRr*r*r+rCrszExtensions.__init__rzExtension[ExtensionType])r@r#cCs2|D]}|j|kr|Sqtd|›d�|ƒ‚dS)NúNo ú extension was found)r@rL)r5r@Úextr*r*r+Úget_extension_for_oidws  z Extensions.get_extension_for_oidztyping.Type[ExtensionTypeVar]zExtension[ExtensionTypeVar])Úextclassr#cCsF|turtdƒ‚|D]}t|j|ƒr|Sqtd|›d�|jƒ‚dS)Nz|UnrecognizedExtension can't be used with get_extension_for_class because more than one instance of the class may be present.rUrV)ÚUnrecognizedExtensionÚ TypeErrorr%ÚvaluerLr@)r5rYrWr*r*r+Úget_extension_for_class€sÿ  ÿz"Extensions.get_extension_for_classrTr-r1cCsd|j›d�S)Nz )rTr4r*r*r+Ú__repr__”szExtensions.__repr__N) rHrIrJrCrXr]r;Ú__len__Ú__iter__Ú __getitem__r_r*r*r*r+rQqs  rQc@sneZdZejZdddœdd„Zdddœd d „Zdd œd d „Zdd œdd„Z e dd œdd„ƒZ dd œdd„Z dS)Ú CRLNumberr0r=©Ú crl_numberr#cCst|tƒstdƒ‚||_dS©Nzcrl_number must be an integer©r%r0r[Ú _crl_number©r5rer*r*r+rC›s zCRLNumber.__init__ÚobjectÚbool©Úotherr#cCst|tƒstS|j|jkSr$)r%rcÚNotImplementedre©r5rmr*r*r+Ú__eq__¡s zCRLNumber.__eq__r1cCs t|jƒSr$©Úhashrer4r*r*r+Ú__hash__§szCRLNumber.__hash__r-cCsd|j›d�S)Nz Èsz2AuthorityKeyIdentifier.__init__..z;authority_cert_issuer must be a list of GeneralName objectsz/authority_cert_serial_number must be an integer) Ú ValueErrorrSÚallr[r%r0Ú_key_identifierÚ_authority_cert_issuerÚ_authority_cert_serial_number)r5r|r}r~r*r*r+rC¸s*ÿÿÿÿ ÿzAuthorityKeyIdentifier.__init__r r!cCst|ƒ}||ddd�S©N)r|r}r~©r,)Úclsr"r(r*r*r+Úfrom_issuer_public_keyÞs ýz-AuthorityKeyIdentifier.from_issuer_public_keyÚSubjectKeyIdentifier)Úskir#cCs||jddd�Sr‰©r()r‹rŽr*r*r+Ú"from_issuer_subject_key_identifierés ýz9AuthorityKeyIdentifier.from_issuer_subject_key_identifierr-r1cCs d |¡S)Nz­©rNr4r*r*r+r_ósýÿzAuthorityKeyIdentifier.__repr__rjrkrlcCs2t|tƒstS|j|jko0|j|jko0|j|jkSr$)r%ryrnr|r}r~ror*r*r+rpûs   ÿÿýzAuthorityKeyIdentifier.__eq__r0cCs,|jdurd}n t|jƒ}t|j||jfƒSr$)r}Útuplerrr|r~)r5Zacir*r*r+rss    ÿzAuthorityKeyIdentifier.__hash__cCs|jSr$)r†r4r*r*r+r|sz%AuthorityKeyIdentifier.key_identifierú)typing.Optional[typing.List[GeneralName]]cCs|jSr$)r‡r4r*r*r+r}sz,AuthorityKeyIdentifier.authority_cert_issuercCs|jSr$)rˆr4r*r*r+r~sz3AuthorityKeyIdentifier.authority_cert_serial_numberr cCs t |¡Sr$rvr4r*r*r+r&sz#AuthorityKeyIdentifier.public_bytesN)rHrIrJrZAUTHORITY_KEY_IDENTIFIERr@rCÚ classmethodrŒr�r_rprsrxr|r}r~r&r*r*r*r+ryµs &    ryc@s”eZdZejZdddœdd„Zedddœdd „ƒZe dd œd d „ƒZ e dd œd d„ƒZ dd œdd„Z dddœdd„Z dd œdd„Zdd œdd„ZdS)r�r r=)r(r#cCs ||_dSr$©Z_digest)r5r(r*r*r+rC$szSubjectKeyIdentifier.__init__r r!cCs |t|ƒƒSr$rŠ)r‹r"r*r*r+Úfrom_public_key'sz$SubjectKeyIdentifier.from_public_keyr1cCs|jSr$r•r4r*r*r+r(-szSubjectKeyIdentifier.digestcCs|jSr$r•r4r*r*r+r|1sz#SubjectKeyIdentifier.key_identifierr-cCsd|j›d�S)NzszSubjectKeyIdentifier.__hash__cCs t |¡Sr$rvr4r*r*r+r&Asz!SubjectKeyIdentifier.public_bytesN)rHrIrJrZSUBJECT_KEY_IDENTIFIERr@rCr”r–rxr(r|r_rprsr&r*r*r*r+r�!sr�c@sjeZdZejZdddœdd„Zedƒ\ZZ Z ddœd d „Z d d d œdd„Z ddœdd„Z ddœdd„ZdS)ÚAuthorityInformationAccessú"typing.Iterable[AccessDescription]r=©Ú descriptionsr#cCs,t|ƒ}tdd„|Dƒƒs"tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$©r%ÚAccessDescriptionr€r*r*r+rƒLóz6AuthorityInformationAccess.__init__..ú@Every item in the descriptions list must be an AccessDescription©rSr…r[Ú _descriptions©r5ršr*r*r+rCHs ÿz#AuthorityInformationAccess.__init__r r-r1cCsd|j›d�S)Nz.ržrŸr¡r*r*r+rCis ÿz!SubjectInformationAccess.__init__r r-r1cCsd|j›d�S)Nzr‘r4r*r*r+r_”sÿÿzAccessDescription.__repr__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rœrnr¥r¦ror*r*r+rpšs    þzAccessDescription.__eq__r0cCst|j|jfƒSr$)rrr¥r¦r4r*r*r+rs£szAccessDescription.__hash__cCs|jSr$)r§r4r*r*r+r¥¦szAccessDescription.access_methodcCs|jSr$)r¨r4r*r*r+r¦ªsz!AccessDescription.access_locationN) rHrIrJrCr_rprsrxr¥r¦r*r*r*r+rœ‡s  rœc@s‚eZdZejZddddœdd„Zeddœdd „ƒZeddœd d „ƒZ d dœd d„Z dddœdd„Z ddœdd„Z ddœdd„Z dS)ÚBasicConstraintsrkr{r=)ÚcaÚ path_lengthr#cCsXt|tƒstdƒ‚|dur&|s&tdƒ‚|durHt|tƒr@|dkrHtdƒ‚||_||_dS)Nzca must be a boolean valuez)path_length must be None when ca is Falserz2path_length must be a non-negative integer or None)r%rkr[r„r0Ú_caÚ _path_length)r5rªr«r*r*r+rC²s  ÿÿÿzBasicConstraints.__init__r1cCs|jSr$)r¬r4r*r*r+rªÃszBasicConstraints.cacCs|jSr$)r­r4r*r*r+r«ÇszBasicConstraints.path_lengthr-cCs d |¡S)Nz:r‘r4r*r*r+r_ËsÿþzBasicConstraints.__repr__rjrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%r©rnrªr«ror*r*r+rpÐs zBasicConstraints.__eq__r0cCst|j|jfƒSr$)rrrªr«r4r*r*r+rsÖszBasicConstraints.__hash__r cCs t |¡Sr$rvr4r*r*r+r&ÙszBasicConstraints.public_bytesN)rHrIrJrZBASIC_CONSTRAINTSr@rCrxrªr«r_rprsr&r*r*r*r+r©¯sr©c@sneZdZejZdddœdd„Zeddœdd„ƒZd d d œd d „Z ddœdd„Z ddœdd„Z ddœdd„Z dS)ÚDeltaCRLIndicatorr0r=rdcCst|tƒstdƒ‚||_dSrfrgrir*r*r+rCàs zDeltaCRLIndicator.__init__r1cCs|jSr$rur4r*r*r+reæszDeltaCRLIndicator.crl_numberrjrkrlcCst|tƒstS|j|jkSr$)r%r®rnreror*r*r+rpês zDeltaCRLIndicator.__eq__cCs t|jƒSr$rqr4r*r*r+rsðszDeltaCRLIndicator.__hash__r-cCsd|j›d�S)Nz.ú?distribution_points must be a list of DistributionPoint objects©rSr…r[Ú_distribution_points©r5r²r*r*r+rCýsÿÿzCRLDistributionPoints.__init__r·r-r1cCsd|j›d�S)Nz.rµr¶r¸r*r*r+rC"sÿÿzFreshestCRL.__init__r·r-r1cCsd|j›d�S)Nz .z/full_name must be a list of GeneralName objectsz1relative_name must be a RelativeDistinguishedNamecss|]}t|tƒVqdSr$rr€r*r*r+rƒfr�z2crl_issuer must be None or a list of general namescss|]}t|tƒVqdSr$©r%Ú ReasonFlagsr€r*r*r+rƒmr�z0reasons must be None or frozenset of ReasonFlagszLunspecified and remove_from_crl are not valid reasons in a DistributionPoint)r„rSr…r[r%rÚ frozensetrÃÚ unspecifiedÚremove_from_crlÚ _full_nameÚ_relative_nameÚ_reasonsÚ _crl_issuer)r5r¾r¿rÀrÁr*r*r+rCEsVÿ ÿÿ ÿÿÿþÿþÿzDistributionPoint.__init__r-r1cCs d |¡S)Nz}r‘r4r*r*r+r_sþÿzDistributionPoint.__repr__rjrkrlcCs>t|tƒstS|j|jko<|j|jko<|j|jko<|j|jkSr$)r%r´rnr¾r¿rÀrÁror*r*r+rp†s   ÿ þ üzDistributionPoint.__eq__r0cCsH|jdurt|jƒ}nd}|jdur0t|jƒ}nd}t||j|j|fƒSr$)r¾r’rÁrrr¿rÀ)r5ÚfnrÁr*r*r+rs‘s ÿ þzDistributionPoint.__hash__r“cCs|jSr$©rÇr4r*r*r+r¾¢szDistributionPoint.full_namecCs|jSr$©rÈr4r*r*r+r¿¦szDistributionPoint.relative_namecCs|jSr$)rÉr4r*r*r+rÀªszDistributionPoint.reasonscCs|jSr$)rÊr4r*r*r+rÁ®szDistributionPoint.crl_issuerN) rHrIrJrCr_rprsrxr¾r¿rÀrÁr*r*r*r+r´Ds: r´c@s4eZdZdZdZdZdZdZdZdZ dZ d Z d Z d S) rÃrÅZ keyCompromiseZ cACompromiseZaffiliationChangedÚ supersededZcessationOfOperationZcertificateHoldZprivilegeWithdrawnZ aACompromiseZ removeFromCRLN) rHrIrJrÅÚkey_compromiseÚ ca_compromiseÚaffiliation_changedrÎÚcessation_of_operationÚcertificate_holdÚprivilege_withdrawnÚ aa_compromiserÆr*r*r*r+rósrÃ)éééééééérÖr×rØrÙrÚrÛrÜrÝc@s‚eZdZejZddddœdd„Zddœdd „Zd d d œd d„Zddœdd„Z e ddœdd„ƒZ e ddœdd„ƒZ ddœdd„Z dS)ÚPolicyConstraintsr{r=)Úrequire_explicit_policyÚinhibit_policy_mappingr#cCs\|durt|tƒstdƒ‚|dur4t|tƒs4tdƒ‚|durL|durLtdƒ‚||_||_dS)Nz>require_explicit_policy must be a non-negative integer or Nonez=inhibit_policy_mapping must be a non-negative integer or NonezSAt least one of require_explicit_policy and inhibit_policy_mapping must not be None)r%r0r[r„Ú_require_explicit_policyÚ_inhibit_policy_mapping)r5rßràr*r*r+rCæs$ ÿÿ ÿÿÿzPolicyConstraints.__init__r-r1cCs d |¡S)Nz{r‘r4r*r*r+r_sþÿzPolicyConstraints.__repr__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rÞrnrßràror*r*r+rp s    þzPolicyConstraints.__eq__r0cCst|j|jfƒSr$)rrrßràr4r*r*r+rss ÿzPolicyConstraints.__hash__cCs|jSr$)rár4r*r*r+rßsz)PolicyConstraints.require_explicit_policycCs|jSr$)râr4r*r*r+ràsz(PolicyConstraints.inhibit_policy_mappingr cCs t |¡Sr$rvr4r*r*r+r& szPolicyConstraints.public_bytesN)rHrIrJrZPOLICY_CONSTRAINTSr@rCr_rprsrxrßràr&r*r*r*r+rÞãs rÞc@sjeZdZejZdddœdd„Zedƒ\ZZ Z ddœd d „Z d d d œdd„Z ddœdd„Z ddœdd„ZdS)ÚCertificatePoliciesz"typing.Iterable[PolicyInformation]r=)Úpoliciesr#cCs,t|ƒ}tdd„|Dƒƒs"tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$)r%ÚPolicyInformationr€r*r*r+rƒ)r�z/CertificatePolicies.__init__..z;Every item in the policies list must be a PolicyInformation)rSr…r[Ú _policies)r5rär*r*r+rC's ÿzCertificatePolicies.__init__rær-r1cCsd|j›d�S)Nz.zMpolicy_qualifiers must be a list of strings and/or UserNotice objects or None)r%rr[Ú_policy_identifierrSr…Ú_policy_qualifiers)r5rçrèr*r*r+rCDs ÿÿzPolicyInformation.__init__r-r1cCs d |¡S)Nzer‘r4r*r*r+r_\sÿÿzPolicyInformation.__repr__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rårnrçrèror*r*r+rpbs    þzPolicyInformation.__eq__r0cCs(|jdurt|jƒ}nd}t|j|fƒSr$)rèr’rrrç)r5Zpqr*r*r+rsks  þzPolicyInformation.__hash__cCs|jSr$)rêr4r*r*r+rçusz#PolicyInformation.policy_identifierz;typing.Optional[typing.List[typing.Union[str, UserNotice]]]cCs|jSr$)rër4r*r*r+rèysz#PolicyInformation.policy_qualifiersN) rHrIrJrCr_rprsrxrçrèr*r*r*r+råCs  råc@sneZdZddddœdd„Zddœd d „Zd d d œdd„Zddœdd„Zeddœdd„ƒZeddœdd„ƒZ dS)réz typing.Optional[NoticeReference]útyping.Optional[str]r=)Únotice_referenceÚ explicit_textr#cCs&|rt|tƒstdƒ‚||_||_dS)Nz2notice_reference must be None or a NoticeReference)r%ÚNoticeReferencer[Ú_notice_referenceÚ_explicit_text)r5rírîr*r*r+rC�sÿÿzUserNotice.__init__r-r1cCs d |¡S)NzVr‘r4r*r*r+r_�sÿÿzUserNotice.__repr__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rérnrírîror*r*r+rp–s    þzUserNotice.__eq__r0cCst|j|jfƒSr$)rrrírîr4r*r*r+rsŸszUserNotice.__hash__cCs|jSr$)rðr4r*r*r+rí¢szUserNotice.notice_referencecCs|jSr$)rñr4r*r*r+rî¦szUserNotice.explicit_textN) rHrIrJrCr_rprsrxrírîr*r*r*r+ré€s réc@sneZdZddddœdd„Zddœd d „Zd d d œdd„Zddœdd„Zeddœdd„ƒZeddœdd„ƒZ dS)rïrìztyping.Iterable[int]r=)Ú organizationÚnotice_numbersr#cCs2||_t|ƒ}tdd„|Dƒƒs(tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$)r%r0r€r*r*r+rƒ³r�z+NoticeReference.__init__..z)notice_numbers must be a list of integers)Ú _organizationrSr…r[Ú_notice_numbers)r5ròrór*r*r+rC¬s zNoticeReference.__init__r-r1cCs d |¡S)NzUr‘r4r*r*r+r_¸sÿÿzNoticeReference.__repr__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rïrnròróror*r*r+rp¾s    þzNoticeReference.__eq__r0cCst|jt|jƒfƒSr$)rrròr’rór4r*r*r+rsÇszNoticeReference.__hash__cCs|jSr$)rôr4r*r*r+ròÊszNoticeReference.organizationztyping.List[int]cCs|jSr$)rõr4r*r*r+róÎszNoticeReference.notice_numbersN) rHrIrJrCr_rprsrxròrór*r*r*r+rï«s  rïc@sjeZdZejZdddœdd„Zedƒ\ZZ Z ddœd d „Z d d d œdd„Z ddœdd„Z ddœdd„ZdS)ÚExtendedKeyUsageú!typing.Iterable[ObjectIdentifier]r=)Úusagesr#cCs,t|ƒ}tdd„|Dƒƒs"tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$©r%rr€r*r*r+rƒØr�z,ExtendedKeyUsage.__init__..z9Every item in the usages list must be an ObjectIdentifier)rSr…r[Ú_usages)r5rør*r*r+rCÖs ÿzExtendedKeyUsage.__init__rúr-r1cCsd|j›d�S)Nzr*r4r*r*r+r_ýszOCSPNoCheck.__repr__r cCs t |¡Sr$rvr4r*r*r+r&szOCSPNoCheck.public_bytesN) rHrIrJrZ OCSP_NO_CHECKr@rprsr_r&r*r*r*r+rûñs rûc@sLeZdZejZdddœdd„Zddœdd „Zd dœd d „Zd dœdd„Z dS)Ú PrecertPoisonrjrkrlcCst|tƒstSdSrü)r%rýrnror*r*r+rps zPrecertPoison.__eq__r0r1cCsttƒSr$)rrrýr4r*r*r+rs szPrecertPoison.__hash__r-cCsdS)Nzr*r4r*r*r+r_szPrecertPoison.__repr__r cCs t |¡Sr$rvr4r*r*r+r&szPrecertPoison.public_bytesN) rHrIrJrZPRECERT_POISONr@rprsr_r&r*r*r*r+rýs rýc@sjeZdZejZdddœdd„Zedƒ\ZZ Z ddœd d „Z d d d œdd„Z ddœdd„Z ddœdd„ZdS)Ú TLSFeatureztyping.Iterable[TLSFeatureType]r=)Úfeaturesr#cCs8t|ƒ}tdd„|Dƒƒr&t|ƒdkr.tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$)r%ÚTLSFeatureTyper€r*r*r+rƒr�z&TLSFeature.__init__..rz@features must be a list of elements from the TLSFeatureType enum)rSr…r2r[Ú _features)r5rÿr*r*r+rCsÿ þÿzTLSFeature.__init__rr-r1cCsd|j›d�S)NzDr�rc@sneZdZejZdddœdd„Zddœdd „Zd d d œd d„Zddœdd„Z e ddœdd„ƒZ ddœdd„Z dS)ÚInhibitAnyPolicyr0r=)Ú skip_certsr#cCs,t|tƒstdƒ‚|dkr"tdƒ‚||_dS)Nzskip_certs must be an integerrz)skip_certs must be a non-negative integer)r%r0r[r„Ú _skip_certs)r5rr*r*r+rCJs  zInhibitAnyPolicy.__init__r-r1cCsd|j›d�S)Nz)rrr„rN)r5rrr*r*r+r_´s   ÿøzKeyUsage.__repr__rjrlcCszt|tƒstS|j|jkox|j|jkox|j|jkox|j|jkox|j|jkox|j|jkox|j |j kox|j |j kox|j |j kSr$) r%rrnr r r r r rrrrror*r*r+rpÉs&   ÿ þ ý ü û ú ù ÷zKeyUsage.__eq__r0c Cs,t|j|j|j|j|j|j|j|j|j f ƒSr$) rrr r r r r rrrrr4r*r*r+rsÙs÷ÿzKeyUsage.__hash__r cCs t |¡Sr$rvr4r*r*r+r&èszKeyUsage.public_bytesN)rHrIrJrZ KEY_USAGEr@rCrxr r r r r rrrrr_rprsr&r*r*r*r+rgs0 rc@s²eZdZejZddddœdd„Zdddœd d „Zd dd œd d„Zd dd œdd„Z d dd œdd„Z ddœdd„Z ddœdd„Z e ddœdd„ƒZe ddœdd„ƒZddœd d!„Zd"S)#ÚNameConstraintsrzr=)Úpermitted_subtreesÚexcluded_subtreesr#cCs¨|dur@t|ƒ}|stdƒ‚tdd„|Dƒƒs6tdƒ‚| |¡|dur€t|ƒ}|s\tdƒ‚tdd„|Dƒƒsvtdƒ‚| |¡|dur˜|dur˜tdƒ‚||_||_dS) Nz3permitted_subtrees must be a non-empty list or Nonecss|]}t|tƒVqdSr$rr€r*r*r+rƒúr�z+NameConstraints.__init__..z@permitted_subtrees must be a list of GeneralName objects or Nonez2excluded_subtrees must be a non-empty list or Nonecss|]}t|tƒVqdSr$rr€r*r*r+rƒr�z?excluded_subtrees must be a list of GeneralName objects or NonezIAt least one of permitted_subtrees and excluded_subtrees must not be None)rSr„r…r[Ú_validate_treeÚ_permitted_subtreesÚ_excluded_subtrees)r5rrr*r*r+rCïs8ÿÿ ÿÿ ÿzNameConstraints.__init__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rrnrrror*r*r+rps    þzNameConstraints.__eq__útyping.Iterable[GeneralName])Útreer#cCs| |¡| |¡dSr$)Ú_validate_ip_nameÚ_validate_dns_name©r5r"r*r*r+r"s zNameConstraints._validate_treecCstdd„|Dƒƒrtdƒ‚dS)Ncss.|]&}t|tƒo$t|jtjtjfƒ VqdSr$)r%rr\Ú ipaddressZ IPv4NetworkZ IPv6Network©r�Únamer*r*r+rƒ's ü ÿz4NameConstraints._validate_ip_name..zGIPAddress name constraints must be an IPv4Network or IPv6Network object)Úanyr[r%r*r*r+r#&s ûÿz!NameConstraints._validate_ip_namecCstdd„|Dƒƒrtdƒ‚dS)Ncss"|]}t|tƒod|jvVqdS)Ú*N)r%rr\r'r*r*r+rƒ4sz5NameConstraints._validate_dns_name..zDDNSName name constraints must not contain the '*' wildcard character)r)r„r%r*r*r+r$3s ÿÿz"NameConstraints._validate_dns_namer-r1cCs d |¡S)Nzer‘r4r*r*r+r_<sÿÿzNameConstraints.__repr__r0cCs@|jdurt|jƒ}nd}|jdur0t|jƒ}nd}t||fƒSr$)rr’rrr)r5ZpsÚesr*r*r+rsBs ÿ ÿzNameConstraints.__hash__r“cCs|jSr$)rr4r*r*r+rSsz"NameConstraints.permitted_subtreescCs|jSr$)r r4r*r*r+rYsz!NameConstraints.excluded_subtreesr cCs t |¡Sr$rvr4r*r*r+r&_szNameConstraints.public_bytesN)rHrIrJrZNAME_CONSTRAINTSr@rCrprr#r$r_rsrxrrr&r*r*r*r+rìs*   rc@s‚eZdZdddddœdd„Zeddœd d „ƒZeddœd d „ƒZeddœd d„ƒZddœdd„Zdddœdd„Z ddœdd„Z dS)Ú Extensionrrkrr=)r@Úcriticalr\r#cCs:t|tƒstdƒ‚t|tƒs$tdƒ‚||_||_||_dS)Nz2oid argument must be an ObjectIdentifier instance.z critical must be a boolean value)r%rr[rkÚ_oidÚ _criticalÚ_value)r5r@r-r\r*r*r+rCds ÿ zExtension.__init__r1cCs|jSr$©r.r4r*r*r+r@ssz Extension.oidcCs|jSr$)r/r4r*r*r+r-wszExtension.criticalcCs|jSr$©r0r4r*r*r+r\{szExtension.valuer-cCs d |¡S)Nz@r‘r4r*r*r+r_sÿýzExtension.__repr__rjrlcCs2t|tƒstS|j|jko0|j|jko0|j|jkSr$)r%r,rnr@r-r\ror*r*r+rp…s   ÿ ýzExtension.__eq__r0cCst|j|j|jfƒSr$)rrr@r-r\r4r*r*r+rs�szExtension.__hash__N) rHrIrJrCrxr@r-r\r_rprsr*r*r*r+r,cs r,c@sÔeZdZdddœdd„Zedƒ\ZZZej ddd œd d „ƒZ ej d d d œdd „ƒZ ej ddd œdd „ƒZ ej ddd œdd „ƒZ ej ddd œdd „ƒZ ddd œdd „Z ddœdd„Z dd d!œd"d#„Z d$dœd%d&„Z d'S)(Ú GeneralNamesr!r=©Ú general_namesr#cCs,t|ƒ}tdd„|Dƒƒs"tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$rr€r*r*r+rƒ–r�z(GeneralNames.__init__..z^Every item in the general_names list must be an object conforming to the GeneralName interface)rSr…r[Ú_general_names©r5r5r*r*r+rC”s ÿzGeneralNames.__init__r6úctyping.Union[typing.Type[DNSName], typing.Type[UniformResourceIdentifier], typing.Type[RFC822Name]]útyping.List[str]©Útyper#cCsdSr$r*©r5r;r*r*r+Úget_values_for_type s z GeneralNames.get_values_for_typeútyping.Type[DirectoryName]útyping.List[Name]cCsdSr$r*r<r*r*r+r=«sútyping.Type[RegisteredID]útyping.List[ObjectIdentifier]cCsdSr$r*r<r*r*r+r=²sútyping.Type[IPAddress]útyping.List[_IPAddressTypes]cCsdSr$r*r<r*r*r+r=¹sútyping.Type[OtherName]útyping.List[OtherName]cCsdSr$r*r<r*r*r+r=¿súÊtyping.Union[typing.Type[DNSName], typing.Type[DirectoryName], typing.Type[IPAddress], typing.Type[OtherName], typing.Type[RFC822Name], typing.Type[RegisteredID], typing.Type[UniformResourceIdentifier]]ú†typing.Union[typing.List[_IPAddressTypes], typing.List[str], typing.List[OtherName], typing.List[Name], typing.List[ObjectIdentifier]]cs0‡fdd„|Dƒ}ˆtkr(dd„|DƒSt|ƒS)Nc3s|]}t|ˆƒr|VqdSr$)r%©r�Úi©r;r*r+rƒÚr�z3GeneralNames.get_values_for_type..cSsg|] }|j‘qSr*rrHr*r*r+Ú Ür�z4GeneralNames.get_values_for_type..)rrS)r5r;Zobjsr*rJr+r=Åsr-r1cCsd|j›d�S)Nzr?cCsdSr$r*r<r*r*r+r=ÿsr@rAcCsdSr$r*r<r*r*r+r=srBrCcCsdSr$r*r<r*r*r+r= srDrEcCsdSr$r*r<r*r*r+r=srFrGcCs |j |¡Sr$©r6r=r<r*r*r+r=sr-r1cCsd|j›d�S)Nzr?cCsdSr$r*r<r*r*r+r=Psr@rAcCsdSr$r*r<r*r*r+r=WsrBrCcCsdSr$r*r<r*r*r+r=^srDrEcCsdSr$r*r<r*r*r+r=dsrFrGcCs |j |¡Sr$rQr<r*r*r+r=jsr-r1cCsd|j›d�S)Nzr?cCsdSr$r*r<r*r*r+r=¡sr@rAcCsdSr$r*r<r*r*r+r=¨srBrCcCsdSr$r*r<r*r*r+r=¯srDrEcCsdSr$r*r<r*r*r+r=µsrFrGcCs |j |¡Sr$rQr<r*r*r+r=»sr-r1cCsd|j›d�S)Nz)rNr\r4r*r*r+r_sÿzInvalidityDate.__repr__rjrkrlcCst|tƒstS|j|jkSr$)r%rYrnrZror*r*r+rp s zInvalidityDate.__eq__r0cCs t|jƒSr$)rrrZr4r*r*r+rsszInvalidityDate.__hash__cCs|jSr$)r\r4r*r*r+rZszInvalidityDate.invalidity_dater cCs t |¡Sr$rvr4r*r*r+r&szInvalidityDate.public_bytesN) rHrIrJrZINVALIDITY_DATEr@rCr_rprsrxrZr&r*r*r*r+rYüsrYc@sjeZdZejZdddœdd„Zedƒ\ZZ Z ddœd d „Z d dœd d „Z dddœdd„Z ddœdd„ZdS)Ú)PrecertificateSignedCertificateTimestampsú+typing.Iterable[SignedCertificateTimestamp]r=©Úsigned_certificate_timestampsr#cCs,t|ƒ}tdd„|Dƒƒs"tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$©r%r ©r�Zsctr*r*r+rƒ%sÿzEPrecertificateSignedCertificateTimestamps.__init__..úYEvery item in the signed_certificate_timestamps list must be a SignedCertificateTimestamp©rSr…r[Ú_signed_certificate_timestamps©r5r`r*r*r+rCsþÿz2PrecertificateSignedCertificateTimestamps.__init__rer-r1cCsd t|ƒ¡S)Nz/)rNrSr4r*r*r+r_3sÿz2PrecertificateSignedCertificateTimestamps.__repr__r0cCstt|jƒƒSr$©rrr’rer4r*r*r+rs8sz2PrecertificateSignedCertificateTimestamps.__hash__rjrkrlcCst|tƒstS|j|jkSr$)r%r]rnreror*r*r+rp;s  ÿÿz0PrecertificateSignedCertificateTimestamps.__eq__r cCs t |¡Sr$rvr4r*r*r+r&Dsz6PrecertificateSignedCertificateTimestamps.public_bytesN)rHrIrJrZ%PRECERT_SIGNED_CERTIFICATE_TIMESTAMPSr@rCr;r`rarbr_rsrpr&r*r*r*r+r]sÿ  r]c@sjeZdZejZdddœdd„Zedƒ\ZZ Z ddœd d „Z d dœd d „Z dddœdd„Z ddœdd„ZdS)ÚSignedCertificateTimestampsr^r=r_cCs,t|ƒ}tdd„|Dƒƒs"tdƒ‚||_dS)Ncss|]}t|tƒVqdSr$rarbr*r*r+rƒRsÿz7SignedCertificateTimestamps.__init__..rcrdrfr*r*r+rCKsþÿz$SignedCertificateTimestamps.__init__rer-r1cCsdt|ƒ›d�S)Nz.z'All responses must be ObjectIdentifiers)rSr)r[Ú _responses)r5rmr*r*r+rC“sz OCSPAcceptableResponses.__init__rjrkrlcCst|tƒstS|j|jkSr$)r%rlrnroror*r*r+rpšs zOCSPAcceptableResponses.__eq__r0r1cCstt|jƒƒSr$)rrr’ror4r*r*r+rs sz OCSPAcceptableResponses.__hash__r-cCsd|j›d�S)Nz#.z:only_some_reasons must be None or frozenset of ReasonFlagszTunspecified and remove_from_crl are not valid reasons in an IssuingDistributionPointzuonly_contains_user_certs, only_contains_ca_certs, indirect_crl and only_contains_attribute_certs must all be boolean.cSsg|] }|r|‘qSr*r*r€r*r*r+rKár�z5IssuingDistributionPoint.__init__..rÖz‹Only one of the following can be set to True: only_contains_user_certs, only_contains_ca_certs, indirect_crl, only_contains_attribute_certszàCannot create empty extension: if only_contains_user_certs, only_contains_ca_certs, indirect_crl, and only_contains_attribute_certs are all False, then either full_name, relative_name, or only_some_reasons must have a value.)rSr%rÄr…r[rÃrÅrÆr„rkr2r)Ú_only_contains_user_certsÚ_only_contains_ca_certsÚ _indirect_crlÚ_only_contains_attribute_certsÚ_only_some_reasonsrÇrÈ) r5r¾r¿rqrrrsrtruZcrl_constraintsr*r*r+rC°st ÿþÿÿþÿÿþýüÿüÿùÿ ÿz!IssuingDistributionPoint.__init__r-r1cCs d |¡S)NaGr‘r4r*r*r+r_sùÿz!IssuingDistributionPoint.__repr__rjrlcCsbt|tƒstS|j|jko`|j|jko`|j|jko`|j|jko`|j|jko`|j|jko`|j |j kSr$) r%rprnr¾r¿rqrrrsrtruror*r*r+rps"   ÿ þ ý ü ûÿùzIssuingDistributionPoint.__eq__r0cCs$t|j|j|j|j|j|j|jfƒSr$)rrr¾r¿rqrrrsrtrur4r*r*r+rssùÿz!IssuingDistributionPoint.__hash__r“cCs|jSr$rÌr4r*r*r+r¾+sz"IssuingDistributionPoint.full_namecCs|jSr$rÍr4r*r*r+r¿/sz&IssuingDistributionPoint.relative_namecCs|jSr$)rvr4r*r*r+rq3sz1IssuingDistributionPoint.only_contains_user_certscCs|jSr$)rwr4r*r*r+rr7sz/IssuingDistributionPoint.only_contains_ca_certscCs|jSr$)rzr4r*r*r+rs;sz*IssuingDistributionPoint.only_some_reasonscCs|jSr$)rxr4r*r*r+rtAsz%IssuingDistributionPoint.indirect_crlcCs|jSr$)ryr4r*r*r+ruEsz6IssuingDistributionPoint.only_contains_attribute_certsr cCs t |¡Sr$rvr4r*r*r+r&Isz%IssuingDistributionPoint.public_bytesN)rHrIrJrZISSUING_DISTRIBUTION_POINTr@rCr_rprsrxr¾r¿rqrrrsrtrur&r*r*r*r+rp­s(S  rpc@s–eZdZejZdddddœdd„Zeddœdd „ƒZeddœd d „ƒZ eddœd d „ƒZ ddœdd„Z dddœdd„Z ddœdd„Z ddœdd„ZdS)ÚMSCertificateTemplaterr{r=)Ú template_idÚ major_versionÚ minor_versionr#cCsTt|tƒstdƒ‚||_|dur*t|tƒr<|durDt|tƒsDtdƒ‚||_||_dS)Núoid must be an ObjectIdentifierz8major_version and minor_version must be integers or None)r%rr[Ú _template_idr0Ú_major_versionÚ_minor_version)r5r|r}r~r*r*r+rCPs  ÿÿýýÿzMSCertificateTemplate.__init__r1cCs|jSr$)r€r4r*r*r+r|dsz!MSCertificateTemplate.template_idcCs|jSr$)r�r4r*r*r+r}hsz#MSCertificateTemplate.major_versioncCs|jSr$)r‚r4r*r*r+r~lsz#MSCertificateTemplate.minor_versionr-cCsd|j›d|j›d|j›d�S)Nz#r‘r4r*r*r+r_—sÿÿzUnrecognizedExtension.__repr__rjrkrlcCs&t|tƒstS|j|jko$|j|jkSr$)r%rZrnr@r\ror*r*r+rp�s zUnrecognizedExtension.__eq__r0cCst|j|jfƒSr$)rrr@r\r4r*r*r+rs£szUnrecognizedExtension.__hash__cCs|jSr$rr4r*r*r+r&¦sz"UnrecognizedExtension.public_bytesN) rHrIrJrCrxr@r\r_rprsr&r*r*r*r+rZˆsrZ)iZ __future__rÚabcr[r'r&rMZ cryptographyrZ"cryptography.hazmat.bindings._rustrrrwZcryptography.hazmat.primitivesrrZ,cryptography.hazmat.primitives.asymmetric.ecrZ-cryptography.hazmat.primitives.asymmetric.rsar Z/cryptography.hazmat.primitives.asymmetric.typesr r Z*cryptography.x509.certificate_transparencyr Zcryptography.x509.general_namer rrrrrrrrZcryptography.x509.namerrZcryptography.x509.oidrrrrÚTypeVarrr,r;Ú Exceptionr<rLÚABCMetarrQrcryr�r—r¤rœr©r®r¯r»r´ÚEnumrÃrÏrÐrÑrÎrÒrÓrÔrÕZ_REASON_BIT_MAPPINGZ_CRLREASONFLAGSrÞrãrårérïrörûrýrþrZ_TLS_FEATURE_TYPE_TO_ENUMrrrÚGenericr,r3rOrSrTrUrYr]rhrirlrpr{rZr*r*r*r+Úsª       , ÿ 'l$!!(.%%oø ø A=+("  w0YQQQ-+!;