
    >OOf)                      d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dl	mZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$m%Z% d dl&m'Z'm(Z(m)Z)m*Z*  ejV                  ddd      Z,	 	 	 	 dsdZ-dtdZ. G d de/      Z0 G d de/      Z1 G d dejd                        Z3 G d d      Z4 G d de3      Z5 G d de3      Z6 G d  d!e3      Z7 G d" d#e3      Z8 G d$ d%e3      Z9 G d& d'      Z: G d( d)e3      Z; G d* d+e3      Z< G d, d-e3      Z= G d. d/e3      Z> G d0 d1      Z? G d2 d3ej                        ZAeAj                  eAj                  eAj                  eAj                  eAj                  eAj                  eAj                  eAj                  d4ZJeAj                  d5eAj                  d6eAj                  d7eAj                  d8eAj                  d9eAj                  d:eAj                  d;eAj                  d<iZK G d= d>e3      ZL G d? d@e3      ZM G dA dB      ZN G dC dD      ZO G dE dF      ZP G dG dHe3      ZQ G dI dJe3      ZR G dK dLe3      ZS G dM dNe3      ZT G dO dPej                        ZUeUD  ci c]  } | j                  |  c} ZW G dQ dRe3      ZX G dS dTe3      ZY G dU dVe3      ZZ G dW dXej                  e,         Z\ G dY dZ      Z] G d[ d\e3      Z^ G d] d^e3      Z_ G d_ d`e3      Z` G da dbe3      Za G dc dde3      Zb G de dfe3      Zc G dg dhe3      Zd G di dje3      Ze G dk dle3      Zf G dm dne3      Zg G do dpe3      Zh G dq dre3      Ziyc c} w )u    )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	covariantc                B   t        | t              rC| j                  t        j                  j
                  t        j                  j                        }nt        | t              rC| j                  t        j                  j                  t        j                  j                        }nW| j                  t        j                  j
                  t        j                  j                        }t        j                  |      }t        j                  |      j!                         S N)
isinstancer
   public_bytesr   EncodingDERPublicFormatPKCS1r	   X962UncompressedPointSubjectPublicKeyInfor   parse_spki_for_datahashlibsha1digest)
public_keydata
serializeds      ]/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/cryptography/x509/extensions.py_key_identifier_from_public_keyr4   2   s     *l+&&""&&&&,,
 
J 6	7&&""''&&88
  ,,""&&&&;;

 ''
3<<$$&&    c                .     d fd} fd} fd}|||fS )Nc                .    t        t        |             S r"   )lengetattrself
field_names    r3   
len_methodz*_make_sequence_methods.<locals>.len_methodK   s    74,--r5   c                .    t        t        |             S r"   )iterr9   r:   s    r3   iter_methodz+_make_sequence_methods.<locals>.iter_methodN   s    GD*-..r5   c                "    t        |       |   S r"   )r9   )r;   idxr<   s     r3   getitem_methodz._make_sequence_methods.<locals>.getitem_methodQ   s    tZ(--r5   returnint )r<   r=   r@   rC   s   `   r3   _make_sequence_methodsrH   J   s!    ./. {N22r5   c                        e Zd Zd fdZ xZS )DuplicateExtensionc                2    t         |   |       || _        y r"   super__init__oidr;   msgrO   	__class__s      r3   rN   zDuplicateExtension.__init__X       r5   rQ   strrO   r   rE   None__name__
__module____qualname__rN   __classcell__rR   s   @r3   rJ   rJ   W        r5   rJ   c                        e Zd Zd fdZ xZS )ExtensionNotFoundc                2    t         |   |       || _        y r"   rL   rP   s      r3   rN   zExtensionNotFound.__init__^   rS   r5   rT   rW   r\   s   @r3   r_   r_   ]   r]   r5   r_   c                       e Zd ZU ded<   ddZy)r   z!typing.ClassVar[ObjectIdentifier]rO   c                    t        d|       )z7
        Serializes the extension type to DER.
        z3public_bytes is not implemented for extension type )NotImplementedErrorr;   s    r3   r$   zExtensionType.public_bytesf   s     "A$J
 	
r5   NrE   bytes)rX   rY   rZ   __annotations__r$   rG   r5   r3   r   r   c   s    	**
r5   )	metaclassc                  \    e Zd Z	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 d	dZ ed      \  ZZZ	d
dZ
y)
Extensionsc                $    t        |      | _        y r"   )list_extensions)r;   
extensionss     r3   rN   zExtensions.__init__p   s      
+r5   c                V    | D ]  }|j                   |k(  s|c S  t        d| d|      )NNo  extension was found)rO   r_   )r;   rO   exts      r3   get_extension_for_oidz Extensions.get_extension_for_oidu   s<      	Cww#~
	  #cU*> ?EEr5   c                    |t         u rt        d      | D ]  }t        |j                  |      s|c S  t	        d| d|j
                        )Nz|UnrecognizedExtension can't be used with get_extension_for_class because more than one instance of the class may be present.rp   rq   )UnrecognizedExtension	TypeErrorr#   valuer_   rO   )r;   extclassrr   s      r3   get_extension_for_classz"Extensions.get_extension_for_class~   se     ,,)   	C#))X.
	  (/0(,,
 	
r5   rm   c                "    d| j                    dS )Nz<Extensions()>)rm   rd   s    r3   __repr__zExtensions.__repr__   s    d../r22r5   N)rn   z)typing.Iterable[Extension[ExtensionType]]rE   rV   )rO   r   rE   zExtension[ExtensionType])rx   ztype[ExtensionTypeVar]rE   zExtension[ExtensionTypeVar]rE   rU   )rX   rY   rZ   rN   rs   ry   rH   __len____iter____getitem__r|   rG   r5   r3   rj   rj   o   s\    ,C,	,
F#F	!F
.
	$
$ &<M%J"GX{3r5   rj   c                  ^    e Zd Zej                  ZddZd	dZd
dZddZ	e
d
d       ZddZy)	CRLNumberc                H    t        |t              st        d      || _        y Nzcrl_number must be an integerr#   rF   rv   _crl_numberr;   
crl_numbers     r3   rN   zCRLNumber.__init__        *c*;<<%r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r   NotImplementedr   r;   others     r3   __eq__zCRLNumber.__eq__   s'    %+!!%"2"222r5   c                ,    t        | j                        S r"   hashr   rd   s    r3   __hash__zCRLNumber.__hash__       DOO$$r5   c                "    d| j                    dS )Nz<CRLNumber(r{   r   rd   s    r3   r|   zCRLNumber.__repr__   s    T__-R00r5   c                    | j                   S r"   r   rd   s    r3   r   zCRLNumber.crl_number       r5   c                ,    t        j                  |       S r"   	rust_x509encode_extension_valuerd   s    r3   r$   zCRLNumber.public_bytes       //55r5   Nr   rF   rE   rV   r   objectrE   boolrD   r}   re   )rX   rY   rZ   r   
CRL_NUMBERrO   rN   r   r   r|   propertyr   r$   rG   r5   r3   r   r      s:    

!
!C&3%1    6r5   r   c                      e Zd Zej                  Z	 	 	 	 	 	 	 	 ddZe	 	 	 	 dd       Ze	 	 	 	 dd       Z	ddZ
ddZddZedd       Ze	 	 dd       Zedd	       Zdd
Zy)AuthorityKeyIdentifierc                    |d u |d u k7  rt        d      |(t        |      }t        d |D              st        d      |t	        |t
              st        d      || _        || _        || _        y )NzXauthority_cert_issuer and authority_cert_serial_number must both be present or both Nonec              3  <   K   | ]  }t        |t                y wr"   r#   r   .0xs     r3   	<genexpr>z2AuthorityKeyIdentifier.__init__.<locals>.<genexpr>   s      /0
1k*   z;authority_cert_issuer must be a list of GeneralName objectsz/authority_cert_serial_number must be an integer)	
ValueErrorrl   allrv   r#   rF   _key_identifier_authority_cert_issuer_authority_cert_serial_number)r;   key_identifierauthority_cert_issuerauthority_cert_serial_numbers       r3   rN   zAuthorityKeyIdentifier.__init__   s     "T)(D0
 4 
 !,$()>$?! 4I    
 (3J(#=
 MNN-&;#-I*r5   c                .    t        |      } | |d d       S Nr   r   r   r4   )clsr0   r/   s      r3   from_issuer_public_keyz-AuthorityKeyIdentifier.from_issuer_public_key   s$     1<!"&)-
 	
r5   c                ,     | |j                   d d       S r   r/   )r   skis     r3   "from_issuer_subject_key_identifierz9AuthorityKeyIdentifier.from_issuer_subject_key_identifier   s     ::"&)-
 	
r5   c                V    d| j                   d| j                   d| j                   dS )Nz'<AuthorityKeyIdentifier(key_identifier=z, authority_cert_issuer=z, authority_cert_serial_number=r{   r   rd   s    r3   r|   zAuthorityKeyIdentifier.__repr__   sA    5d6I6I5L M%%)%?%?$@ A,,0,M,M+N	
r5   c                    t        |t              st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r"   )r#   r   r   r   r   r   r   s     r3   r   zAuthorityKeyIdentifier.__eq__   sc    %!78!! 5#7#77 2**e.I.II211112	
r5   c                    | j                   d }nt        | j                         }t        | j                  || j                  f      S r"   )r   tupler   r   r   )r;   acis     r3   r   zAuthorityKeyIdentifier.__hash__  sF    %%-C223C  #t'H'HI
 	
r5   c                    | j                   S r"   )r   rd   s    r3   r   z%AuthorityKeyIdentifier.key_identifier      ###r5   c                    | j                   S r"   )r   rd   s    r3   r   z,AuthorityKeyIdentifier.authority_cert_issuer  s     ***r5   c                    | j                   S r"   )r   rd   s    r3   r   z3AuthorityKeyIdentifier.authority_cert_serial_number  s    111r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z#AuthorityKeyIdentifier.public_bytes  r   r5   N)r   bytes | Noner   #typing.Iterable[GeneralName] | Noner   
int | NonerE   rV   )r0   r   rE   r   )r   SubjectKeyIdentifierrE   r   r}   r   rD   )rE   r   rE   zlist[GeneralName] | NonerE   r   re   )rX   rY   rZ   r   AUTHORITY_KEY_IDENTIFIERrO   rN   classmethodr   r   r|   r   r   r   r   r   r   r$   rG   r5   r3   r   r      s    

/
/CJ$J  CJ '1	J
 
JL 
8
	
 
 
&
	
 

	

 $ $ +	!+ +
 2 26r5   r   c                      e Zd Zej                  Zd
dZe	 	 	 	 dd       Ze	dd       Z
e	dd       ZddZddZddZddZy	)r   c                    || _         y r"   _digest)r;   r/   s     r3   rN   zSubjectKeyIdentifier.__init__"  s	    r5   c                $     | t        |            S r"   r   )r   r0   s     r3   from_public_keyz$SubjectKeyIdentifier.from_public_key%  s     2:>??r5   c                    | j                   S r"   r   rd   s    r3   r/   zSubjectKeyIdentifier.digest+      ||r5   c                    | j                   S r"   r   rd   s    r3   r   z#SubjectKeyIdentifier.key_identifier/  r   r5   c                "    d| j                   dS )Nz<SubjectKeyIdentifier(digest=r{   r   rd   s    r3   r|   zSubjectKeyIdentifier.__repr__3  s    .t{{oR@@r5   c                    t        |t              st        S t        j                  | j
                  |j
                        S r"   )r#   r   r   r   bytes_eqr/   r   s     r3   r   zSubjectKeyIdentifier.__eq__6  s.    %!56!!%%dkk5<<@@r5   c                ,    t        | j                        S r"   )r   r/   rd   s    r3   r   zSubjectKeyIdentifier.__hash__<      DKK  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z!SubjectKeyIdentifier.public_bytes?  r   r5   N)r/   rf   rE   rV   )r0   r   rE   r   re   r}   r   rD   )rX   rY   rZ   r   SUBJECT_KEY_IDENTIFIERrO   rN   r   r   r   r/   r   r|   r   r   r$   rG   r5   r3   r   r     sx    

-
-C @2@	@ @
    AA!6r5   r   c                  l    e Zd Zej                  Z	 	 	 	 ddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)AuthorityInformationAccessc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r#   AccessDescriptionr   s     r3   r   z6AuthorityInformationAccess.__init__.<locals>.<genexpr>J       J:a!23Jr   @Every item in the descriptions list must be an AccessDescriptionrl   r   rv   _descriptionsr;   descriptionss     r3   rN   z#AuthorityInformationAccess.__init__F  8     L)J\JJ$ 
 *r5   r   c                "    d| j                    dS )Nz<AuthorityInformationAccess(r{   r   rd   s    r3   r|   z#AuthorityInformationAccess.__repr__T  s    -d.@.@-ADDr5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r   r   r   r   s     r3   r   z!AuthorityInformationAccess.__eq__W  s*    %!;<!!!!U%8%888r5   c                >    t        t        | j                              S r"   r   r   r   rd   s    r3   r   z#AuthorityInformationAccess.__hash__]      E$,,-..r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z'AuthorityInformationAccess.public_bytes`  r   r5   Nr   z"typing.Iterable[AccessDescription]rE   rV   r}   r   rD   re   )rX   rY   rZ   r   AUTHORITY_INFORMATION_ACCESSrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r   r   C  sJ    

3
3C
*>
*	
* &<O%L"GX{E9/6r5   r   c                  l    e Zd Zej                  Z	 	 	 	 ddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)SubjectInformationAccessc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r   r   s     r3   r   z4SubjectInformationAccess.__init__.<locals>.<genexpr>k  r   r   r   r   r   s     r3   rN   z!SubjectInformationAccess.__init__g  r   r5   r   c                "    d| j                    dS )Nz<SubjectInformationAccess(r{   r   rd   s    r3   r|   z!SubjectInformationAccess.__repr__u  s    +D,>,>+?rBBr5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r   r   r   r   s     r3   r   zSubjectInformationAccess.__eq__x  s*    %!9:!!!!U%8%888r5   c                >    t        t        | j                              S r"   r   rd   s    r3   r   z!SubjectInformationAccess.__hash__~  r   r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z%SubjectInformationAccess.public_bytes  r   r5   Nr   r}   r   rD   re   )rX   rY   rZ   r   SUBJECT_INFORMATION_ACCESSrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r   r   d  sJ    

1
1C
*>
*	
* &<O%L"GX{C9/6r5   r   c                  \    e Zd Z	 	 	 	 	 	 ddZd	dZd
dZddZedd       Zedd       Z	y)r   c                    t        |t              st        d      t        |t              st        d      || _        || _        y )Nz)access_method must be an ObjectIdentifierz%access_location must be a GeneralName)r#   r   rv   r   _access_method_access_location)r;   access_methodaccess_locations      r3   rN   zAccessDescription.__init__  sA     -)9:GHH/;7CDD+ /r5   c                $    dj                  |       S )NzY<AccessDescription(access_method={0.access_method}, access_location={0.access_location})>formatrd   s    r3   r|   zAccessDescription.__repr__  s    ''-vd|	
r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r   r   r  r  r   s     r3   r   zAccessDescription.__eq__  sG    %!23!! %"5"55 >$$(=(==	
r5   c                D    t        | j                  | j                  f      S r"   )r   r  r  rd   s    r3   r   zAccessDescription.__hash__  s    T'')=)=>??r5   c                    | j                   S r"   )r  rd   s    r3   r  zAccessDescription.access_method      """r5   c                    | j                   S r"   )r  rd   s    r3   r  z!AccessDescription.access_location      $$$r5   N)r  r   r  r   rE   rV   r}   r   rD   rE   r   )rE   r   )
rX   rY   rZ   rN   r|   r   r   r   r  r  rG   r5   r3   r   r     sW    
0-
0@K
0	
0

@ # # % %r5   r   c                  p    e Zd Zej                  Zd	dZed
d       Zedd       Z	ddZ
ddZddZddZy)BasicConstraintsc                    t        |t              st        d      ||st        d      | t        |t              r|dk  rt        d      || _        || _        y )Nzca must be a boolean valuez)path_length must be None when ca is Falser   z2path_length must be a non-negative integer or None)r#   r   rv   r   rF   _ca_path_length)r;   capath_lengths      r3   rN   zBasicConstraints.__init__  sc    "d#899"2HII";,aD  'r5   c                    | j                   S r"   )r  rd   s    r3   r  zBasicConstraints.ca  s    xxr5   c                    | j                   S r"   )r  rd   s    r3   r  zBasicConstraints.path_length         r5   c                $    dj                  |       S )Nz:<BasicConstraints(ca={0.ca}, path_length={0.path_length})>r  rd   s    r3   r|   zBasicConstraints.__repr__  s    K
&,	r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r  r   r  r  r   s     r3   r   zBasicConstraints.__eq__  s<    %!12!!ww%(("Lt'7'75;L;L'LLr5   c                D    t        | j                  | j                  f      S r"   )r   r  r  rd   s    r3   r   zBasicConstraints.__hash__  s    TWWd../00r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zBasicConstraints.public_bytes  r   r5   N)r  r   r  r   rE   rV   rE   r   r   r}   r   rD   re   )rX   rY   rZ   r   BASIC_CONSTRAINTSrO   rN   r   r  r  r|   r   r   r$   rG   r5   r3   r  r    sO    

(
(C("   ! !
M16r5   r  c                  ^    e Zd Zej                  ZddZed	d       Zd
dZ	d	dZ
ddZddZy)DeltaCRLIndicatorc                H    t        |t              st        d      || _        y r   r   r   s     r3   rN   zDeltaCRLIndicator.__init__  r   r5   c                    | j                   S r"   r   rd   s    r3   r   zDeltaCRLIndicator.crl_number  r   r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r"  r   r   r   s     r3   r   zDeltaCRLIndicator.__eq__  s(    %!23!!%"2"222r5   c                ,    t        | j                        S r"   r   rd   s    r3   r   zDeltaCRLIndicator.__hash__  r   r5   c                "    d| j                    dS )Nz<DeltaCRLIndicator(crl_number=r{   r   rd   s    r3   r|   zDeltaCRLIndicator.__repr__  s    //@CCr5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zDeltaCRLIndicator.public_bytes  r   r5   Nr   rD   r   r}   re   )rX   rY   rZ   r   DELTA_CRL_INDICATORrO   rN   r   r   r   r   r|   r$   rG   r5   r3   r"  r"    s;    

*
*C&    3%D6r5   r"  c                  l    e Zd Zej                  Z	 	 	 	 ddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)CRLDistributionPointsc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r#   DistributionPointr   s     r3   r   z1CRLDistributionPoints.__init__.<locals>.<genexpr>        
12Jq+,
r   ?distribution_points must be a list of DistributionPoint objectsrl   r   rv   _distribution_pointsr;   distribution_pointss     r3   rN   zCRLDistributionPoints.__init__  C     ##67 
6I
 
  
 %8!r5   r3  c                "    d| j                    dS )Nz<CRLDistributionPoints(r{   r3  rd   s    r3   r|   zCRLDistributionPoints.__repr__  s    ()B)B(C2FFr5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r+  r   r3  r   s     r3   r   zCRLDistributionPoints.__eq__  s*    %!67!!((E,F,FFFr5   c                >    t        t        | j                              S r"   r   r   r3  rd   s    r3   r   zCRLDistributionPoints.__hash__      E$33455r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z"CRLDistributionPoints.public_bytes  r   r5   Nr5  z"typing.Iterable[DistributionPoint]rE   rV   r}   r   rD   re   )rX   rY   rZ   r   CRL_DISTRIBUTION_POINTSrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r+  r+    sN    

.
.C8#E8	8 &<&"GX{GG66r5   r+  c                  l    e Zd Zej                  Z	 	 	 	 ddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)FreshestCRLc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r.  r   s     r3   r   z'FreshestCRL.__init__.<locals>.<genexpr>$  r0  r   r1  r2  r4  s     r3   rN   zFreshestCRL.__init__   r6  r5   r3  c                "    d| j                    dS )Nz<FreshestCRL(r{   r8  rd   s    r3   r|   zFreshestCRL.__repr__2  s    t889<<r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   rA  r   r3  r   s     r3   r   zFreshestCRL.__eq__5  s)    %-!!((E,F,FFFr5   c                >    t        t        | j                              S r"   r;  rd   s    r3   r   zFreshestCRL.__hash__;  r<  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zFreshestCRL.public_bytes>  r   r5   Nr>  r}   r   rD   re   )rX   rY   rZ   r   FRESHEST_CRLrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   rA  rA    sM    

#
#C8#E8	8 &<&"GX{=G66r5   rA  c                      e Zd Z	 	 	 	 	 	 	 	 	 	 d
dZddZddZddZedd       Zedd       Z	edd       Z
edd       Zy	)r/  c                   |r|rt        d      |s|s|st        d      |(t        |      }t        d |D              st        d      |rt	        |t
              st        d      |(t        |      }t        d |D              st        d      |r-t	        |t              rt        d |D              st        d	      |r/t        j                  |v st        j                  |v rt        d
      || _
        || _        || _        || _        y )NzOYou cannot provide both full_name and relative_name, at least one must be None.z?Either full_name, relative_name or crl_issuer must be provided.c              3  <   K   | ]  }t        |t                y wr"   r   r   s     r3   r   z-DistributionPoint.__init__.<locals>.<genexpr>W  s     Eaz![1Er   z/full_name must be a list of GeneralName objectsz1relative_name must be a RelativeDistinguishedNamec              3  <   K   | ]  }t        |t                y wr"   r   r   s     r3   r   z-DistributionPoint.__init__.<locals>.<genexpr>d  s     Faz![1Fr   z2crl_issuer must be None or a list of general namesc              3  <   K   | ]  }t        |t                y wr"   r#   ReasonFlagsr   s     r3   r   z-DistributionPoint.__init__.<locals>.<genexpr>k  s     Caz![1Cr   z0reasons must be None or frozenset of ReasonFlagszLunspecified and remove_from_crl are not valid reasons in a DistributionPoint)r   rl   r   rv   r#   r   	frozensetrO  unspecifiedremove_from_crl
_full_name_relative_name_reasons_crl_issuer)r;   	full_namerelative_namereasons
crl_issuers        r3   rN   zDistributionPoint.__init__C  s/    *  z 
  YIE9EEE  m-FGG  !j)JF:FFH  7I.C7CCNOO##w.**g5$ 
 $+%r5   c                $    dj                  |       S )Nz}<DistributionPoint(full_name={0.full_name}, relative_name={0.relative_name}, reasons={0.reasons}, crl_issuer={0.crl_issuer})>r  rd   s    r3   r|   zDistributionPoint.__repr__}  s    **0&,	
r5   c                   t        |t              st        S | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j
                  |j
                  k(  xr | j                  |j                  k(  S r"   )r#   r/  r   rW  rX  rY  rZ  r   s     r3   r   zDistributionPoint.__eq__  sq    %!23!! NNeoo- 4""e&9&994-4 5#3#33		
r5   c                    | j                   t        | j                         }nd }| j                  t        | j                        }nd }t        || j                  | j
                  |f      S r"   )rW  r   rZ  r   rX  rY  )r;   fnrZ  s      r3   r   zDistributionPoint.__hash__  sZ    >>%16t~~1FBB??&9>t9OJJR++T\\:FGGr5   c                    | j                   S r"   rS  rd   s    r3   rW  zDistributionPoint.full_name      r5   c                    | j                   S r"   rT  rd   s    r3   rX  zDistributionPoint.relative_name  r  r5   c                    | j                   S r"   )rU  rd   s    r3   rY  zDistributionPoint.reasons  s    }}r5   c                    | j                   S r"   )rV  rd   s    r3   rZ  zDistributionPoint.crl_issuer  r   r5   N)
rW  r   rX   RelativeDistinguishedName | NonerY  frozenset[ReasonFlags] | NonerZ  r   rE   rV   r}   r   rD   r   rE   rf  rE   rg  )rX   rY   rZ   rN   r|   r   r   r   rW  rX  rY  rZ  rG   r5   r3   r/  r/  B  s    8&68& 88& /	8&
 88& 
8&t
	
H   # #      r5   r/  c                  4    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)rO  rQ  keyCompromisecACompromiseaffiliationChanged
supersededcessationOfOperationcertificateHoldprivilegeWithdrawnaACompromiseremoveFromCRLN)rX   rY   rZ   rQ  key_compromiseca_compromiseaffiliation_changedrn  cessation_of_operationcertificate_holdprivilege_withdrawnaa_compromiserR  rG   r5   r3   rO  rO    s8    K$N"M.J3(."M%Or5   rO  )                        r{  r|  r}  r~  r  r  r  r  c                  |    e Zd Zej                  Z	 	 	 	 	 	 d	dZd
dZddZddZ	e
dd       Ze
dd       ZddZy)PolicyConstraintsc                    |t        |t              st        d      |t        |t              st        d      ||t        d      || _        || _        y )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#   rF   rv   r   _require_explicit_policy_inhibit_policy_mapping)r;   require_explicit_policyinhibit_policy_mappings      r3   rN   zPolicyConstraints.__init__  s    
 #.z#S8
  
 "-j"C7
 O  ").E.M: 
 )@%'=$r5   c                $    dj                  |       S )Nz{<PolicyConstraints(require_explicit_policy={0.require_explicit_policy}, inhibit_policy_mapping={0.inhibit_policy_mapping})>r  rd   s    r3   r|   zPolicyConstraints.__repr__  s    	
r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r  r   r  r  r   s     r3   r   zPolicyConstraints.__eq__  sH    %!23!! ((E,I,II L++u/K/KK	
r5   c                D    t        | j                  | j                  f      S r"   )r   r  r  rd   s    r3   r   zPolicyConstraints.__hash__  s#    ))4+F+FG
 	
r5   c                    | j                   S r"   )r  rd   s    r3   r  z)PolicyConstraints.require_explicit_policy  s    ,,,r5   c                    | j                   S r"   )r  rd   s    r3   r  z(PolicyConstraints.inhibit_policy_mapping      +++r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zPolicyConstraints.public_bytes  r   r5   N)r  r   r  r   rE   rV   r}   r   rD   r   re   )rX   rY   rZ   r   POLICY_CONSTRAINTSrO   rN   r|   r   r   r   r  r  r$   rG   r5   r3   r  r    sj    

)
)C>!+> !+> 
	>:



 - - , ,6r5   r  c                  d    e Zd Zej                  ZddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)CertificatePoliciesc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   )r#   PolicyInformationr   s     r3   r   z/CertificatePolicies.__init__.<locals>.<genexpr>#  s     F:a!23Fr   z;Every item in the policies list must be a PolicyInformation)rl   r   rv   	_policies)r;   policiess     r3   rN   zCertificatePolicies.__init__!  s4    >FXFF$ 
 "r5   r  c                "    d| j                    dS )Nz<CertificatePolicies(r{   )r  rd   s    r3   r|   zCertificatePolicies.__repr__-      &t~~&6b99r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zCertificatePolicies.__eq__0  s&    %!45!!~~00r5   c                >    t        t        | j                              S r"   )r   r   r  rd   s    r3   r   zCertificatePolicies.__hash__6      E$..)**r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z CertificatePolicies.public_bytes9  r   r5   N)r  z"typing.Iterable[PolicyInformation]rE   rV   r}   r   rD   re   )rX   rY   rZ   r   CERTIFICATE_POLICIESrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r  r    s9    

+
+C" &<K%H"GX{:1+6r5   r  c                  `    e Zd Z	 	 	 	 	 	 ddZd	dZd
dZddZedd       Ze	 	 dd       Z	y)r  c                    t        |t              st        d      || _        |(t	        |      }t        d |D              st        d      || _        y )Nz-policy_identifier must be an ObjectIdentifierc              3  H   K   | ]  }t        |t        t        f        y wr"   )r#   rU   
UserNoticer   s     r3   r   z-PolicyInformation.__init__.<locals>.<genexpr>J  s!      56
1sJ/0s    "zMpolicy_qualifiers must be a list of strings and/or UserNotice objects or None)r#   r   rv   _policy_identifierrl   r   _policy_qualifiers)r;   policy_identifierpolicy_qualifierss      r3   rN   zPolicyInformation.__init__>  si    
 +-=>KLL"3( $%6 7 :K   1 
 #4r5   c                $    dj                  |       S )Nze<PolicyInformation(policy_identifier={0.policy_identifier}, policy_qualifiers={0.policy_qualifiers})>r  rd   s    r3   r|   zPolicyInformation.__repr__T  s    3396$<	
r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r  r   r  r  r   s     r3   r   zPolicyInformation.__eq__Z  sH    %!23!! ""e&=&== B&&%*A*AA	
r5   c                x    | j                   t        | j                         }nd }t        | j                  |f      S r"   )r  r   r   r  )r;   pqs     r3   r   zPolicyInformation.__hash__c  s>    !!-6;&&7B BT++R011r5   c                    | j                   S r"   )r  rd   s    r3   r  z#PolicyInformation.policy_identifierm      &&&r5   c                    | j                   S r"   )r  rd   s    r3   r  z#PolicyInformation.policy_qualifiersq       &&&r5   N)r  r   r  z(typing.Iterable[str | UserNotice] | NonerE   rV   r}   r   rD   r  )rE   zlist[str | UserNotice] | None)
rX   rY   rZ   rN   r|   r   r   r   r  r  rG   r5   r3   r  r  =  sc    4+4 D4 
	4,

2 ' ' '	&' 'r5   r  c                  \    e Zd Z	 	 	 	 	 	 ddZd	dZd
dZddZedd       Zedd       Z	y)r  c                Z    |rt        |t              st        d      || _        || _        y )Nz2notice_reference must be None or a NoticeReference)r#   NoticeReferencerv   _notice_reference_explicit_text)r;   notice_referenceexplicit_texts      r3   rN   zUserNotice.__init__y  s7    
 Jo%
 D  "2+r5   c                $    dj                  |       S )NzV<UserNotice(notice_reference={0.notice_reference}, explicit_text={0.explicit_text!r})>r  rd   s    r3   r|   zUserNotice.__repr__  s    $$*F4L	
r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r  r   r  r  r   s     r3   r   zUserNotice.__eq__  sF    %,!! !!U%;%;; :""e&9&99	
r5   c                D    t        | j                  | j                  f      S r"   )r   r  r  rd   s    r3   r   zUserNotice.__hash__  s    T**D,>,>?@@r5   c                    | j                   S r"   )r  rd   s    r3   r  zUserNotice.notice_reference      %%%r5   c                    | j                   S r"   )r  rd   s    r3   r  zUserNotice.explicit_text  r  r5   N)r  NoticeReference | Noner  
str | NonerE   rV   r}   r   rD   )rE   r  rE   r  )
rX   rY   rZ   rN   r|   r   r   r   r  r  rG   r5   r3   r  r  x  s[    ,0, ", 
	,

A & & # #r5   r  c                  \    e Zd Z	 	 	 	 	 	 ddZd	dZd
dZddZedd       Zedd       Z	y)r  c                p    || _         t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   )r#   rF   r   s     r3   r   z+NoticeReference.__init__.<locals>.<genexpr>  s     >!:a%>r   z)notice_numbers must be a list of integers)_organizationrl   r   rv   _notice_numbers)r;   organizationnotice_numberss      r3   rN   zNoticeReference.__init__  s8    
 *n->~>>GHH-r5   c                $    dj                  |       S )NzU<NoticeReference(organization={0.organization!r}, notice_numbers={0.notice_numbers})>r  rd   s    r3   r|   zNoticeReference.__repr__  s    ##)6$<	
r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r  r   r  r  r   s     r3   r   zNoticeReference.__eq__  sF    %1!! !3!33 <##u';';;	
r5   c                V    t        | j                  t        | j                        f      S r"   )r   r  r   r  rd   s    r3   r   zNoticeReference.__hash__  s#    T&&d.A.A(BCDDr5   c                    | j                   S r"   )r  rd   s    r3   r  zNoticeReference.organization      !!!r5   c                    | j                   S r"   )r  rd   s    r3   r  zNoticeReference.notice_numbers  r   r5   N)r  r  r  ztyping.Iterable[int]rE   rV   r}   r   rD   r  )rE   z	list[int])
rX   rY   rZ   rN   r|   r   r   r   r  r  rG   r5   r3   r  r    s[    
. 
. -
. 
	
.

E " " $ $r5   r  c                  d    e Zd Zej                  ZddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)ExtendedKeyUsagec                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r#   r   r   s     r3   r   z,ExtendedKeyUsage.__init__.<locals>.<genexpr>  s     Cq:a!12Cr   z9Every item in the usages list must be an ObjectIdentifier)rl   r   rv   _usages)r;   usagess     r3   rN   zExtendedKeyUsage.__init__  s2    fCFCCK  r5   r  c                "    d| j                    dS )Nz<ExtendedKeyUsage(r{   )r  rd   s    r3   r|   zExtendedKeyUsage.__repr__      #DLL>44r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zExtendedKeyUsage.__eq__  s&    %!12!!||u}},,r5   c                >    t        t        | j                              S r"   )r   r   r  rd   s    r3   r   zExtendedKeyUsage.__hash__  s    E$,,'((r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zExtendedKeyUsage.public_bytes  r   r5   N)r  !typing.Iterable[ObjectIdentifier]rE   rV   r}   r   rD   re   )rX   rY   rZ   r   EXTENDED_KEY_USAGErO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r  r    s9    

)
)C &<I%F"GX{5-)6r5   r  c                  D    e Zd Zej                  ZddZddZddZd	dZ	y)
OCSPNoCheckc                0    t        |t              st        S yNT)r#   r  r   r   s     r3   r   zOCSPNoCheck.__eq__  s    %-!!r5   c                     t        t              S r"   )r   r  rd   s    r3   r   zOCSPNoCheck.__hash__  s    K  r5   c                     y)Nz<OCSPNoCheck()>rG   rd   s    r3   r|   zOCSPNoCheck.__repr__  s     r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zOCSPNoCheck.public_bytes  r   r5   Nr   rD   r}   re   )
rX   rY   rZ   r   OCSP_NO_CHECKrO   r   r   r|   r$   rG   r5   r3   r  r    s!    

$
$C!!6r5   r  c                  D    e Zd Zej                  ZddZddZddZd	dZ	y)
PrecertPoisonc                0    t        |t              st        S yr  )r#   r  r   r   s     r3   r   zPrecertPoison.__eq__  s    %/!!r5   c                     t        t              S r"   )r   r  rd   s    r3   r   zPrecertPoison.__hash__  s    M""r5   c                     y)Nz<PrecertPoison()>rG   rd   s    r3   r|   zPrecertPoison.__repr__  s    "r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zPrecertPoison.public_bytes  r   r5   Nr   rD   r}   re   )
rX   rY   rZ   r   PRECERT_POISONrO   r   r   r|   r$   rG   r5   r3   r  r    s!    

%
%C##6r5   r  c                  d    e Zd Zej                  ZddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)
TLSFeaturec                ~    t        |      }t        d |D              rt        |      dk(  rt        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   )r#   TLSFeatureTyper   s     r3   r   z&TLSFeature.__init__.<locals>.<genexpr>  s     DaJq.1Dr   r   z@features must be a list of elements from the TLSFeatureType enum)rl   r   r8   rv   	_features)r;   featuress     r3   rN   zTLSFeature.__init__  s@    >D8DD8}! 
 "r5   r  c                "    d| j                    dS )Nz<TLSFeature(features=r{   )r  rd   s    r3   r|   zTLSFeature.__repr__!  r  r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zTLSFeature.__eq__$  s%    %,!!~~00r5   c                >    t        t        | j                              S r"   )r   r   r  rd   s    r3   r   zTLSFeature.__hash__*  r  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zTLSFeature.public_bytes-  r   r5   N)r  ztyping.Iterable[TLSFeatureType]rE   rV   r}   r   rD   re   )rX   rY   rZ   r   TLS_FEATURErO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r  r    s9    

"
"C" &<K%H"GX{:1+6r5   r  c                      e Zd ZdZdZy)r  r     N)rX   rY   rZ   status_requeststatus_request_v2rG   r5   r3   r  r  1  s     N r5   r  c                  ^    e Zd Zej                  ZddZd	dZd
dZddZ	e
dd       ZddZy)InhibitAnyPolicyc                h    t        |t              st        d      |dk  rt        d      || _        y )Nzskip_certs must be an integerr   z)skip_certs must be a non-negative integer)r#   rF   rv   r   _skip_certs)r;   
skip_certss     r3   rN   zInhibitAnyPolicy.__init__B  s3    *c*;<<>HII%r5   c                "    d| j                    dS )Nz<InhibitAnyPolicy(skip_certs=r{   )r  rd   s    r3   r|   zInhibitAnyPolicy.__repr__K  s    .t.?rBBr5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zInhibitAnyPolicy.__eq__N  s(    %!12!!%"2"222r5   c                ,    t        | j                        S r"   )r   r  rd   s    r3   r   zInhibitAnyPolicy.__hash__T  r   r5   c                    | j                   S r"   )r  rd   s    r3   r  zInhibitAnyPolicy.skip_certsW  r   r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zInhibitAnyPolicy.public_bytes[  r   r5   N)r  rF   rE   rV   r}   r   rD   re   )rX   rY   rZ   r   INHIBIT_ANY_POLICYrO   rN   r|   r   r   r   r  r$   rG   r5   r3   r  r  ?  s;    

)
)C&C3%    6r5   r  c                     e Zd Zej                  Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZedd       Zedd       Z	edd       Z
edd       Zedd       Zedd       Zedd       Zedd	       Zedd
       ZddZddZddZddZy)KeyUsagec
                    |s|s|	rt        d      || _        || _        || _        || _        || _        || _        || _        || _        |	| _	        y )NzKencipher_only and decipher_only can only be true when key_agreement is true)
r   _digital_signature_content_commitment_key_encipherment_data_encipherment_key_agreement_key_cert_sign	_crl_sign_encipher_only_decipher_only)
r;   digital_signaturecontent_commitmentkey_enciphermentdata_enciphermentkey_agreementkey_cert_signcrl_signencipher_onlydecipher_onlys
             r3   rN   zKeyUsage.__init__b  sf     -=( 
 #4#5 !1"3++!++r5   c                    | j                   S r"   )r  rd   s    r3   r  zKeyUsage.digital_signature~  r  r5   c                    | j                   S r"   )r	  rd   s    r3   r  zKeyUsage.content_commitment  s    '''r5   c                    | j                   S r"   )r
  rd   s    r3   r  zKeyUsage.key_encipherment  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  zKeyUsage.data_encipherment  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  zKeyUsage.key_agreement  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  zKeyUsage.key_cert_sign  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  zKeyUsage.crl_sign      ~~r5   c                H    | j                   st        d      | j                  S )Nz7encipher_only is undefined unless key_agreement is true)r  r   r  rd   s    r3   r  zKeyUsage.encipher_only  )    !!I  &&&r5   c                H    | j                   st        d      | j                  S )Nz7decipher_only is undefined unless key_agreement is true)r  r   r  rd   s    r3   r  zKeyUsage.decipher_only  r#  r5   c                "   	 | j                   }| j                  }d| j                   d| j                   d| j
                   d| j                   d| j                   d| j                   d| j                   d	| d
| dS # t        $ r d}d}Y sw xY w)NFz<KeyUsage(digital_signature=z, content_commitment=z, key_encipherment=z, data_encipherment=z, key_agreement=z, key_cert_sign=z, crl_sign=z, encipher_only=z, decipher_only=r{   )
r  r  r   r  r  r  r  r  r  r  )r;   r  r  s      r3   r|   zKeyUsage.__repr__  s    	" ..M ..M +4+A+A*B C""&"9"9!: ;  $ 5 56 7!!%!7!7 8 9!//0 1!//0DMM? K*O+;M?"N	
  	" "M!M	"s   A> >BBc                   t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  xr | j
                  |j
                  k(  xr | j                  |j                  k(  xr | j                  |j                  k(  xrj | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r  r   r  r  r  r  r  r  r  r  r  r   s     r3   r   zKeyUsage.__eq__  s    %*!! ""e&=&== <''5+C+CC<%%)?)??< &&%*A*AA< ""e&9&99	<
 ""e&9&99< /< ##u';';;< ##u';';;
	
r5   c                    t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  f	      S r"   )
r   r  r  r  r  r  r  r  r  r  rd   s    r3   r   zKeyUsage.__hash__  sc    &&''%%&&""""####

 	
r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zKeyUsage.public_bytes  r   r5   N)r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   rE   rV   r  r}   r   rD   re   )rX   rY   rZ   r   	KEY_USAGErO   rN   r   r  r  r  r  r  r  r  r  r  r|   r   r   r$   rG   r5   r3   r  r  _  s<   

 
 C,, !, 	,
  , , , , , , 
,8 ' ' ( ( & & ' ' # # # #   ' ' ' '
*
 
6r5   r  c                      e Zd Zej                  Z	 	 	 	 	 	 ddZddZddZddZ	ddZ
ddZddZe	 	 dd       Ze	 	 dd	       Zdd
Zy)NameConstraintsc                ^   |Ft        |      }|st        d      t        d |D              st        d      | j	                  |       |Ft        |      }|st        d      t        d |D              st        d      | j	                  |       ||t        d      || _        || _        y )Nz3permitted_subtrees must be a non-empty list or Nonec              3  <   K   | ]  }t        |t                y wr"   r   r   s     r3   r   z+NameConstraints.__init__.<locals>.<genexpr>  s     Naz![1Nr   z@permitted_subtrees must be a list of GeneralName objects or Nonez2excluded_subtrees must be a non-empty list or Nonec              3  <   K   | ]  }t        |t                y wr"   r   r   s     r3   r   z+NameConstraints.__init__.<locals>.<genexpr>        Maz![1Mr   z?excluded_subtrees must be a list of GeneralName objects or NonezIAt least one of permitted_subtrees and excluded_subtrees must not be None)rl   r   r   rv   _validate_tree_permitted_subtrees_excluded_subtrees)r;   permitted_subtreesexcluded_subtreess      r3   rN   zNameConstraints.__init__  s    
 )!%&8!9% I  N;MNN 
  23( $%6 7$ H  M;LMM 
  12%*;*C# 
 $6 "3r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   r+  r   r4  r3  r   s     r3   r   zNameConstraints.__eq__  sG    %1!! ""e&=&== D''5+C+CC	
r5   c                H    | j                  |       | j                  |       y r"   )_validate_ip_name_validate_dns_namer;   trees     r3   r0  zNameConstraints._validate_tree  s    t$%r5   c                >    t        d |D              rt        d      y )Nc              3     K   | ]K  }t        |t              xr5 t        |j                  t        j                  t        j
                  f        M y wr"   )r#   r   rw   	ipaddressIPv4NetworkIPv6Networkr   names     r3   r   z4NameConstraints._validate_ip_name.<locals>.<genexpr>  sR      

 	 tY' 

Y22I4I4IJ 
s   AAzGIPAddress name constraints must be an IPv4Network or IPv6Network object)anyrv   r9  s     r3   r7  z!NameConstraints._validate_ip_name  s2     

 
 
 & 
r5   c                >    t        d |D              rt        d      y )Nc              3  \   K   | ]$  }t        |t              xr d |j                  v  & yw)*N)r#   r   rw   r@  s     r3   r   z5NameConstraints._validate_dns_name.<locals>.<genexpr>,  s-      
@DJtW%;#*;;
s   *,zDDNSName name constraints must not contain the '*' wildcard character)rB  r   r9  s     r3   r8  z"NameConstraints._validate_dns_name+  s0     
HL
 
  
r5   c                <    d| j                    d| j                   dS )Nz$<NameConstraints(permitted_subtrees=z, excluded_subtrees=r{   )r3  r4  rd   s    r3   r|   zNameConstraints.__repr__4  s.    243J3J2K L!!%!7!7 8<	
r5   c                    | j                   t        | j                         }nd }| j                  t        | j                        }nd }t        ||f      S r"   )r3  r   r4  r   )r;   psess      r3   r   zNameConstraints.__hash__:  sR    "".16t7N7N1OBB!!-16t7M7M1NBBRH~r5   c                    | j                   S r"   )r1  rd   s    r3   r3  z"NameConstraints.permitted_subtreesG  s     '''r5   c                    | j                   S r"   )r2  rd   s    r3   r4  z!NameConstraints.excluded_subtreesM  r  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zNameConstraints.public_bytesS  r   r5   N)r3  r   r4  r   rE   rV   r   )r:  typing.Iterable[GeneralName]rE   rV   r}   rD   r   re   )rX   rY   rZ   r   NAME_CONSTRAINTSrO   rN   r   r0  r7  r8  r|   r   r   r3  r4  r$   rG   r5   r3   r+  r+    s    

'
'C(4?(4 ?(4 
	(4T
&
 (	!( (
 '	!' '
6r5   r+  c                  r    e Zd Z	 	 	 	 	 	 	 	 d	dZed
d       Zedd       Zedd       ZddZddZ	ddZ
y)	Extensionc                    t        |t              st        d      t        |t              st        d      || _        || _        || _        y )Nz2oid argument must be an ObjectIdentifier instance.z critical must be a boolean value)r#   r   rv   r   _oid	_critical_value)r;   rO   criticalrw   s       r3   rN   zExtension.__init__X  sL     #/0D  (D)>??	!r5   c                    | j                   S r"   rR  rd   s    r3   rO   zExtension.oidg      yyr5   c                    | j                   S r"   )rS  rd   s    r3   rU  zExtension.criticalk  r!  r5   c                    | j                   S r"   rT  rd   s    r3   rw   zExtension.valueo      {{r5   c                V    d| j                    d| j                   d| j                   dS )Nz<Extension(oid=z, critical=, value=r{   )rO   rU  rw   rd   s    r3   r|   zExtension.__repr__s  s2    dhhZ{4==/ BZZL$	
r5   c                    t        |t              st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r"   )r#   rP  r   rO   rU  rw   r   s     r3   r   zExtension.__eq__y  sS    %+!! HH		! */*

ekk)	
r5   c                Z    t        | j                  | j                  | j                  f      S r"   )r   rO   rU  rw   rd   s    r3   r   zExtension.__hash__  s     TXXt}}djj9::r5   N)rO   r   rU  r   rw   r   rE   rV   r  r  )rE   r   r}   r   rD   )rX   rY   rZ   rN   r   rO   rU  rw   r|   r   r   rG   r5   r3   rP  rP  W  sr    #/3<L	      

;r5   rP  c                  2   e Zd ZddZ ed      \  ZZZej                  	 	 	 	 dd       Z
ej                  	 	 	 	 dd       Z
ej                  	 	 	 	 dd       Z
ej                  	 	 	 	 dd       Z
ej                  dd       Z
	 	 	 	 ddZ
dd	Zdd
ZddZy)GeneralNamesc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r   r   s     r3   r   z(GeneralNames.__init__.<locals>.<genexpr>  s     E!:a-Er   z^Every item in the general_names list must be an object conforming to the GeneralName interface)rl   r   rv   _general_namesr;   general_namess     r3   rN   zGeneralNames.__init__  s7    ]+E}EEA 
 ,r5   re  c                     y r"   rG   r;   types     r3   get_values_for_typez GeneralNames.get_values_for_type       	r5   c                     y r"   rG   ri  s     r3   rk  z GeneralNames.get_values_for_type      
 	r5   c                     y r"   rG   ri  s     r3   rk  z GeneralNames.get_values_for_type  rn  r5   c                     y r"   rG   ri  s     r3   rk  z GeneralNames.get_values_for_type       	r5   c                     y r"   rG   ri  s     r3   rk  z GeneralNames.get_values_for_type      r5   c                    fd| D        }t         k7  r|D cg c]  }|j                   c}S t        |      S c c}w )Nc              3  <   K   | ]  }t        |      s|  y wr"   )r#   )r   irj  s     r3   r   z3GeneralNames.get_values_for_type.<locals>.<genexpr>  s     7a:a#67s   )r   rw   rl   )r;   rj  objsrv  s    `  r3   rk  z GeneralNames.get_values_for_type  s;    & 8479%)*AGG**Dz +s   ;c                "    d| j                    dS )Nz<GeneralNames(r{   re  rd   s    r3   r|   zGeneralNames.__repr__  s     3 34B77r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   rb  r   re  r   s     r3   r   zGeneralNames.__eq__  s)    %.!!""e&:&:::r5   c                >    t        t        | j                              S r"   )r   r   re  rd   s    r3   r   zGeneralNames.__hash__  s    E$--.//r5   Nrg  rM  rE   rV   rj  zBtype[DNSName] | type[UniformResourceIdentifier] | type[RFC822Name]rE   z	list[str]rj  ztype[DirectoryName]rE   z
list[Name]rj  ztype[RegisteredID]rE   zlist[ObjectIdentifier]rj  ztype[IPAddress]rE   zlist[_IPAddressTypes]rj  ztype[OtherName]rE   zlist[OtherName]rj  ztype[DNSName] | type[DirectoryName] | type[IPAddress] | type[OtherName] | type[RFC822Name] | type[RegisteredID] | type[UniformResourceIdentifier]rE   zYlist[_IPAddressTypes] | list[str] | list[OtherName] | list[Name] | list[ObjectIdentifier]r}   r   rD   )rX   rY   rZ   rN   rH   r~   r   r   typingoverloadrk  r|   r   r   rG   r5   r3   rb  rb    s   , &<<L%M"GX{__
 
  __! 
  __  
   __#	 
 __ *	!08;0r5   rb  c                  R   e Zd Zej                  ZddZ ed      \  ZZ	Z
ej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  dd       Z	 	 	 	 ddZdd	Zdd
ZddZddZy)SubjectAlternativeNamec                $    t        |      | _        y r"   rb  re  rf  s     r3   rN   zSubjectAlternativeName.__init__      *=9r5   re  c                     y r"   rG   ri  s     r3   rk  z*SubjectAlternativeName.get_values_for_type  rl  r5   c                     y r"   rG   ri  s     r3   rk  z*SubjectAlternativeName.get_values_for_type  rn  r5   c                     y r"   rG   ri  s     r3   rk  z*SubjectAlternativeName.get_values_for_type  rn  r5   c                     y r"   rG   ri  s     r3   rk  z*SubjectAlternativeName.get_values_for_type  rq  r5   c                     y r"   rG   ri  s     r3   rk  z*SubjectAlternativeName.get_values_for_type  rs  r5   c                8    | j                   j                  |      S r"   re  rk  ri  s     r3   rk  z*SubjectAlternativeName.get_values_for_type        ""66t<<r5   c                "    d| j                    dS )Nz<SubjectAlternativeName(r{   ry  rd   s    r3   r|   zSubjectAlternativeName.__repr__  s    )$*=*=)>bAAr5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   re  r   s     r3   r   zSubjectAlternativeName.__eq__  s*    %!78!!""e&:&:::r5   c                ,    t        | j                        S r"   r   re  rd   s    r3   r   zSubjectAlternativeName.__hash__      D''((r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z#SubjectAlternativeName.public_bytes!  r   r5   Nr|  r}  r~  r  r  r  r  r}   r   rD   re   )rX   rY   rZ   r   SUBJECT_ALTERNATIVE_NAMErO   rN   rH   r~   r   r   r  r  rk  r|   r   r   r$   rG   r5   r3   r  r    s   

/
/C: &<<L%M"GX{__
 
  __! 
  __  
   __#	 
 __ =*=	!=$B;)6r5   r  c                  R   e Zd Zej                  ZddZ ed      \  ZZ	Z
ej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  dd       Z	 	 	 	 ddZdd	Zdd
ZddZddZy)IssuerAlternativeNamec                $    t        |      | _        y r"   r  rf  s     r3   rN   zIssuerAlternativeName.__init__(  r  r5   re  c                     y r"   rG   ri  s     r3   rk  z)IssuerAlternativeName.get_values_for_type-  rl  r5   c                     y r"   rG   ri  s     r3   rk  z)IssuerAlternativeName.get_values_for_type6  rn  r5   c                     y r"   rG   ri  s     r3   rk  z)IssuerAlternativeName.get_values_for_type=  rn  r5   c                     y r"   rG   ri  s     r3   rk  z)IssuerAlternativeName.get_values_for_typeD  rq  r5   c                     y r"   rG   ri  s     r3   rk  z)IssuerAlternativeName.get_values_for_typeJ  rs  r5   c                8    | j                   j                  |      S r"   r  ri  s     r3   rk  z)IssuerAlternativeName.get_values_for_typeN  r  r5   c                "    d| j                    dS )Nz<IssuerAlternativeName(r{   ry  rd   s    r3   r|   zIssuerAlternativeName.__repr__`  s    ()<)<(=R@@r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   re  r   s     r3   r   zIssuerAlternativeName.__eq__c  s*    %!67!!""e&:&:::r5   c                ,    t        | j                        S r"   r  rd   s    r3   r   zIssuerAlternativeName.__hash__i  r  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z"IssuerAlternativeName.public_bytesl  r   r5   Nr|  r}  r~  r  r  r  r  r}   r   rD   re   )rX   rY   rZ   r   ISSUER_ALTERNATIVE_NAMErO   rN   rH   r~   r   r   r  r  rk  r|   r   r   r$   rG   r5   r3   r  r  %  s   

.
.C: &<<L%M"GX{__
 
  __! 
  __  
   __#	 
 __ =*=	!=$A;)6r5   r  c                  R   e Zd Zej                  ZddZ ed      \  ZZ	Z
ej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  	 	 	 	 dd       Zej                  dd       Z	 	 	 	 ddZdd	Zdd
ZddZddZy)CertificateIssuerc                $    t        |      | _        y r"   r  rf  s     r3   rN   zCertificateIssuer.__init__s  r  r5   re  c                     y r"   rG   ri  s     r3   rk  z%CertificateIssuer.get_values_for_typex  rl  r5   c                     y r"   rG   ri  s     r3   rk  z%CertificateIssuer.get_values_for_type  rn  r5   c                     y r"   rG   ri  s     r3   rk  z%CertificateIssuer.get_values_for_type  rn  r5   c                     y r"   rG   ri  s     r3   rk  z%CertificateIssuer.get_values_for_type  rq  r5   c                     y r"   rG   ri  s     r3   rk  z%CertificateIssuer.get_values_for_type  rs  r5   c                8    | j                   j                  |      S r"   r  ri  s     r3   rk  z%CertificateIssuer.get_values_for_type  r  r5   c                "    d| j                    dS )Nz<CertificateIssuer(r{   ry  rd   s    r3   r|   zCertificateIssuer.__repr__  s    $T%8%8$9<<r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   re  r   s     r3   r   zCertificateIssuer.__eq__  s*    %!23!!""e&:&:::r5   c                ,    t        | j                        S r"   r  rd   s    r3   r   zCertificateIssuer.__hash__  r  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zCertificateIssuer.public_bytes  r   r5   Nr|  r}  r~  r  r  r  r  r}   r   rD   re   )rX   rY   rZ   r   CERTIFICATE_ISSUERrO   rN   rH   r~   r   r   r  r  rk  r|   r   r   r$   rG   r5   r3   r  r  p  s   

1
1C: &<<L%M"GX{__
 
  __! 
  __  
   __#	 
 __ =*=	!=$=;)6r5   r  c                  ^    e Zd Zej                  ZddZd	dZd
dZddZ	e
dd       ZddZy)	CRLReasonc                H    t        |t              st        d      || _        y )Nz*reason must be an element from ReasonFlags)r#   rO  rv   _reason)r;   reasons     r3   rN   zCRLReason.__init__  s    &+.HIIr5   c                "    d| j                    dS )Nz<CRLReason(reason=r{   r  rd   s    r3   r|   zCRLReason.__repr__  r  r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zCRLReason.__eq__  s%    %+!!{{ell**r5   c                ,    t        | j                        S r"   )r   r  rd   s    r3   r   zCRLReason.__hash__  r   r5   c                    | j                   S r"   r  rd   s    r3   r  zCRLReason.reason  r   r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zCRLReason.public_bytes  r   r5   N)r  rO  rE   rV   r}   r   rD   )rE   rO  re   )rX   rY   rZ   r   
CRL_REASONrO   rN   r|   r   r   r   r  r$   rG   r5   r3   r  r    s:    

)
)C5+!  6r5   r  c                  ^    e Zd Zej                  ZddZd	dZd
dZddZ	e
dd       ZddZy)InvalidityDatec                \    t        |t        j                        st        d      || _        y )Nz+invalidity_date must be a datetime.datetime)r#   datetimerv   _invalidity_date)r;   invalidity_dates     r3   rN   zInvalidityDate.__init__  s&    /8+<+<=IJJ /r5   c                "    d| j                    dS )Nz <InvalidityDate(invalidity_date=r{   r  rd   s    r3   r|   zInvalidityDate.__repr__  s    1$2G2G1HKKr5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zInvalidityDate.__eq__  s)    %0!!##u'<'<<<r5   c                ,    t        | j                        S r"   )r   r  rd   s    r3   r   zInvalidityDate.__hash__  s    D(())r5   c                    | j                   S r"   r  rd   s    r3   r  zInvalidityDate.invalidity_date  r  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zInvalidityDate.public_bytes  r   r5   N)r  datetime.datetimerE   rV   r}   r   rD   )rE   r  re   )rX   rY   rZ   r   INVALIDITY_DATErO   rN   r|   r   r   r   r  r$   rG   r5   r3   r  r    s;    

.
.C0L=* % %6r5   r  c                  l    e Zd Zej                  Z	 	 	 	 ddZ ed      \  ZZ	Z
d	dZd
dZddZddZy))PrecertificateSignedCertificateTimestampsc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r#   r   r   scts     r3   r   zEPrecertificateSignedCertificateTimestamps.__init__.<locals>.<genexpr>         
 s67
r   YEvery item in the signed_certificate_timestamps list must be a SignedCertificateTimestamprl   r   rv   _signed_certificate_timestampsr;   signed_certificate_timestampss     r3   rN   z2PrecertificateSignedCertificateTimestamps.__init__  D     )--J(K% 
4
 
 /  /L+r5   r  c                     dt        |        dS )Nz+<PrecertificateSignedCertificateTimestamps(r{   rl   rd   s    r3   r|   z2PrecertificateSignedCertificateTimestamps.__repr__  s    <T$ZLKKr5   c                >    t        t        | j                              S r"   r   r   r  rd   s    r3   r   z2PrecertificateSignedCertificateTimestamps.__hash__      E$==>??r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   z0PrecertificateSignedCertificateTimestamps.__eq__  s1    %!JK!! //334	
r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z6PrecertificateSignedCertificateTimestamps.public_bytes  r   r5   Nr  z+typing.Iterable[SignedCertificateTimestamp]rE   rV   r}   rD   r   re   )rX   rY   rZ   r   %PRECERT_SIGNED_CERTIFICATE_TIMESTAMPSrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r  r    sU    

<
<CL(
L
 
L" &<(&"GX{L@
6r5   r  c                  l    e Zd Zej                  Z	 	 	 	 ddZ ed      \  ZZ	Z
d	dZd
dZddZddZy)SignedCertificateTimestampsc                b    t        |      }t        d |D              st        d      || _        y )Nc              3  <   K   | ]  }t        |t                y wr"   r  r  s     r3   r   z7SignedCertificateTimestamps.__init__.<locals>.<genexpr>*  r  r   r  r  r  s     r3   rN   z$SignedCertificateTimestamps.__init__#  r  r5   r  c                     dt        |        dS )Nz<SignedCertificateTimestamps(r{   r  rd   s    r3   r|   z$SignedCertificateTimestamps.__repr__8  s    .tDzl"==r5   c                >    t        t        | j                              S r"   r  rd   s    r3   r   z$SignedCertificateTimestamps.__hash__;  r  r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   z"SignedCertificateTimestamps.__eq__>  s1    %!<=!! //334	
r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z(SignedCertificateTimestamps.public_bytesG  r   r5   Nr  r}   rD   r   re   )rX   rY   rZ   r   SIGNED_CERTIFICATE_TIMESTAMPSrO   rN   rH   r~   r   r   r|   r   r   r$   rG   r5   r3   r  r     sT    

4
4CL(
L
 
L" &<(&"GX{>@
6r5   r  c                  ^    e Zd Zej                  ZddZd	dZd
dZddZ	e
dd       ZddZy)	OCSPNoncec                H    t        |t              st        d      || _        y )Nznonce must be bytes)r#   rf   rv   _nonce)r;   nonces     r3   rN   zOCSPNonce.__init__N  s    %'122r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zOCSPNonce.__eq__T  s%    %+!!zzU[[((r5   c                ,    t        | j                        S r"   )r   r  rd   s    r3   r   zOCSPNonce.__hash__Z  s    DJJr5   c                "    d| j                   dS )Nz<OCSPNonce(nonce=r{   )r  rd   s    r3   r|   zOCSPNonce.__repr__]  s    "4::.33r5   c                    | j                   S r"   )r  rd   s    r3   r  zOCSPNonce.nonce`  r\  r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   zOCSPNonce.public_bytesd  r   r5   N)r  rf   rE   rV   r   rD   r}   re   )rX   rY   rZ   r   NONCErO   rN   r   r   r|   r   r  r$   rG   r5   r3   r  r  K  s:    

 
 C) 4  6r5   r  c                  T    e Zd Zej                  ZddZd	dZd
dZddZ	ddZ
ddZy)OCSPAcceptableResponsesc                b    t        |      }t        d |D              rt        d      || _        y )Nc              3  >   K   | ]  }t        |t                 y wr"   r  )r   rs     r3   r   z3OCSPAcceptableResponses.__init__.<locals>.<genexpr>m  s     Fq:a!122Fs   z'All responses must be ObjectIdentifiers)rl   rB  rv   
_responses)r;   	responsess     r3   rN   z OCSPAcceptableResponses.__init__k  s,    O	FIFFEFF#r5   c                `    t        |t              st        S | j                  |j                  k(  S r"   )r#   r  r   r  r   s     r3   r   zOCSPAcceptableResponses.__eq__r  s(    %!89!!%"2"222r5   c                >    t        t        | j                              S r"   )r   r   r  rd   s    r3   r   z OCSPAcceptableResponses.__hash__x  s    E$//*++r5   c                "    d| j                    dS )Nz#<OCSPAcceptableResponses(responses=r{   )r  rd   s    r3   r|   z OCSPAcceptableResponses.__repr__{  s    4T__4ERHHr5   c                ,    t        | j                        S r"   )r?   r  rd   s    r3   r   z OCSPAcceptableResponses.__iter__~  r   r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z$OCSPAcceptableResponses.public_bytes  r   r5   N)r   r  rE   rV   r   rD   r}   )rE   z!typing.Iterator[ObjectIdentifier]re   )rX   rY   rZ   r   ACCEPTABLE_RESPONSESrO   rN   r   r   r|   r   r$   rG   r5   r3   r  r  h  s,    

/
/C$3,I%6r5   r  c                      e Zd Zej                  Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZ	e
dd       Ze
dd       Ze
dd       Ze
dd       Ze
	 	 dd	       Ze
dd
       Ze
dd       ZddZy)IssuingDistributionPointc           	     z   |t        |      }|r-t        |t              rt        d |D              st	        d      |r/t
        j                  |v st
        j                  |v rt        d      t        |t              r0t        |t              r t        |t              rt        |t              st	        d      ||||g}t        |D 	cg c]  }	|	s|		 c}	      dkD  rt        d      t        |||||||g      st        d      || _        || _        || _        || _        || _        || _        || _        y c c}	w )Nc              3  <   K   | ]  }t        |t                y wr"   rN  r   s     r3   r   z4IssuingDistributionPoint.__init__.<locals>.<genexpr>  r/  r   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.r{  zOnly one of the following can be set to True: only_contains_user_certs, only_contains_ca_certs, indirect_crl, only_contains_attribute_certszCannot 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.)rl   r#   rP  r   rv   rO  rQ  rR  r   r   r8   rB  _only_contains_user_certs_only_contains_ca_certs_indirect_crl_only_contains_attribute_certs_only_some_reasonsrS  rT  )
r;   rW  rX  only_contains_user_certsonly_contains_ca_certsonly_some_reasonsindirect_crlonly_contains_attribute_certscrl_constraintsr   s
             r3   rN   z!IssuingDistributionPoint.__init__  so     YI,i8M;LMML  ##'88**.??+  /6148<.8$?'  %")	
 ?0aa01A5>  (&-!

 %  *B&'=$).K+"3#+A 1s   D8D8c                    d| j                    d| j                   d| j                   d| j                   d| j                   d| j
                   d| j                   dS )	Nz$<IssuingDistributionPoint(full_name=z, relative_name=z, only_contains_user_certs=z, only_contains_ca_certs=z, only_some_reasons=z, indirect_crl=z , only_contains_attribute_certs=r{   )rW  rX  r  r  r  r  r  rd   s    r3   r|   z!IssuingDistributionPoint.__repr__  s    24>>2B C!//0 1((,(E(E'F G&&*&A&A%B C!!%!7!7 8 9 --. /-112"6		
r5   c                   t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  xr | j
                  |j
                  k(  xrj | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r"   )
r#   r  r   rW  rX  r  r  r  r  r  r   s     r3   r   zIssuingDistributionPoint.__eq__  s    %!9:!! NNeoo- 3""e&9&993--1O1OO3 ++u/K/KK3 &&%*A*AA	3
 !!U%7%773 22223		
r5   c           	         t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  f      S r"   )r   rW  rX  r  r  r  r  r  rd   s    r3   r   z!IssuingDistributionPoint.__hash__  sQ    ""--++&&!!22

 
	
r5   c                    | j                   S r"   r`  rd   s    r3   rW  z"IssuingDistributionPoint.full_name  ra  r5   c                    | j                   S r"   rc  rd   s    r3   rX  z&IssuingDistributionPoint.relative_name  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  z1IssuingDistributionPoint.only_contains_user_certs  s    ---r5   c                    | j                   S r"   )r  rd   s    r3   r  z/IssuingDistributionPoint.only_contains_ca_certs  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  z*IssuingDistributionPoint.only_some_reasons  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  z%IssuingDistributionPoint.indirect_crl  r  r5   c                    | j                   S r"   )r  rd   s    r3   r  z6IssuingDistributionPoint.only_contains_attribute_certs  s    222r5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z%IssuingDistributionPoint.public_bytes!  r   r5   N)rW  r   rX  rf  r  r   r  r   r  rg  r  r   r  r   rE   rV   r}   r   rD   r   rh  r  ri  re   )rX   rY   rZ   r   ISSUING_DISTRIBUTION_POINTrO   rN   r|   r   r   r   rW  rX  r  r  r  r  r  r$   rG   r5   r3   r  r    s   

1
1CQ,6Q, 8Q, #'	Q,
 !%Q, 9Q, Q, (,Q, 
Q,f



   # # . . , , '	&' '
 " " 3 36r5   r  c                      e Zd Zej                  Z	 	 	 	 	 	 	 	 d
dZedd       Zedd       Z	edd       Z
ddZddZddZddZy	)MSCertificateTemplatec                    t        |t              st        d      || _        |t        |t              r|t        |t              st        d      || _        || _        y )Noid must be an ObjectIdentifierz8major_version and minor_version must be integers or None)r#   r   rv   _template_idrF   _major_version_minor_version)r;   template_idmajor_versionminor_versions       r3   rN   zMSCertificateTemplate.__init__(  sc     +'78=>>'%j.L%j.LJ  ,+r5   c                    | j                   S r"   )r&  rd   s    r3   r)  z!MSCertificateTemplate.template_id<  r  r5   c                    | j                   S r"   )r'  rd   s    r3   r*  z#MSCertificateTemplate.major_version@  r  r5   c                    | j                   S r"   )r(  rd   s    r3   r+  z#MSCertificateTemplate.minor_versionD  r  r5   c                V    d| j                    d| j                   d| j                   dS )Nz#<MSCertificateTemplate(template_id=z, major_version=z, minor_version=r{   )r)  r*  r+  rd   s    r3   r|   zMSCertificateTemplate.__repr__H  s?    1$2B2B1C D!//0 1!//04	
r5   c                    t        |t              st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r"   )r#   r#  r   r)  r*  r+  r   s     r3   r   zMSCertificateTemplate.__eq__O  s`    %!67!!  1 11 :""e&9&99:""e&9&99	
r5   c                Z    t        | j                  | j                  | j                  f      S r"   )r   r)  r*  r+  rd   s    r3   r   zMSCertificateTemplate.__hash__Y  s&    T%%t'9'94;M;MNOOr5   c                ,    t        j                  |       S r"   r   rd   s    r3   r$   z"MSCertificateTemplate.public_bytes\  r   r5   N)r)  r   r*  r   r+  r   rE   rV   r  r   r}   r   rD   re   )rX   rY   rZ   r   MS_CERTIFICATE_TEMPLATErO   rN   r   r)  r*  r+  r|   r   r   r$   rG   r5   r3   r#  r#  %  s    

.
.C,%, ", "	,
 
,( ! ! # # # #

P6r5   r#  c                  X    e Zd Zd	dZed
d       Zedd       ZddZddZddZ	ddZ
y)ru   c                V    t        |t              st        d      || _        || _        y )Nr%  )r#   r   rv   rR  rT  )r;   rO   rw   s      r3   rN   zUnrecognizedExtension.__init__a  s'    #/0=>>	r5   c                    | j                   S r"   rW  rd   s    r3   rO   zUnrecognizedExtension.oidg  rX  r5   c                    | j                   S r"   r[  rd   s    r3   rw   zUnrecognizedExtension.valuek  r\  r5   c                <    d| j                    d| j                  dS )Nz<UnrecognizedExtension(oid=r^  r{   )rO   rw   rd   s    r3   r|   zUnrecognizedExtension.__repr__o  s'    )$(( 4ZZN"&	
r5   c                    t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r"   )r#   ru   r   rO   rw   r   s     r3   r   zUnrecognizedExtension.__eq__u  s8    %!67!!xx599$Bu{{)BBr5   c                D    t        | j                  | j                  f      S r"   )r   rO   rw   rd   s    r3   r   zUnrecognizedExtension.__hash__{  s    TXXtzz*++r5   c                    | j                   S r"   )rw   rd   s    r3   r$   z"UnrecognizedExtension.public_bytes~  s    zzr5   N)rO   r   rw   rf   rE   rV   r  re   r}   r   rD   )rX   rY   rZ   rN   r   rO   rw   r|   r   r   r$   rG   r5   r3   ru   ru   `  sD        
C,r5   ru   )r0   r   rE   rf   )r<   rU   )j
__future__r   abcr  r-   r=  r  cryptographyr   "cryptography.hazmat.bindings._rustr   r   r   cryptography.hazmat.primitivesr   r   ,cryptography.hazmat.primitives.asymmetric.ecr	   -cryptography.hazmat.primitives.asymmetric.rsar
   /cryptography.hazmat.primitives.asymmetric.typesr   r   *cryptography.x509.certificate_transparencyr   cryptography.x509.general_namer   r   r   r   r   r   r   r   r   cryptography.x509.namer   r   cryptography.x509.oidr   r   r   r   TypeVarr   r4   rH   	ExceptionrJ   r_   ABCMetar   rj   r   r   r   r   r   r   r  r"  r+  rA  r/  EnumrO  rt  ru  rv  rn  rw  rx  ry  rz  _REASON_BIT_MAPPING_CRLREASONFLAGSr  r  r  r  r  r  r  r  r  r  rw   _TLS_FEATURE_TYPE_TO_ENUMr  r  r+  GenericrP  rb  r  r  r  r  r  r  r  r  r  r  r#  ru   )r   s   0r3   <module>rP     s  
 # 
      3 @ G O F
 
 
 C  "6>>o 
')'
'0
3 	 	
ckk 	
$3 $3N6 6:i6] i6X!6= !6H6 6B6} 6B%% %%P+6} +6\6 6:"6M "6J"6- "6Jh  h V
&%** 
&4 !!  &&))##&&  	  q##QA&&  !##Qq	>6 >6B6- 6>8' 8'v(# (#V%$ %$P6} 6<6- 6&6M 6&6 6DUZZ  2@@AQWWaZ@ 6} 6@B6} B6Jp6m p6f-;/0 -;`P0 P0fH6] H6VH6M H6VH6 H6V6 6:6] 6:(6 (6V(6- (6V6 6:6m 6:]6} ]6@86M 86vM I! As   M1