
    #	h~)                   .   S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SK	Jr  S SKJrJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S SKJrJrJrJrJrJrJ r J!r!J"r"  S SK#J$r$J%r%  S SK&J'r'J(r(J)r)J*r*  \RV                  " SSSS9r,    S}S jr-S~S jr. " S S\/5      r0 " S S\/5      r1 " S S\Rd                  S9r3 " S S5      r4 " S S\35      r5 " S S\35      r6 " S  S!\35      r7 " S" S#\35      r8 " S$ S%\35      r9 " S& S'5      r: " S( S)\35      r; " S* S+\35      r< " S, S-\35      r= " S. S/\35      r> " S0 S15      r? " S2 S3\R                  5      rA\AR                  \AR                  \AR                  \AR                  \AR                  \AR                  \AR                  \AR                  S4.rJ\AR                  S5\AR                  S6\AR                  S7\AR                  S8\AR                  S9\AR                  S:\AR                  S;\AR                  S<0rK\AR                  S \AR                  S5\AR                  S6\AR                  S7\AR                  S8\AR                  S9\AR                  S:\AR                  S<\AR                  S=\AR                  S>0
rN " S? S@\35      rO " SA SB\35      rP " SC SD5      rQ " SE SF5      rR " SG SH5      rS " SI SJ\35      rT " SK SL\35      rU " SM SN\35      rV " SO SP\35      rW " SQ SR\R                  5      rX\X V s0 s H  o R                  U _M     sn rZ " SS ST\35      r[ " SU SV\35      r\ " SW SX\35      r] " SY SZ\R                  \,   5      r_ " S[ S\5      r` " S] S^\35      ra " S_ S`\35      rb " Sa Sb\35      rc " Sc Sd\35      rd " Se Sf\35      re " Sg Sh\35      rf " Si Sj\35      rg " Sk Sl\35      rh " Sm Sn\35      ri " So Sp\35      rj " Sq Sr\35      rk " Ss St5      rl " Su Sv5      rm " Sw Sx5      rn " Sy Sz\35      ro " S{ S|\35      rpgs  sn f )    )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                Z   [        U [        5      (       aC  U R                  [        R                  R
                  [        R                  R                  5      nO[        U [        5      (       aC  U R                  [        R                  R                  [        R                  R                  5      nOXU R                  [        R                  R
                  [        R                  R                  5      n[        R                  " U5      n[        R                  " U5      R!                  5       $ N)
isinstancer
   public_bytesr   EncodingDERPublicFormatPKCS1r	   X962UncompressedPointSubjectPublicKeyInfor   parse_spki_for_datahashlibsha1digest)
public_keydata
serializeds      N/var/www/html/env/lib/python3.13/site-packages/cryptography/x509/extensions.py_key_identifier_from_public_keyr4   2   s     *l++&&""&&&&,,
 
J 6	7	7&&""''&&88
  ,,""&&&&;;

 ''
3<<$$&&    c                4   ^  SU 4S jjnU 4S jnU 4S jnXU4$ )Nc                .   > [        [        U T5      5      $ r"   )lengetattrself
field_names    r3   
len_method*_make_sequence_methods.<locals>.len_methodK   s    74,--r5   c                .   > [        [        U T5      5      $ r"   )iterr9   r:   s    r3   iter_method+_make_sequence_methods.<locals>.iter_methodN   s    GD*-..r5   c                "   > [        U T5      U   $ r"   )r9   )r;   idxr<   s     r3   getitem_method._make_sequence_methods.<locals>.getitem_methodQ   s    tZ(--r5   returnint )r<   r=   rA   rE   s   `   r3   _make_sequence_methodsrK   J   s    ./. N22r5   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )DuplicateExtensionW   c                0   > [         TU ]  U5        X l        g r"   super__init__oidr;   msgrS   	__class__s      r3   rR   DuplicateExtension.__init__X       r5   rS   rU   strrS   r   rH   None__name__
__module____qualname____firstlineno__rR   __static_attributes____classcell__rV   s   @r3   rM   rM   W        r5   rM   c                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )ExtensionNotFound]   c                0   > [         TU ]  U5        X l        g r"   rP   rT   s      r3   rR   ExtensionNotFound.__init__^   rX   r5   rY   rZ   r]   rd   s   @r3   rg   rg   ]   re   r5   rg   c                  *    \ rS rSr% S\S'   SS jrSrg)r   c   z!typing.ClassVar[ObjectIdentifier]rS   c                     [        SU < 35      e)z'
Serializes the extension type to DER.
z3public_bytes is not implemented for extension type )NotImplementedErrorr;   s    r3   r$   ExtensionType.public_bytesf   s     "A$J
 	
r5   rJ   NrH   bytes)r^   r_   r`   ra   __annotations__r$   rb   rJ   r5   r3   r   r   c   s    	**
r5   )	metaclassc                  l    \ rS rSr    S	S jr    S
S jr    SS jr\" S5      u  rr	r
SS jrSrg)
Extensionso   c                $    [        U5      U l        g r"   )list_extensions)r;   
extensionss     r3   rR   Extensions.__init__p   s      
+r5   c                \    U  H  nUR                   U:X  d  M  Us  $    [        SU S3U5      e)NNo  extension was found)rS   rg   )r;   rS   exts      r3   get_extension_for_oid Extensions.get_extension_for_oidu   s7     Cww#~
   #cU*> ?EEr5   c                    U[         L a  [        S5      eU  H"  n[        UR                  U5      (       d  M   Us  $    [	        SU S3UR
                  5      e)Nz|UnrecognizedExtension can't be used with get_extension_for_class because more than one instance of the class may be present.r~   r   )UnrecognizedExtension	TypeErrorr#   valuerg   rS   )r;   extclassr   s      r3   get_extension_for_class"Extensions.get_extension_for_class~   sc     ,,)  C#))X..
   (/0(,,
 	
r5   rz   c                "    SU R                    S3$ )Nz<Extensions()>rz   ro   s    r3   __repr__Extensions.__repr__   s    d../r22r5   r   N)r{   z)typing.Iterable[Extension[ExtensionType]]rH   r\   )rS   r   rH   zExtension[ExtensionType])r   ztype[ExtensionTypeVar]rH   zExtension[ExtensionTypeVar]rH   r[   )r^   r_   r`   ra   rR   r   r   rK   __len____iter____getitem__r   rb   rJ   r5   r3   rv   rv   o   s\    ,C,	,
F#F	!F
.
	$
$ &<M%J"GX{3r5   rv   c                  r    \ rS rSr\R
                  rS
S jrSS jrSS jr	SS jr
\SS j5       rSS jrSrg	)	CRLNumber   c                P    [        U[        5      (       d  [        S5      eXl        g Nzcrl_number must be an integerr#   rI   r   _crl_numberr;   
crl_numbers     r3   rR   CRLNumber.__init__   !    *c**;<<%r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r   NotImplementedr   r;   others     r3   __eq__CRLNumber.__eq__   s*    %++!!%"2"222r5   c                ,    [        U R                  5      $ r"   hashr   ro   s    r3   __hash__CRLNumber.__hash__       DOO$$r5   c                "    SU R                    S3$ )Nz<CRLNumber(r   r   ro   s    r3   r   CRLNumber.__repr__   s    T__-R00r5   c                    U R                   $ r"   r   ro   s    r3   r   CRLNumber.crl_number       r5   c                .    [         R                  " U 5      $ r"   	rust_x509encode_extension_valuero   s    r3   r$   CRLNumber.public_bytes       //55r5   r   Nr   rI   rH   r\   r   objectrH   boolrG   r   rq   )r^   r_   r`   ra   r   
CRL_NUMBERrS   rR   r   r   r   propertyr   r$   rb   rJ   r5   r3   r   r      s:    

!
!C&3%1    6r5   r   c                      \ rS rSr\R
                  r        SS jr\    SS j5       r	\    SS j5       r
SS jrSS jrSS jr\SS j5       r\  SS	 j5       r\SS
 j5       rSS jrSrg)AuthorityKeyIdentifier   c                    US L US L :w  a  [        S5      eUb-  [        U5      n[        S U 5       5      (       d  [        S5      eUb   [	        U[
        5      (       d  [        S5      eXl        X l        X0l        g )NzXauthority_cert_issuer and authority_cert_serial_number must both be present or both Nonec              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r#   r   .0xs     r3   	<genexpr>2AuthorityKeyIdentifier.__init__.<locals>.<genexpr>   s      4Iq
1k**4I   z;authority_cert_issuer must be a list of GeneralName objectsz/authority_cert_serial_number must be an integer)	
ValueErrorry   allr   r#   rI   _key_identifier_authority_cert_issuer_authority_cert_serial_number)r;   key_identifierauthority_cert_issuerauthority_cert_serial_numbers       r3   rR   AuthorityKeyIdentifier.__init__   s     "T)(D0
 4 
 !,$()>$?! 4I     
 (3J(#=
 =
 MNN-&;#-I*r5   c                (    [        U5      nU " US S S9$ Nr   r   r   r4   )clsr0   r/   s      r3   from_issuer_public_key-AuthorityKeyIdentifier.from_issuer_public_key   s$     1<!"&)-
 	
r5   c                &    U " UR                   S S S9$ r   r/   )r   skis     r3   "from_issuer_subject_key_identifier9AuthorityKeyIdentifier.from_issuer_subject_key_identifier   s     ::"&)-
 	
r5   c                X    SU R                   < SU R                   SU R                   S3$ )Nz'<AuthorityKeyIdentifier(key_identifier=z, authority_cert_issuer=z, authority_cert_serial_number=r   r   ro   s    r3   r   AuthorityKeyIdentifier.__repr__   sA    5d6I6I5L M%%)%?%?$@ A,,0,M,M+N	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r"   )r#   r   r   r   r   r   r   s     r3   r   AuthorityKeyIdentifier.__eq__   sf    %!788!! 5#7#77 2**e.I.II211112	
r5   c                    U R                   c  S nO[        U R                   5      n[        U R                  XR                  45      $ r"   )r   tupler   r   r   )r;   acis     r3   r   AuthorityKeyIdentifier.__hash__  sD    %%-C223C  #'H'HI
 	
r5   c                    U R                   $ r"   )r   ro   s    r3   r   %AuthorityKeyIdentifier.key_identifier      ###r5   c                    U R                   $ r"   )r   ro   s    r3   r   ,AuthorityKeyIdentifier.authority_cert_issuer  s     ***r5   c                    U R                   $ r"   )r   ro   s    r3   r   3AuthorityKeyIdentifier.authority_cert_serial_number  s    111r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   #AuthorityKeyIdentifier.public_bytes  r   r5   )r   r   r   N)r   bytes | Noner   #typing.Iterable[GeneralName] | Noner   
int | NonerH   r\   )r0   r   rH   r   )r   SubjectKeyIdentifierrH   r   r   r   rG   rH   r   rH   zlist[GeneralName] | NonerH   r   rq   )r^   r_   r`   ra   r   AUTHORITY_KEY_IDENTIFIERrS   rR   classmethodr   r   r   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r   r      s    

/
/CJ$J  CJ '1	J
 
JL 
8
	
 
 
&
	
 

	

 $ $ +	!+ +
 2 26r5   r   c                      \ rS rSr\R
                  rSS jr\    SS j5       r	\
SS j5       r\
SS j5       rSS jrSS jrSS jrSS	 jrS
rg)r   i  c                    Xl         g r"   _digest)r;   r/   s     r3   rR   SubjectKeyIdentifier.__init__"  s    r5   c                $    U " [        U5      5      $ r"   r   )r   r0   s     r3   from_public_key$SubjectKeyIdentifier.from_public_key%  s     2:>??r5   c                    U R                   $ r"   r   ro   s    r3   r/   SubjectKeyIdentifier.digest+      ||r5   c                    U R                   $ r"   r   ro   s    r3   r   #SubjectKeyIdentifier.key_identifier/  r  r5   c                $    SU R                   < S3$ )Nz<SubjectKeyIdentifier(digest=r   r   ro   s    r3   r   SubjectKeyIdentifier.__repr__3  s    .t{{oR@@r5   c                    [        U[        5      (       d  [        $ [        R                  " U R
                  UR
                  5      $ r"   )r#   r   r   r   bytes_eqr/   r   s     r3   r   SubjectKeyIdentifier.__eq__6  s1    %!566!!%%dkk5<<@@r5   c                ,    [        U R                  5      $ r"   )r   r/   ro   s    r3   r   SubjectKeyIdentifier.__hash__<      DKK  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   !SubjectKeyIdentifier.public_bytes?  r   r5   r   N)r/   rr   rH   r\   )r0   r   rH   r   rq   r   r   rG   )r^   r_   r`   ra   r   SUBJECT_KEY_IDENTIFIERrS   rR   r   r   r   r/   r   r   r   r   r$   rb   rJ   r5   r3   r   r     sx    

-
-C @2@	@ @
    AA!6r5   r   c                  ~    \ rS rSr\R
                  r    S
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)AuthorityInformationAccessiC  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r#   AccessDescriptionr   s     r3   r   6AuthorityInformationAccess.__init__.<locals>.<genexpr>J       J\:a!233\r   @Every item in the descriptions list must be an AccessDescriptionry   r   r   _descriptionsr;   descriptionss     r3   rR   #AuthorityInformationAccess.__init__F  9     L)J\JJJ$ 
 *r5   r  c                "    SU R                    S3$ )Nz<AuthorityInformationAccess(r   r  ro   s    r3   r   #AuthorityInformationAccess.__repr__T  s    -d.@.@-ADDr5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   !AuthorityInformationAccess.__eq__W  s-    %!;<<!!!!U%8%888r5   c                >    [        [        U R                  5      5      $ r"   r   r   r  ro   s    r3   r   #AuthorityInformationAccess.__hash__]      E$,,-..r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   'AuthorityInformationAccess.public_bytes`  r   r5   r   Nr  z"typing.Iterable[AccessDescription]rH   r\   r   r   rG   rq   )r^   r_   r`   ra   r   AUTHORITY_INFORMATION_ACCESSrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r  r  C  sJ    

3
3C
*>
*	
* &<O%L"GX{E9/6r5   r  c                  ~    \ rS rSr\R
                  r    S
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)SubjectInformationAccessid  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r  r   s     r3   r   4SubjectInformationAccess.__init__.<locals>.<genexpr>k  r  r   r  r  r  s     r3   rR   !SubjectInformationAccess.__init__g  r  r5   r  c                "    SU R                    S3$ )Nz<SubjectInformationAccess(r   r   ro   s    r3   r   !SubjectInformationAccess.__repr__u  s    +D,>,>+?rBBr5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r-  r   r  r   s     r3   r   SubjectInformationAccess.__eq__x  s-    %!9::!!!!U%8%888r5   c                >    [        [        U R                  5      5      $ r"   r%  ro   s    r3   r   !SubjectInformationAccess.__hash__~  r'  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   %SubjectInformationAccess.public_bytes  r   r5   r   Nr*  r   r   rG   rq   )r^   r_   r`   ra   r   SUBJECT_INFORMATION_ACCESSrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r-  r-  d  sJ    

1
1C
*>
*	
* &<O%L"GX{C9/6r5   r-  c                  p    \ rS rSr      S
S jrSS jrSS jrSS jr\SS j5       r	\SS j5       r
Srg	)r  i  c                    [        U[        5      (       d  [        S5      e[        U[        5      (       d  [        S5      eXl        X l        g )Nz)access_method must be an ObjectIdentifierz%access_location must be a GeneralName)r#   r   r   r   _access_method_access_location)r;   access_methodaccess_locations      r3   rR   AccessDescription.__init__  sC     -)9::GHH/;77CDD+ /r5   c                <    SU R                    SU R                   S3$ )Nz!<AccessDescription(access_method=z, access_location=r   )r?  r@  ro   s    r3   r   AccessDescription.__repr__  s.    /0B0B/C D#334B8	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r?  r@  r   s     r3   r   AccessDescription.__eq__  sJ    %!233!! %"5"55 >$$(=(==	
r5   c                D    [        U R                  U R                  45      $ r"   )r   r?  r@  ro   s    r3   r   AccessDescription.__hash__  s    T'')=)=>??r5   c                    U R                   $ r"   )r=  ro   s    r3   r?  AccessDescription.access_method      """r5   c                    U R                   $ r"   )r>  ro   s    r3   r@  !AccessDescription.access_location      $$$r5   )r>  r=  N)r?  r   r@  r   rH   r\   r   r   rG   rH   r   )rH   r   )r^   r_   r`   ra   rR   r   r   r   r   r?  r@  rb   rJ   r5   r3   r  r    sW    
0-
0@K
0	
0

@ # # % %r5   r  c                      \ rS rSr\R
                  rSS jr\SS j5       r	\SS j5       r
SS jrSS jrSS jrSS jrS	rg
)BasicConstraintsi  c                    [        U[        5      (       d  [        S5      eUb  U(       d  [        S5      eUb&  [        U[        5      (       a  US:  a  [        S5      eXl        X l        g )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   r   r   rI   _ca_path_length)r;   capath_lengths      r3   rR   BasicConstraints.__init__  se    "d##899"2HII";,,aD  'r5   c                    U R                   $ r"   )rR  ro   s    r3   rT  BasicConstraints.ca      xxr5   c                    U R                   $ r"   )rS  ro   s    r3   rU  BasicConstraints.path_length         r5   c                <    SU R                    SU R                   S3$ )Nz<BasicConstraints(ca=z, path_length=r   )rT  rU  ro   s    r3   r   BasicConstraints.__repr__  s*    #DGG9 -++,B0	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   rP  r   rT  rU  r   s     r3   r   BasicConstraints.__eq__  s?    %!122!!ww%(("Lt'7'75;L;L'LLr5   c                D    [        U R                  U R                  45      $ r"   )r   rT  rU  ro   s    r3   r   BasicConstraints.__hash__  s    TWWd../00r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   BasicConstraints.public_bytes  r   r5   )rR  rS  N)rT  r   rU  r   rH   r\   rH   r   r   r   r   rG   rq   )r^   r_   r`   ra   r   BASIC_CONSTRAINTSrS   rR   r   rT  rU  r   r   r   r$   rb   rJ   r5   r3   rP  rP    sO    

(
(C("   ! !
M16r5   rP  c                  r    \ rS rSr\R
                  rS
S jr\SS j5       r	SS jr
SS jrSS jrSS jrSrg	)DeltaCRLIndicatori  c                P    [        U[        5      (       d  [        S5      eXl        g r   r   r   s     r3   rR   DeltaCRLIndicator.__init__  r   r5   c                    U R                   $ r"   r   ro   s    r3   r   DeltaCRLIndicator.crl_number  r   r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   rh  r   r   r   s     r3   r   DeltaCRLIndicator.__eq__  s+    %!233!!%"2"222r5   c                ,    [        U R                  5      $ r"   r   ro   s    r3   r   DeltaCRLIndicator.__hash__  r   r5   c                "    SU R                    S3$ )Nz<DeltaCRLIndicator(crl_number=r   r   ro   s    r3   r   DeltaCRLIndicator.__repr__  s    //@CCr5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   DeltaCRLIndicator.public_bytes  r   r5   r   Nr   rG   r   r   rq   )r^   r_   r`   ra   r   DELTA_CRL_INDICATORrS   rR   r   r   r   r   r   r$   rb   rJ   r5   r3   rh  rh    s;    

*
*C&    3%D6r5   rh  c                  ~    \ rS rSr\R
                  r    S
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)CRLDistributionPointsi  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r#   DistributionPointr   s     r3   r   1CRLDistributionPoints.__init__.<locals>.<genexpr>         
6IJq+,,6Ir   ?distribution_points must be a list of DistributionPoint objectsry   r   r   _distribution_pointsr;   distribution_pointss     r3   rR   CRLDistributionPoints.__init__  F     ##67 
6I
 
 
  
 %8!r5   r  c                "    SU R                    S3$ )Nz<CRLDistributionPoints(r   r  ro   s    r3   r   CRLDistributionPoints.__repr__  s    ()B)B(C2FFr5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   rw  r   r  r   s     r3   r   CRLDistributionPoints.__eq__  s-    %!677!!((E,F,FFFr5   c                >    [        [        U R                  5      5      $ r"   r   r   r  ro   s    r3   r   CRLDistributionPoints.__hash__      E$33455r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   "CRLDistributionPoints.public_bytes  r   r5   r  Nr  z"typing.Iterable[DistributionPoint]rH   r\   r   r   rG   rq   )r^   r_   r`   ra   r   CRL_DISTRIBUTION_POINTSrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   rw  rw    sN    

.
.C8#E8	8 &<&"GX{GG66r5   rw  c                  ~    \ rS rSr\R
                  r    S
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)FreshestCRLi  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   rz  r   s     r3   r   'FreshestCRL.__init__.<locals>.<genexpr>%  r}  r   r~  r  r  s     r3   rR   FreshestCRL.__init__!  r  r5   r  c                "    SU R                    S3$ )Nz<FreshestCRL(r   r  ro   s    r3   r   FreshestCRL.__repr__3  s    t889<<r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   FreshestCRL.__eq__6  s,    %--!!((E,F,FFFr5   c                >    [        [        U R                  5      5      $ r"   r  ro   s    r3   r   FreshestCRL.__hash__<  r  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   FreshestCRL.public_bytes?  r   r5   r  Nr  r   r   rG   rq   )r^   r_   r`   ra   r   FRESHEST_CRLrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r  r    sM    

#
#C8#E8	8 &<&"GX{=G66r5   r  c                      \ rS rSr          SS jrSS jrSS jrSS jr\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       rS
rg)r{  iC  c                   U(       a  U(       a  [        S5      eU(       d  U(       d  U(       d  [        S5      eUb-  [        U5      n[        S U 5       5      (       d  [        S5      eU(       a   [	        U[
        5      (       d  [        S5      eUb-  [        U5      n[        S U 5       5      (       d  [        S5      eU(       a7  [	        U[        5      (       a  [        S U 5       5      (       d  [        S	5      eU(       a3  [        R                  U;   d  [        R                  U;   a  [        S
5      eXl
        X l        X0l        X@l        g )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  B   #    U  H  n[        U[        5      v   M     g 7fr"   r   r   s     r3   r   -DistributionPoint.__init__.<locals>.<genexpr>X  s     E9az![119r   z/full_name must be a list of GeneralName objectsz1relative_name must be a RelativeDistinguishedNamec              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r   r   s     r3   r   r  e  s     F:az![11:r   z2crl_issuer must be None or a list of general namesc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r#   ReasonFlagsr   s     r3   r   r  l  s     C7az![117r   z0reasons must be None or frozenset of ReasonFlagszLunspecified and remove_from_crl are not valid reasons in a DistributionPoint)r   ry   r   r   r#   r   	frozensetr  unspecifiedremove_from_crl
_full_name_relative_name_reasons_crl_issuer)r;   	full_namerelative_namereasons
crl_issuers        r3   rR   DistributionPoint.__init__D  s6    *  z 
  YIE9EEEE  m-FGGG  !j)JF:FFFH  7I..C7CCCNOO##w.**g5$ 
 $+%r5   c                $    SR                  U 5      $ )Nz}<DistributionPoint(full_name={0.full_name}, relative_name={0.relative_name}, reasons={0.reasons}, crl_issuer={0.crl_issuer})>formatro   s    r3   r   DistributionPoint.__repr__~  s    **0&,	
r5   c                *   [        U[        5      (       d  [        $ U R                  UR                  :H  =(       aY    U R                  UR                  :H  =(       a9    U R
                  UR
                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r{  r   r  r  r  r  r   s     r3   r   DistributionPoint.__eq__  st    %!233!! NNeoo- 4""e&9&994-4 5#3#33		
r5   c                    U R                   b  [        U R                   5      nOS nU R                  b  [        U R                  5      nOS n[        XR                  U R
                  U45      $ r"   )r  r   r  r   r  r  )r;   fnr  s      r3   r   DistributionPoint.__hash__  sX    >>%16t~~1FBB??&9>t9OJJR++T\\:FGGr5   c                    U R                   $ r"   r  ro   s    r3   r  DistributionPoint.full_name      r5   c                    U R                   $ r"   r  ro   s    r3   r  DistributionPoint.relative_name  rJ  r5   c                    U R                   $ r"   )r  ro   s    r3   r  DistributionPoint.reasons  s    }}r5   c                    U R                   $ r"   )r  ro   s    r3   r  DistributionPoint.crl_issuer  r   r5   )r  r  r  r  N)
r  r   r   RelativeDistinguishedName | Noner  frozenset[ReasonFlags] | Noner  r   rH   r\   r   r   rG   r   rH   r  rH   r  )r^   r_   r`   ra   rR   r   r   r   r   r  r  r  r  rb   rJ   r5   r3   r{  r{  C  s    8&68& 88& /	8&
 88& 
8&t
	
H   # #      r5   r{  c                  <    \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrg)r  i  r  keyCompromisecACompromiseaffiliationChanged
supersededcessationOfOperationcertificateHoldprivilegeWithdrawnaACompromiseremoveFromCRLrJ   N)r^   r_   r`   ra   r  key_compromiseca_compromiseaffiliation_changedr  cessation_of_operationcertificate_holdprivilege_withdrawnaa_compromiser  rb   rJ   r5   r3   r  r    s8    K$N"M.J3(."M%Or5   r  )                        r  r  r  r  r  r  r  r  	   
   c                      \ rS rSr\R
                  r      SS jrSS jrSS jr	SS jr
\SS j5       r\SS j5       rSS jrS	rg
)PolicyConstraintsi  c                    Ub   [        U[        5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      eUc  Uc  [        S5      eXl        X l        g )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#   rI   r   r   _require_explicit_policy_inhibit_policy_mapping)r;   require_explicit_policyinhibit_policy_mappings      r3   rR   PolicyConstraints.__init__  s    
 #.z#S8
 8
  
 "-j"C7
 7
 O  ").E.M: 
 )@%'=$r5   c                $    SR                  U 5      $ )Nz{<PolicyConstraints(require_explicit_policy={0.require_explicit_policy}, inhibit_policy_mapping={0.inhibit_policy_mapping})>r  ro   s    r3   r   PolicyConstraints.__repr__  s    	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r  r  r   s     r3   r   PolicyConstraints.__eq__  sK    %!233!! ((E,I,II L++u/K/KK	
r5   c                D    [        U R                  U R                  45      $ r"   )r   r  r  ro   s    r3   r   PolicyConstraints.__hash__'  s#    ))4+F+FG
 	
r5   c                    U R                   $ r"   )r  ro   s    r3   r  )PolicyConstraints.require_explicit_policy,  s    ,,,r5   c                    U R                   $ r"   )r  ro   s    r3   r  (PolicyConstraints.inhibit_policy_mapping0      +++r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   PolicyConstraints.public_bytes4  r   r5   )r  r  N)r  r   r  r   rH   r\   r   r   rG   r   rq   )r^   r_   r`   ra   r   POLICY_CONSTRAINTSrS   rR   r   r   r   r   r  r  r$   rb   rJ   r5   r3   r  r    sj    

)
)C>!+> !+> 
	>:



 - - , ,6r5   r  c                  v    \ rS rSr\R
                  rS
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)CertificatePoliciesi8  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   )r#   PolicyInformationr   s     r3   r   /CertificatePolicies.__init__.<locals>.<genexpr>=  s     FX:a!233Xr   z;Every item in the policies list must be a PolicyInformation)ry   r   r   	_policies)r;   policiess     r3   rR   CertificatePolicies.__init__;  s5    >FXFFF$ 
 "r5   r  c                "    SU R                    S3$ )Nz<CertificatePolicies(r   r  ro   s    r3   r   CertificatePolicies.__repr__G      &t~~&6b99r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   CertificatePolicies.__eq__J  s)    %!455!!~~00r5   c                >    [        [        U R                  5      5      $ r"   )r   r   r  ro   s    r3   r   CertificatePolicies.__hash__P      E$..)**r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$    CertificatePolicies.public_bytesS  r   r5   r  N)r  z"typing.Iterable[PolicyInformation]rH   r\   r   r   rG   rq   )r^   r_   r`   ra   r   CERTIFICATE_POLICIESrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r  r  8  s9    

+
+C" &<K%H"GX{:1+6r5   r  c                  t    \ rS rSr      S
S jrSS jrSS jrSS jr\SS j5       r	\  SS j5       r
Srg	)r  iW  c                    [        U[        5      (       d  [        S5      eXl        Ub-  [	        U5      n[        S U 5       5      (       d  [        S5      eX l        g )Nz-policy_identifier must be an ObjectIdentifierc              3  N   #    U  H  n[        U[        [        45      v   M     g 7fr"   )r#   r[   
UserNoticer   s     r3   r   -PolicyInformation.__init__.<locals>.<genexpr>d  s#      :KQ
1sJ/00:Ks   #%zMpolicy_qualifiers must be a list of strings and/or UserNotice objects or None)r#   r   r   _policy_identifierry   r   _policy_qualifiers)r;   policy_identifierpolicy_qualifierss      r3   rR   PolicyInformation.__init__X  sm    
 +-=>>KLL"3( $%6 7 :K    1 
 #4r5   c                <    SU R                    SU R                   S3$ )Nz%<PolicyInformation(policy_identifier=z, policy_qualifiers=r   )r  r  ro   s    r3   r   PolicyInformation.__repr__n  s.    3D4J4J3K L!!%!7!7 8<	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r  r  r   s     r3   r   PolicyInformation.__eq__t  sK    %!233!! ""e&=&== B&&%*A*AA	
r5   c                z    U R                   b  [        U R                   5      nOS n[        U R                  U45      $ r"   )r  r   r   r  )r;   pqs     r3   r   PolicyInformation.__hash__}  s9    !!-t--.BBT++R011r5   c                    U R                   $ r"   )r  ro   s    r3   r  #PolicyInformation.policy_identifier      &&&r5   c                    U R                   $ r"   )r  ro   s    r3   r  #PolicyInformation.policy_qualifiers       &&&r5   )r  r  N)r  r   r  z(typing.Iterable[str | UserNotice] | NonerH   r\   r   r   rG   rN  )rH   zlist[str | UserNotice] | None)r^   r_   r`   ra   rR   r   r   r   r   r  r  rb   rJ   r5   r3   r  r  W  sc    4+4 D4 
	4,

2 ' ' '	&' 'r5   r  c                  p    \ rS rSr      S
S jrSS jrSS jrSS jr\SS j5       r	\SS j5       r
Srg	)r  i  c                j    U(       a   [        U[        5      (       d  [        S5      eXl        X l        g )Nz2notice_reference must be None or a NoticeReference)r#   NoticeReferencer   _notice_reference_explicit_text)r;   notice_referenceexplicit_texts      r3   rR   UserNotice.__init__  s8    
 Jo%
 %
 D  "2+r5   c                >    SU R                    SU R                  < S3$ )Nz<UserNotice(notice_reference=z, explicit_text=r   )r/  r0  ro   s    r3   r   UserNotice.__repr__  s.    +D,A,A+B C!//2"6	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r/  r0  r   s     r3   r   UserNotice.__eq__  sI    %,,!! !!U%;%;; :""e&9&99	
r5   c                D    [        U R                  U R                  45      $ r"   )r   r/  r0  ro   s    r3   r   UserNotice.__hash__  s    T**D,>,>?@@r5   c                    U R                   $ r"   )r-  ro   s    r3   r/  UserNotice.notice_reference      %%%r5   c                    U R                   $ r"   )r.  ro   s    r3   r0  UserNotice.explicit_text  rJ  r5   )r.  r-  N)r/  NoticeReference | Noner0  
str | NonerH   r\   r   r   rG   )rH   r=  rH   r>  )r^   r_   r`   ra   rR   r   r   r   r   r/  r0  rb   rJ   r5   r3   r  r    s[    ,0, ", 
	,

A & & # #r5   r  c                  p    \ rS rSr      S
S jrSS jrSS jrSS jr\SS j5       r	\SS j5       r
Srg	)r,  i  c                v    Xl         [        U5      n[        S U 5       5      (       d  [        S5      eX l        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   )r#   rI   r   s     r3   r   +NoticeReference.__init__.<locals>.<genexpr>  s     >~!:a%%~r   z)notice_numbers must be a list of integers)_organizationry   r   r   _notice_numbers)r;   organizationnotice_numberss      r3   rR   NoticeReference.__init__  s7    
 *n->~>>>GHH-r5   c                >    SU R                   < SU R                   S3$ )Nz<NoticeReference(organization=z, notice_numbers=r   )rF  rG  ro   s    r3   r   NoticeReference.__repr__  s.    ,T->->,A B"112"6	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r,  r   rF  rG  r   s     r3   r   NoticeReference.__eq__  sI    %11!! !3!33 <##u';';;	
r5   c                V    [        U R                  [        U R                  5      45      $ r"   )r   rF  r   rG  ro   s    r3   r   NoticeReference.__hash__  s#    T&&d.A.A(BCDDr5   c                    U R                   $ r"   )rD  ro   s    r3   rF  NoticeReference.organization      !!!r5   c                    U R                   $ r"   )rE  ro   s    r3   rG  NoticeReference.notice_numbers  r   r5   )rE  rD  N)rF  r>  rG  ztyping.Iterable[int]rH   r\   r   r   rG   r?  )rH   z	list[int])r^   r_   r`   ra   rR   r   r   r   r   rF  rG  rb   rJ   r5   r3   r,  r,    s[    
. 
. -
. 
	
.

E " " $ $r5   r,  c                  v    \ rS rSr\R
                  rS
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)ExtendedKeyUsagei  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r#   r   r   s     r3   r   ,ExtendedKeyUsage.__init__.<locals>.<genexpr>  s     CFq:a!122Fr   z9Every item in the usages list must be an ObjectIdentifier)ry   r   r   _usages)r;   usagess     r3   rR   ExtendedKeyUsage.__init__  s3    fCFCCCK  r5   rZ  c                "    SU R                    S3$ )Nz<ExtendedKeyUsage(r   rZ  ro   s    r3   r   ExtendedKeyUsage.__repr__      #DLL>44r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   rU  r   rZ  r   s     r3   r   ExtendedKeyUsage.__eq__  s)    %!122!!||u}},,r5   c                >    [        [        U R                  5      5      $ r"   )r   r   rZ  ro   s    r3   r   ExtendedKeyUsage.__hash__  s    E$,,'((r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   ExtendedKeyUsage.public_bytes  r   r5   r^  N)r[  !typing.Iterable[ObjectIdentifier]rH   r\   r   r   rG   rq   )r^   r_   r`   ra   r   EXTENDED_KEY_USAGErS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   rU  rU    s9    

)
)C &<I%F"GX{5-)6r5   rU  c                  T    \ rS rSr\R
                  rSS jrS	S jrS
S jr	SS jr
Srg)OCSPNoChecki  c                :    [        U[        5      (       d  [        $ gNT)r#   rj  r   r   s     r3   r   OCSPNoCheck.__eq__  s    %--!!r5   c                     [        [        5      $ r"   )r   rj  ro   s    r3   r   OCSPNoCheck.__hash__
  s    K  r5   c                    g)Nz<OCSPNoCheck()>rJ   ro   s    r3   r   OCSPNoCheck.__repr__  s     r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   OCSPNoCheck.public_bytes  r   r5   rJ   Nr   rG   r   rq   )r^   r_   r`   ra   r   OCSP_NO_CHECKrS   r   r   r   r$   rb   rJ   r5   r3   rj  rj    s!    

$
$C!!6r5   rj  c                  T    \ rS rSr\R
                  rSS jrS	S jrS
S jr	SS jr
Srg)PrecertPoisoni  c                :    [        U[        5      (       d  [        $ grl  )r#   rv  r   r   s     r3   r   PrecertPoison.__eq__  s    %//!!r5   c                     [        [        5      $ r"   )r   rv  ro   s    r3   r   PrecertPoison.__hash__  s    M""r5   c                    g)Nz<PrecertPoison()>rJ   ro   s    r3   r   PrecertPoison.__repr__   s    "r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   PrecertPoison.public_bytes#  r   r5   rJ   Nr   rG   r   rq   )r^   r_   r`   ra   r   PRECERT_POISONrS   r   r   r   r$   rb   rJ   r5   r3   rv  rv    s!    

%
%C##6r5   rv  c                  v    \ rS rSr\R
                  rS
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)
TLSFeaturei'  c                    [        U5      n[        S U 5       5      (       a  [        U5      S:X  a  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   )r#   TLSFeatureTyper   s     r3   r   &TLSFeature.__init__.<locals>.<genexpr>-  s     D8aJq.118r   r   z@features must be a list of elements from the TLSFeatureType enum)ry   r   r8   r   	_features)r;   featuress     r3   rR   TLSFeature.__init__*  sA    >D8DDD8}! 
 "r5   r  c                "    SU R                    S3$ )Nz<TLSFeature(features=r   r  ro   s    r3   r   TLSFeature.__repr__9  r
  r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   TLSFeature.__eq__<  s(    %,,!!~~00r5   c                >    [        [        U R                  5      5      $ r"   )r   r   r  ro   s    r3   r   TLSFeature.__hash__B  r  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   TLSFeature.public_bytesE  r   r5   r  N)r  ztyping.Iterable[TLSFeatureType]rH   r\   r   r   rG   rq   )r^   r_   r`   ra   r   TLS_FEATURErS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r  r  '  s9    

"
"C" &<K%H"GX{:1+6r5   r  c                      \ rS rSrSrSrSrg)r  iI  r     rJ   N)r^   r_   r`   ra   status_requeststatus_request_v2rb   rJ   r5   r3   r  r  I  s     N r5   r  c                  r    \ rS rSr\R
                  rS
S jrSS jrSS jr	SS jr
\SS j5       rSS jrSrg	)InhibitAnyPolicyiW  c                r    [        U[        5      (       d  [        S5      eUS:  a  [        S5      eXl        g )Nzskip_certs must be an integerr   z)skip_certs must be a non-negative integer)r#   rI   r   r   _skip_certs)r;   
skip_certss     r3   rR   InhibitAnyPolicy.__init__Z  s4    *c**;<<>HII%r5   c                "    SU R                    S3$ )Nz<InhibitAnyPolicy(skip_certs=r   )r  ro   s    r3   r   InhibitAnyPolicy.__repr__c  s    .t.?rBBr5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   InhibitAnyPolicy.__eq__f  s+    %!122!!%"2"222r5   c                ,    [        U R                  5      $ r"   )r   r  ro   s    r3   r   InhibitAnyPolicy.__hash__l  r   r5   c                    U R                   $ r"   r  ro   s    r3   r  InhibitAnyPolicy.skip_certso  r   r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   InhibitAnyPolicy.public_bytess  r   r5   r  N)r  rI   rH   r\   r   r   rG   rq   )r^   r_   r`   ra   r   INHIBIT_ANY_POLICYrS   rR   r   r   r   r   r  r$   rb   rJ   r5   r3   r  r  W  s;    

)
)C&C3%    6r5   r  c                  :   \ rS rSr\R
                  r                    SS jr\SS j5       r	\SS j5       r
\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS	 j5       r\SS
 j5       r\SS j5       rSS jrSS jrSS jrSS jrSrg)KeyUsageiw  c
                    U(       d  U(       d  U	(       a  [        S5      eXl        X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl	        g )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   rR   KeyUsage.__init__z  sT     -=( 
 #4#5 !1"3++!++r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.digital_signature  r&  r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.content_commitment  s    '''r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.key_encipherment  r:  r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.data_encipherment  r&  r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.key_agreement  rJ  r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.key_cert_sign  rJ  r5   c                    U R                   $ r"   )r  ro   s    r3   r  KeyUsage.crl_sign      ~~r5   c                R    U R                   (       d  [        S5      eU R                  $ )Nz7encipher_only is undefined unless key_agreement is true)r  r   r  ro   s    r3   r  KeyUsage.encipher_only  )    !!I  &&&r5   c                R    U R                   (       d  [        S5      eU R                  $ )Nz7decipher_only is undefined unless key_agreement is true)r  r   r  ro   s    r3   r  KeyUsage.decipher_only  r  r5   c                $    U R                   nU R                  nSU R                   SU R                   SU R
                   SU R                   SU R                   SU R                   SU R                   S	U S
U S3$ ! [         a    SnSn Ntf = f)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   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                j   [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  =(       a    U R                  UR                  :H  =(       a    U R                  UR                  :H  =(       ay    U R                  UR                  :H  =(       aY    U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r  r  r  r  r  r  r  r  r  r   s     r3   r   KeyUsage.__eq__  s    %**!! ""e&=&== <''5+C+CC<%%)?)??< &&%*A*AA< ""e&9&99	<
 ""e&9&99< /< ##u';';;< ##u';';;
	
r5   c                    [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  4	5      $ r"   )
r   r  r  r  r  r  r  r  r  r  ro   s    r3   r   KeyUsage.__hash__  sc    &&''%%&&""""####

 	
r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   KeyUsage.public_bytes  r   r5   )	r  r  r  r  r  r  r  r  r  N)r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   r  r   rH   r\   re  r   r   rG   rq   )r^   r_   r`   ra   r   	KEY_USAGErS   rR   r   r  r  r  r  r  r  r  r  r  r   r   r   r$   rb   rJ   r5   r3   r  r  w  s<   

 
 C,, !, 	,
  , , , , , , 
,8 ' ' ( ( & & ' ' # # # #   ' ' ' '
*
 
6r5   r  c                      \ rS rSr\R
                  r      SS jrSS jrSS jr	SS jr
SS jrSS jrSS jr\  SS	 j5       r\  SS
 j5       rSS jrSrg)NameConstraintsi  c                   UbP  [        U5      nU(       d  [        S5      e[        S U 5       5      (       d  [        S5      eU R	                  U5        UbP  [        U5      nU(       d  [        S5      e[        S U 5       5      (       d  [        S5      eU R	                  U5        Uc  Uc  [        S5      eXl        X l        g )Nz3permitted_subtrees must be a non-empty list or Nonec              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r   r   s     r3   r   +NameConstraints.__init__.<locals>.<genexpr>
  s     N;Maz![11;Mr   z@permitted_subtrees must be a list of GeneralName objects or Nonez2excluded_subtrees must be a non-empty list or Nonec              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r   r   s     r3   r   r         M;Laz![11;Lr   z?excluded_subtrees must be a list of GeneralName objects or NonezIAt least one of permitted_subtrees and excluded_subtrees must not be None)ry   r   r   r   _validate_tree_permitted_subtrees_excluded_subtrees)r;   permitted_subtreesexcluded_subtreess      r3   rR   NameConstraints.__init__  s    
 )!%&8!9% I  N;MNNN 
  23( $%6 7$ H  M;LMMM 
  12%*;*C# 
 $6 "3r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r  r  r   s     r3   r   NameConstraints.__eq__)  sJ    %11!! ""e&=&== D''5+C+CC	
r5   c                H    U R                  U5        U R                  U5        g r"   )_validate_ip_name_validate_dns_namer;   trees     r3   r  NameConstraints._validate_tree2  s    t$%r5   c                H    [        S U 5       5      (       a  [        S5      eg )Nc              3     #    U  HU  n[        U[        5      =(       a9    [        UR                  [        R                  [        R
                  45      (       + v   MW     g 7fr"   )r#   r   r   	ipaddressIPv4NetworkIPv6Networkr   names     r3   r   4NameConstraints._validate_ip_name.<locals>.<genexpr>7  sS      

 	 tY' 

Y22I4I4IJ  s   AAzGIPAddress name constraints must be an IPv4Network or IPv6Network object)anyr   r  s     r3   r  !NameConstraints._validate_ip_name6  s7     

 
 
 
 & 
r5   c                H    [        S U 5       5      (       a  [        S5      eg )Nc              3  n   #    U  H+  n[        U[        5      =(       a    S UR                  ;   v   M-     g7f)*N)r#   r   r   r  s     r3   r   5NameConstraints._validate_dns_name.<locals>.<genexpr>D  s+      
HLJtW%;#*;;s   35zDDNSName name constraints must not contain the '*' wildcard character)r  r   r  s     r3   r  "NameConstraints._validate_dns_nameC  s5     
HL
 
 
  
r5   c                <    SU R                    SU R                   S3$ )Nz$<NameConstraints(permitted_subtrees=z, excluded_subtrees=r   )r  r  ro   s    r3   r   NameConstraints.__repr__L  s.    243J3J2K L!!%!7!7 8<	
r5   c                    U R                   b  [        U R                   5      nOS nU R                  b  [        U R                  5      nOS n[        X45      $ r"   )r  r   r  r   )r;   psess      r3   r   NameConstraints.__hash__R  sP    "".16t7N7N1OBB!!-16t7M7M1NBBRH~r5   c                    U R                   $ r"   )r  ro   s    r3   r  "NameConstraints.permitted_subtrees_  s     '''r5   c                    U R                   $ r"   )r  ro   s    r3   r  !NameConstraints.excluded_subtreese  r)  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   NameConstraints.public_bytesk  r   r5   )r  r  N)r  r   r  r   rH   r\   r   )r  typing.Iterable[GeneralName]rH   r\   r   rG   r   rq   )r^   r_   r`   ra   r   NAME_CONSTRAINTSrS   rR   r   r  r  r  r   r   r   r  r  r$   rb   rJ   r5   r3   r  r    s    

'
'C(4?(4 ?(4 
	(4T
&
 (	!( (
 '	!' '
6r5   r  c                      \ rS rSr        SS jr\SS j5       r\SS j5       r\SS j5       rSS jr	SS jr
SS jrS	rg
)	Extensionio  c                    [        U[        5      (       d  [        S5      e[        U[        5      (       d  [        S5      eXl        X l        X0l        g )Nz2oid argument must be an ObjectIdentifier instance.z critical must be a boolean value)r#   r   r   r   _oid	_critical_value)r;   rS   criticalr   s       r3   rR   Extension.__init__p  sL     #/00D  (D))>??	!r5   c                    U R                   $ r"   r  ro   s    r3   rS   Extension.oid      yyr5   c                    U R                   $ r"   )r  ro   s    r3   r  Extension.critical  r  r5   c                    U R                   $ r"   r  ro   s    r3   r   Extension.value      {{r5   c                V    SU R                    SU R                   SU R                   S3$ )Nz<Extension(oid=z, critical=, value=r   )rS   r  r   ro   s    r3   r   Extension.__repr__  s2    dhhZ{4==/ BZZL$	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r"   )r#   r  r   rS   r  r   r   s     r3   r   Extension.__eq__  sV    %++!! HH		! */*

ekk)	
r5   c                Z    [        U R                  U R                  U R                  45      $ r"   )r   rS   r  r   ro   s    r3   r   Extension.__hash__  s     TXXt}}djj9::r5   )r  r  r  N)rS   r   r  r   r   r   rH   r\   rN  re  )rH   r   r   r   rG   )r^   r_   r`   ra   rR   r   rS   r  r   r   r   r   rb   rJ   r5   r3   r  r  o  sr    #/3<L	      

;r5   r  c                  V   \ rS rSrSS jr\" S5      u  rrr\	R                      SS j5       r\	R                      SS j5       r\	R                      SS j5       r\	R                      SS j5       r\	R                      SS j5       r    SS	 jrSS
 jrSS jrSS jrSrg)GeneralNamesi  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r   r   s     r3   r   (GeneralNames.__init__.<locals>.<genexpr>  s     E}!:a--}r   z^Every item in the general_names list must be an object conforming to the GeneralName interface)ry   r   r   _general_namesr;   general_namess     r3   rR   GeneralNames.__init__  s8    ]+E}EEEA 
 ,r5   r,  c                    g r"   rJ   r;   types     r3   get_values_for_type GeneralNames.get_values_for_type       r5   c                    g r"   rJ   r1  s     r3   r3  r4         r5   c                    g r"   rJ   r1  s     r3   r3  r4         "%r5   c                    g r"   rJ   r1  s     r3   r3  r4         !$r5   c                    g r"   rJ   r1  s     r3   r3  r4         r5   c                   ^ U4S jU  5       nT[         :w  a  U Vs/ s H  o3R                  PM     sn$ [        U5      $ s  snf )Nc              3  N   >#    U  H  n[        UT5      (       d  M  Uv   M     g 7fr"   )r#   )r   ir2  s     r3   r   3GeneralNames.get_values_for_type.<locals>.<genexpr>  s     74a:a#64s   %	%)r   r   ry   )r;   r2  objsr@  s    `  r3   r3  r4    s=    & 8479%)*TGGT**Dz +s   ?c                "    SU R                    S3$ )Nz<GeneralNames(r   r,  ro   s    r3   r   GeneralNames.__repr__  s     3 34B77r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r(  r   r,  r   s     r3   r   GeneralNames.__eq__  s,    %..!!""e&:&:::r5   c                >    [        [        U R                  5      5      $ r"   )r   r   r,  ro   s    r3   r   GeneralNames.__hash__  s    E$--.//r5   rD  Nr.  r  rH   r\   r2  zBtype[DNSName] | type[UniformResourceIdentifier] | type[RFC822Name]rH   	list[str]r2  ztype[DirectoryName]rH   z
list[Name]r2  ztype[RegisteredID]rH   zlist[ObjectIdentifier]r2  ztype[IPAddress]rH   zlist[_IPAddressTypes]r2  ztype[OtherName]rH   zlist[OtherName]r2  ztype[DNSName] | type[DirectoryName] | type[IPAddress] | type[OtherName] | type[RFC822Name] | type[RegisteredID] | type[UniformResourceIdentifier]rH   zYlist[_IPAddressTypes] | list[str] | list[OtherName] | list[Name] | list[ObjectIdentifier]r   r   rG   )r^   r_   r`   ra   rR   rK   r   r   r   typingoverloadr3  r   r   r   rb   rJ   r5   r3   r(  r(    s   , &<<L%M"GX{__
 
  __! 
 
 __% % 
 % %
 __$#$	$ $ __#	 *	!08;0r5   r(  c                  x   \ rS rSr\R
                  rSS jr\" S5      u  r	r
r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r    SS	 jrSS
 jrSS jrSS jrSS jrSrg)SubjectAlternativeNamei  c                $    [        U5      U l        g r"   r(  r,  r-  s     r3   rR   SubjectAlternativeName.__init__      *=9r5   r,  c                    g r"   rJ   r1  s     r3   r3  *SubjectAlternativeName.get_values_for_type  r5  r5   c                    g r"   rJ   r1  s     r3   r3  r[    r7  r5   c                    g r"   rJ   r1  s     r3   r3  r[    r9  r5   c                    g r"   rJ   r1  s     r3   r3  r[    r;  r5   c                    g r"   rJ   r1  s     r3   r3  r[    r=  r5   c                8    U R                   R                  U5      $ r"   r,  r3  r1  s     r3   r3  r[          ""66t<<r5   c                "    SU R                    S3$ )Nz<SubjectAlternativeName(r   rD  ro   s    r3   r   SubjectAlternativeName.__repr__'  s    )$*=*=)>bAAr5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   rU  r   r,  r   s     r3   r   SubjectAlternativeName.__eq__*  s-    %!788!!""e&:&:::r5   c                ,    [        U R                  5      $ r"   r   r,  ro   s    r3   r   SubjectAlternativeName.__hash__0      D''((r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   #SubjectAlternativeName.public_bytes3  r   r5   rD  NrJ  rK  rM  rN  rO  rP  rQ  r   r   rG   rq   )r^   r_   r`   ra   r   SUBJECT_ALTERNATIVE_NAMErS   rR   rK   r   r   r   rR  rS  r3  r   r   r   r$   rb   rJ   r5   r3   rU  rU    s"   

/
/C: &<<L%M"GX{__
 
  __! 
 
 __% % 
 % %
 __$#$	$ $ __#	 =*=	!=$B;)6r5   rU  c                  x   \ rS rSr\R
                  rSS jr\" S5      u  r	r
r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r    SS	 jrSS
 jrSS jrSS jrSS jrSrg)IssuerAlternativeNamei7  c                $    [        U5      U l        g r"   rW  r-  s     r3   rR   IssuerAlternativeName.__init__:  rY  r5   r,  c                    g r"   rJ   r1  s     r3   r3  )IssuerAlternativeName.get_values_for_type?  r5  r5   c                    g r"   rJ   r1  s     r3   r3  rs  G  r7  r5   c                    g r"   rJ   r1  s     r3   r3  rs  M  r9  r5   c                    g r"   rJ   r1  s     r3   r3  rs  S  r;  r5   c                    g r"   rJ   r1  s     r3   r3  rs  X  r=  r5   c                8    U R                   R                  U5      $ r"   ra  r1  s     r3   r3  rs  ]  rb  r5   c                "    SU R                    S3$ )Nz<IssuerAlternativeName(r   rD  ro   s    r3   r   IssuerAlternativeName.__repr__o  s    ()<)<(=R@@r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   ro  r   r,  r   s     r3   r   IssuerAlternativeName.__eq__r  s-    %!677!!""e&:&:::r5   c                ,    [        U R                  5      $ r"   rh  ro   s    r3   r   IssuerAlternativeName.__hash__x  rj  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   "IssuerAlternativeName.public_bytes{  r   r5   rD  NrJ  rK  rM  rN  rO  rP  rQ  r   r   rG   rq   )r^   r_   r`   ra   r   ISSUER_ALTERNATIVE_NAMErS   rR   rK   r   r   r   rR  rS  r3  r   r   r   r$   rb   rJ   r5   r3   ro  ro  7  s"   

.
.C: &<<L%M"GX{__
 
  __! 
 
 __% % 
 % %
 __$#$	$ $ __#	 =*=	!=$A;)6r5   ro  c                  x   \ rS rSr\R
                  rSS jr\" S5      u  r	r
r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r\R                      SS j5       r    SS	 jrSS
 jrSS jrSS jrSS jrSrg)CertificateIssueri  c                $    [        U5      U l        g r"   rW  r-  s     r3   rR   CertificateIssuer.__init__  rY  r5   r,  c                    g r"   rJ   r1  s     r3   r3  %CertificateIssuer.get_values_for_type  r5  r5   c                    g r"   rJ   r1  s     r3   r3  r    r7  r5   c                    g r"   rJ   r1  s     r3   r3  r    r9  r5   c                    g r"   rJ   r1  s     r3   r3  r    r;  r5   c                    g r"   rJ   r1  s     r3   r3  r    r=  r5   c                8    U R                   R                  U5      $ r"   ra  r1  s     r3   r3  r    rb  r5   c                "    SU R                    S3$ )Nz<CertificateIssuer(r   rD  ro   s    r3   r   CertificateIssuer.__repr__  s    $T%8%8$9<<r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r,  r   s     r3   r   CertificateIssuer.__eq__  s-    %!233!!""e&:&:::r5   c                ,    [        U R                  5      $ r"   rh  ro   s    r3   r   CertificateIssuer.__hash__  rj  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   CertificateIssuer.public_bytes  r   r5   rD  NrJ  rK  rM  rN  rO  rP  rQ  r   r   rG   rq   )r^   r_   r`   ra   r   CERTIFICATE_ISSUERrS   rR   rK   r   r   r   rR  rS  r3  r   r   r   r$   rb   rJ   r5   r3   r  r    s!   

1
1C: &<<L%M"GX{__
 
  __! 
 
 __% % 
 % %
 __$#$	$ $ __#	 =*=	!=$=;)6r5   r  c                  r    \ rS rSr\R
                  rS
S jrSS jrSS jr	SS jr
\SS j5       rSS jrSrg	)	CRLReasoni  c                P    [        U[        5      (       d  [        S5      eXl        g )Nz*reason must be an element from ReasonFlags)r#   r  r   _reason)r;   reasons     r3   rR   CRLReason.__init__  s     &+..HIIr5   c                "    SU R                    S3$ )Nz<CRLReason(reason=r   r  ro   s    r3   r   CRLReason.__repr__  r`  r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   CRLReason.__eq__  s(    %++!!{{ell**r5   c                ,    [        U R                  5      $ r"   )r   r  ro   s    r3   r   CRLReason.__hash__  r  r5   c                    U R                   $ r"   r  ro   s    r3   r  CRLReason.reason  r  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   CRLReason.public_bytes  r   r5   r  N)r  r  rH   r\   r   r   rG   )rH   r  rq   )r^   r_   r`   ra   r   
CRL_REASONrS   rR   r   r   r   r   r  r$   rb   rJ   r5   r3   r  r    s:    

)
)C5+!  6r5   r  c                      \ rS rSr\R
                  rSS jrSS jrSS jr	SS jr
\SS j5       r\SS j5       rSS jrS	rg
)InvalidityDatei  c                d    [        U[        R                  5      (       d  [        S5      eXl        g )Nz+invalidity_date must be a datetime.datetime)r#   datetimer   _invalidity_date)r;   invalidity_dates     r3   rR   InvalidityDate.__init__  s'    /8+<+<==IJJ /r5   c                "    SU R                    S3$ )Nz <InvalidityDate(invalidity_date=r   r  ro   s    r3   r   InvalidityDate.__repr__  s    1$2G2G1HKKr5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   InvalidityDate.__eq__  s,    %00!!##u'<'<<<r5   c                ,    [        U R                  5      $ r"   )r   r  ro   s    r3   r   InvalidityDate.__hash__  s    D(())r5   c                    U R                   $ r"   r  ro   s    r3   r  InvalidityDate.invalidity_date  rM  r5   c                    U R                   R                  c1  U R                   R                  [        R                  R
                  S9$ U R                   R                  [        R                  R
                  S9$ )N)tzinfo)tz)r  r  replacer  timezoneutc
astimezonero   s    r3   invalidity_date_utc"InvalidityDate.invalidity_date_utc  s`      ''/((008I8I8M8M0NN((33x7H7H7L7L3MMr5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   InvalidityDate.public_bytes  r   r5   r  N)r  datetime.datetimerH   r\   r   r   rG   )rH   r  rq   )r^   r_   r`   ra   r   INVALIDITY_DATErS   rR   r   r   r   r   r  r  r$   rb   rJ   r5   r3   r  r    sQ    

.
.C0L=* % % N N6r5   r  c                  ~    \ rS rSr\R
                  r    S
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	))PrecertificateSignedCertificateTimestampsi  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r#   r   r   scts     r3   r   EPrecertificateSignedCertificateTimestamps.__init__.<locals>.<genexpr>  "      
4 s6774r   YEvery item in the signed_certificate_timestamps list must be a SignedCertificateTimestampry   r   r   _signed_certificate_timestampsr;   signed_certificate_timestampss     r3   rR   2PrecertificateSignedCertificateTimestamps.__init__  G     )--J(K% 
4
 
 
 /  /L+r5   r  c                     S[        U 5       S3$ )Nz+<PrecertificateSignedCertificateTimestamps(r   ry   ro   s    r3   r   2PrecertificateSignedCertificateTimestamps.__repr__   s    <T$ZLKKr5   c                >    [        [        U R                  5      5      $ r"   r   r   r  ro   s    r3   r   2PrecertificateSignedCertificateTimestamps.__hash__#      E$==>??r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   0PrecertificateSignedCertificateTimestamps.__eq__&  s4    %!JKK!! //334	
r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   6PrecertificateSignedCertificateTimestamps.public_bytes/  r   r5   r  Nr  z+typing.Iterable[SignedCertificateTimestamp]rH   r\   r   rG   r   rq   )r^   r_   r`   ra   r   %PRECERT_SIGNED_CERTIFICATE_TIMESTAMPSrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r  r    sU    

<
<CL(
L
 
L" &<(&"GX{L@
6r5   r  c                  ~    \ rS rSr\R
                  r    S
S jr\" S5      u  r	r
rSS jrSS jrSS jrSS jrSrg	)SignedCertificateTimestampsi3  c                j    [        U5      n[        S U 5       5      (       d  [        S5      eXl        g )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r  r  s     r3   r   7SignedCertificateTimestamps.__init__.<locals>.<genexpr>=  r  r   r  r  r  s     r3   rR   $SignedCertificateTimestamps.__init__6  r  r5   r  c                     S[        U 5       S3$ )Nz<SignedCertificateTimestamps(r   r  ro   s    r3   r   $SignedCertificateTimestamps.__repr__K  s    .tDzl"==r5   c                >    [        [        U R                  5      5      $ r"   r  ro   s    r3   r   $SignedCertificateTimestamps.__hash__N  r  r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   "SignedCertificateTimestamps.__eq__Q  s4    %!<==!! //334	
r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   (SignedCertificateTimestamps.public_bytesZ  r   r5   r  Nr  r   rG   r   rq   )r^   r_   r`   ra   r   SIGNED_CERTIFICATE_TIMESTAMPSrS   rR   rK   r   r   r   r   r   r   r$   rb   rJ   r5   r3   r  r  3  sT    

4
4CL(
L
 
L" &<(&"GX{>@
6r5   r  c                  r    \ rS rSr\R
                  rS
S jrSS jrSS jr	SS jr
\SS j5       rSS jrSrg	)	OCSPNoncei^  c                P    [        U[        5      (       d  [        S5      eXl        g )Nznonce must be bytes)r#   rr   r   _nonce)r;   nonces     r3   rR   OCSPNonce.__init__a  s     %''122r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r  r   s     r3   r   OCSPNonce.__eq__g  s(    %++!!zzU[[((r5   c                ,    [        U R                  5      $ r"   )r   r  ro   s    r3   r   OCSPNonce.__hash__m  s    DJJr5   c                $    SU R                   < S3$ )Nz<OCSPNonce(nonce=r   )r  ro   s    r3   r   OCSPNonce.__repr__p  s    "4::.33r5   c                    U R                   $ r"   r  ro   s    r3   r  OCSPNonce.nonces  r  r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   OCSPNonce.public_bytesw  r   r5   r  N)r  rr   rH   r\   r   rG   r   rq   )r^   r_   r`   ra   r   NONCErS   rR   r   r   r   r   r  r$   rb   rJ   r5   r3   r  r  ^  s:    

 
 C) 4  6r5   r  c                  h    \ rS rSr\R
                  rS
S jrSS jrSS jr	SS jr
SS jrSS jrSrg	)OCSPAcceptableResponsesi{  c                j    [        U5      n[        S U 5       5      (       a  [        S5      eXl        g )Nc              3  L   #    U  H  n[        U[        5      (       + v   M     g 7fr"   rX  )r   rs     r3   r   3OCSPAcceptableResponses.__init__.<locals>.<genexpr>  s     FIq:a!1222Is   "$z'All responses must be ObjectIdentifiers)ry   r  r   
_responses)r;   	responsess     r3   rR    OCSPAcceptableResponses.__init__~  s-    O	FIFFFEFF#r5   c                j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r"   )r#   r  r   r
  r   s     r3   r   OCSPAcceptableResponses.__eq__  s+    %!899!!%"2"222r5   c                >    [        [        U R                  5      5      $ r"   )r   r   r
  ro   s    r3   r    OCSPAcceptableResponses.__hash__  s    E$//*++r5   c                "    SU R                    S3$ )Nz#<OCSPAcceptableResponses(responses=r   r
  ro   s    r3   r    OCSPAcceptableResponses.__repr__  s    4T__4ERHHr5   c                ,    [        U R                  5      $ r"   )r@   r
  ro   s    r3   r    OCSPAcceptableResponses.__iter__  r   r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   $OCSPAcceptableResponses.public_bytes  r   r5   r  N)r  rg  rH   r\   r   rG   r   )rH   z!typing.Iterator[ObjectIdentifier]rq   )r^   r_   r`   ra   r   ACCEPTABLE_RESPONSESrS   rR   r   r   r   r   r$   rb   rJ   r5   r3   r  r  {  s,    

/
/C$3,I%6r5   r  c                     \ rS rSr\R
                  r                SS jrSS jrSS jr	SS jr
\SS j5       r\SS j5       r\SS j5       r\SS	 j5       r\  SS
 j5       r\SS j5       r\SS j5       rSS jrSrg)IssuingDistributionPointi  c           	        Ub  [        U5      nU(       a7  [        U[        5      (       a  [        S U 5       5      (       d  [	        S5      eU(       a3  [
        R                  U;   d  [
        R                  U;   a  [        S5      e[        U[        5      (       a?  [        U[        5      (       a*  [        U[        5      (       a  [        U[        5      (       d  [	        S5      eUUU/n[        U V	s/ s H  o(       d  M  U	PM     sn	5      S:  a  [        S5      e[        UUUUUUU/5      (       d  [        S5      eX0l        X@l        X`l        Xpl        XPl        Xl        X l        g s  sn	f )Nc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   r  r   s     r3   r   4IssuingDistributionPoint.__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  z}Only one of the following can be set to True: only_contains_user_certs, only_contains_ca_certs, 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.)ry   r#   r  r   r   r  r  r  r   r   r8   r  _only_contains_user_certs_only_contains_ca_certs_indirect_crl_only_contains_attribute_certs_only_some_reasonsr  r  )
r;   r  r  only_contains_user_certsonly_contains_ca_certsonly_some_reasonsindirect_crlonly_contains_attribute_certscrl_constraintsr   s
             r3   rR   !IssuingDistributionPoint.__init__  sy     YI,i88M;LMMML  ##'88**.??+  /661488<..8$??'  %")
 ?0?aa?01A50  (&-!

 

 %  *B&'=$).K+"3#+A 1s   4
E+E+c                    SU R                    SU R                   SU R                   SU R                   SU R                   SU R
                   SU R                   S3$ )	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   )r  r  r#  r$  r%  r&  r'  ro   s    r3   r   !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                   [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  =(       ay    U R                  UR                  :H  =(       aY    U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )
r#   r  r   r  r  r#  r$  r%  r&  r'  r   s     r3   r   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           	         [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  45      $ r"   )r   r  r  r#  r$  r%  r&  r'  ro   s    r3   r   !IssuingDistributionPoint.__hash__  sQ    ""--++&&!!22

 
	
r5   c                    U R                   $ r"   r  ro   s    r3   r  "IssuingDistributionPoint.full_name  r  r5   c                    U R                   $ r"   r  ro   s    r3   r  &IssuingDistributionPoint.relative_name  rJ  r5   c                    U R                   $ r"   )r  ro   s    r3   r#  1IssuingDistributionPoint.only_contains_user_certs   s    ---r5   c                    U R                   $ r"   )r  ro   s    r3   r$  /IssuingDistributionPoint.only_contains_ca_certs$  r  r5   c                    U R                   $ r"   )r"  ro   s    r3   r%  *IssuingDistributionPoint.only_some_reasons(  r)  r5   c                    U R                   $ r"   )r   ro   s    r3   r&  %IssuingDistributionPoint.indirect_crl.  rQ  r5   c                    U R                   $ r"   )r!  ro   s    r3   r'  6IssuingDistributionPoint.only_contains_attribute_certs2  s    222r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   %IssuingDistributionPoint.public_bytes6  r   r5   )r  r   r!  r  r  r"  r  N)r  r   r  r  r#  r   r$  r   r%  r  r&  r   r'  r   rH   r\   r   r   rG   r   r  re  r  rq   )r^   r_   r`   ra   r   ISSUING_DISTRIBUTION_POINTrS   rR   r   r   r   r   r  r  r#  r$  r%  r&  r'  r$   rb   rJ   r5   r3   r  r    s   

1
1CS,6S, 8S, #'	S,
 !%S, 9S, S, (,S, 
S,j



   # # . . , , '	&' '
 " " 3 36r5   r  c                      \ rS rSr\R
                  r        SS jr\SS j5       r	\SS j5       r
\SS j5       rSS jrSS jrSS jrSS	 jrS
rg)MSCertificateTemplatei:  c                    [        U[        5      (       d  [        S5      eXl        Ub  [        U[        5      (       a  Ub   [        U[        5      (       d  [        S5      eX l        X0l        g )Noid must be an ObjectIdentifierz8major_version and minor_version must be integers or None)r#   r   r   _template_idrI   _major_version_minor_version)r;   template_idmajor_versionminor_versions       r3   rR   MSCertificateTemplate.__init__=  sf     +'788=>>'%j.L.L%j.L.LJ  ,+r5   c                    U R                   $ r"   )rE  ro   s    r3   rH  !MSCertificateTemplate.template_idQ  r\  r5   c                    U R                   $ r"   )rF  ro   s    r3   rI  #MSCertificateTemplate.major_versionU  rJ  r5   c                    U R                   $ r"   )rG  ro   s    r3   rJ  #MSCertificateTemplate.minor_versionY  rJ  r5   c                V    SU R                    SU R                   SU R                   S3$ )Nz#<MSCertificateTemplate(template_id=z, major_version=z, minor_version=r   )rH  rI  rJ  ro   s    r3   r   MSCertificateTemplate.__repr__]  s?    1$2B2B1C D!//0 1!//04	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r"   )r#   rB  r   rH  rI  rJ  r   s     r3   r   MSCertificateTemplate.__eq__d  sc    %!677!!  1 11 :""e&9&99:""e&9&99	
r5   c                Z    [        U R                  U R                  U R                  45      $ r"   )r   rH  rI  rJ  ro   s    r3   r   MSCertificateTemplate.__hash__n  s&    T%%t'9'94;M;MNOOr5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   "MSCertificateTemplate.public_bytesq  r   r5   )rF  rG  rE  N)rH  r   rI  r   rJ  r   rH   r\   rN  r   r   r   rG   rq   )r^   r_   r`   ra   r   MS_CERTIFICATE_TEMPLATErS   rR   r   rH  rI  rJ  r   r   r   r$   rb   rJ   r5   r3   rB  rB  :  s    

.
.C,%, ", "	,
 
,( ! ! # # # #

P6r5   rB  c                      \ rS rSr        SS jr\SS j5       r\SS j5       r\SS j5       rSS jr	SS jr
SS jrS	rg
)NamingAuthorityiu  c                    Ub   [        U[        5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      eXl        X l        X0l        g )Nzid must be an ObjectIdentifierzurl must be a strztext must be a str)r#   r   r   r[   _id_url_text)r;   idurltexts       r3   rR   NamingAuthority.__init__v  sl     >*R1A"B"B<==?:c3#7#7/00JtS$9$9011	
r5   c                    U R                   $ r"   )r^  ro   s    r3   ra  NamingAuthority.id  rY  r5   c                    U R                   $ r"   )r_  ro   s    r3   rb  NamingAuthority.url  r  r5   c                    U R                   $ r"   )r`  ro   s    r3   rc  NamingAuthority.text  s    zzr5   c                V    SU R                    SU R                   SU R                   S3$ )Nz<NamingAuthority(id=z, url=z, text=r   )ra  rb  rc  ro   s    r3   r   NamingAuthority.__repr__  s1    ''&
'$))B@	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r"   )r#   r\  r   ra  rb  rc  r   s     r3   r   NamingAuthority.__eq__  sV    %11!! GGuxx (EII%(		UZZ'	
r5   c                Z    [        U R                  U R                  U R                  45      $ r"   )r   ra  rb  rc  ro   s    r3   r   NamingAuthority.__hash__  s)    		
 	
r5   )r^  r`  r_  N)ra  ObjectIdentifier | Nonerb  r>  rc  r>  rH   r\   )rH   rq  r?  r   r   rG   )r^   r_   r`   ra   rR   r   ra  rb  rc  r   r   r   rb   rJ   r5   r3   r\  r\  u  sx    #  	
 
&      


r5   r\  c                      \ rS rSr            SS jr\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
SS jrSS	 jrSS
 jrSrg)ProfessionInfoi  c                   Ub   [        U[        5      (       d  [        S5      e[        U5      n[	        S U 5       5      (       d  [        S5      eUb-  [        U5      n[	        S U 5       5      (       d  [        S5      eUb   [        U[
        5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      eXl        X l        X0l	        X@l
        XPl        g )N*naming_authority must be a NamingAuthorityc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   )r#   r[   )r   items     r3   r   *ProfessionInfo.__init__.<locals>.<genexpr>  s     F5ET:dC((5Er   z5Every item in the profession_items list must be a strc              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   rX  )r   rS   s     r3   r   rx    s      =Lc
3 011_r   zBEvery item in the profession_oids list must be an ObjectIdentifierz!registration_number must be a strz!add_profession_info must be bytes)r#   r\  r   ry   r   r[   rr   _naming_authority_profession_items_profession_oids_registration_number_add_profession_info)r;   naming_authorityprofession_itemsprofession_oidsregistration_numberadd_profession_infos         r3   rR   ProfessionInfo.__init__  s    '
o1
 1
 HII 01F5EFFFG  &"?3O =L    ' 
 *:4
 4
 ?@@*:4
 4
 ?@@!1!1 /$7!$7!r5   c                    U R                   $ r"   rz  ro   s    r3   r  ProfessionInfo.naming_authority  r:  r5   c                    U R                   $ r"   )r{  ro   s    r3   r  ProfessionInfo.profession_items  r:  r5   c                    U R                   $ r"   )r|  ro   s    r3   r  ProfessionInfo.profession_oids  rM  r5   c                    U R                   $ r"   )r}  ro   s    r3   r  "ProfessionInfo.registration_number      (((r5   c                    U R                   $ r"   )r~  ro   s    r3   r  "ProfessionInfo.add_profession_info  r  r5   c                    SU R                    SU R                   SU R                   SU R                   SU R                  < S3$ )Nz!<ProfessionInfo(naming_authority=z, profession_items=z, profession_oids=z, registration_number=z, add_profession_info=r   )r  r  r  r  r  ro   s    r3   r   ProfessionInfo.__repr__  sb    /0E0E/F G  $ 5 56 7#334 5##'#;#;"< =##'#;#;">b	B	
r5   c                j   [        U[        5      (       d  [        $ U R                  UR                  :H  =(       ay    U R                  UR                  :H  =(       aY    U R
                  UR
                  :H  =(       a9    U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   rs  r   r  r  r  r  r  r   s     r3   r   ProfessionInfo.__eq__  s    %00!! !!U%;%;; F%%)?)??F$$(=(==F ((E,E,EEF ((E,E,EE	
r5   c                    U R                   b  [        U R                   5      nOS n[        U R                  [        U R                  5      UU R
                  U R                  45      $ r"   )r  r   r   r  r  r  r  )r;   r  s     r3   r   ProfessionInfo.__hash__	  sa    +#D$8$89O"O%%d++,((((
 	
r5   )r~  rz  r{  r|  r}  N)r  NamingAuthority | Noner  ztyping.Iterable[str]r  z(typing.Iterable[ObjectIdentifier] | Noner  r>  r  r   rH   r\   rH   r  )rH   rL  )rH   zlist[ObjectIdentifier] | Noner?  r   r   r   rG   )r^   r_   r`   ra   rR   r   r  r  r  r  r  r   r   r   rb   rJ   r5   r3   rs  rs    s    +80+8 /+8 B	+8
 (+8 *+8 
+8Z & & & & % % ) ) ) )



r5   rs  c                      \ rS rSr        SS jr\SS j5       r\SS j5       r\SS j5       rSS jr	SS jr
SS jrS	rg
)	Admissioni	  c                   Ub   [        U[        5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      e[	        U5      n[        S U 5       5      (       d  [        S5      eXl        X l        X0l        g )Nz)admission_authority must be a GeneralNameru  c              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   )r#   rs  )r   infos     r3   r   %Admission.__init__.<locals>.<genexpr>(	  s      
9IJt^,,9Ir   z@Every item in the profession_infos list must be a ProfessionInfo)	r#   r   r   r\  ry   r   _admission_authorityrz  _profession_infos)r;   admission_authorityr  profession_infoss       r3   rR   Admission.__init__	  s     *:4
 4
 GHH'
o1
 1
 HII 01 
9I
 
 
 ! 
 %8!!1!1r5   c                    U R                   $ r"   )r  ro   s    r3   r  Admission.admission_authority4	  r  r5   c                    U R                   $ r"   r  ro   s    r3   r  Admission.naming_authority8	  r:  r5   c                    U R                   $ r"   )r  ro   s    r3   r  Admission.profession_infos<	  r:  r5   c                V    SU R                    SU R                   SU R                   S3$ )Nz<Admission(admission_authority=z, naming_authority=z, profession_infos=r   )r  r  r  ro   s    r3   r   Admission.__repr__@	  s?    -d.F.F-G H  $ 5 56 7  $ 5 56b:	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r"   )r#   r  r   r  r  r  r   s     r3   r   Admission.__eq__G	  sd    %++!! $$(A(AA @%%)?)??@%%)?)??	
r5   c                l    [        U R                  U R                  [        U R                  5      45      $ r"   )r   r  r  r   r  ro   s    r3   r   Admission.__hash__Q	  s4    ((%%d++,
 	
r5   )r  rz  r  N)r  GeneralName | Noner  r  r  ztyping.Iterable[ProfessionInfo]rH   r\   rH   r  r  )rH   zlist[ProfessionInfo]r   r   rG   )r^   r_   r`   ra   rR   r   r  r  r  r   r   r   rb   rJ   r5   r3   r  r  	  sx    2/2 12 :	2
 
2: ) ) & & & &


r5   r  c                      \ rS rSr\R
                  r      SS jr\" S5      u  r	r
r\SS j5       rSS jrSS jrSS jrSS jrS	rg
)
Admissionsi[	  c                    Ub   [        U[        5      (       d  [        S5      e[        U5      n[	        S U 5       5      (       d  [        S5      eXl        X l        g )Nzauthority must be a GeneralNamec              3  B   #    U  H  n[        U[        5      v   M     g 7fr"   )r#   r  )r   	admissions     r3   r   &Admissions.__init__.<locals>.<genexpr>g	  s      
>HJy),,jr   zBEvery item in the contents_of_admissions list must be an Admission)r#   r   r   ry   r   
_authority_admissions)r;   	authority
admissionss      r3   rR   Admissions.__init__^	  sg    
  I{)K)K=>>*%
 
>H
 
 
  
 $%r5   r  c                    U R                   $ r"   )r  ro   s    r3   r  Admissions.authorityt	  r  r5   c                <    SU R                    SU R                   S3$ )Nz<Admissions(authority=z, admissions=r   )r  r  ro   s    r3   r   Admissions.__repr__x	  s+    $T__$5 6**+2/	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r  r   r  r  r   s     r3   r   Admissions.__eq__~	  sE    %,,!! NNeoo- 6  E$5$55	
r5   c                V    [        U R                  [        U R                  5      45      $ r"   )r   r  r   r  ro   s    r3   r   Admissions.__hash__	  s!    T^^U4+;+;%<=>>r5   c                .    [         R                  " U 5      $ r"   r   ro   s    r3   r$   Admissions.public_bytes	  r   r5   )r  r  N)r  r  r  ztyping.Iterable[Admission]rH   r\   r  r   r   rG   rq   )r^   r_   r`   ra   r   
ADMISSIONSrS   rR   rK   r   r   r   r   r  r   r   r   r$   rb   rJ   r5   r3   r  r  [	  sg    

!
!C&%& /& 
	&( &<M%J"GX{ 

?6r5   r  c                  n    \ rS rSrSS jr\SS j5       r\SS j5       rSS jrSS jr	SS jr
SS jrS	rg
)r   i	  c                \    [        U[        5      (       d  [        S5      eXl        X l        g )NrD  )r#   r   r   r  r  )r;   rS   r   s      r3   rR   UnrecognizedExtension.__init__	  s&    #/00=>>	r5   c                    U R                   $ r"   r  ro   s    r3   rS   UnrecognizedExtension.oid	  r  r5   c                    U R                   $ r"   r  ro   s    r3   r   UnrecognizedExtension.value	  r  r5   c                >    SU R                    SU R                  < S3$ )Nz<UnrecognizedExtension(oid=r!  r   )rS   r   ro   s    r3   r   UnrecognizedExtension.__repr__	  s'    )$(( 4ZZN"&	
r5   c                    [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ r"   )r#   r   r   rS   r   r   s     r3   r   UnrecognizedExtension.__eq__	  s;    %!677!!xx599$Bu{{)BBr5   c                D    [        U R                  U R                  45      $ r"   )r   rS   r   ro   s    r3   r   UnrecognizedExtension.__hash__	  s    TXXtzz*++r5   c                    U R                   $ r"   )r   ro   s    r3   r$   "UnrecognizedExtension.public_bytes	  s    zzr5   )r  r  N)rS   r   r   rr   rH   r\   rN  rq   r   r   rG   )r^   r_   r`   ra   rR   r   rS   r   r   r   r   r$   rb   rJ   r5   r3   r   r   	  sD        
C,r5   r   )r0   r   rH   rr   )r<   r[   )q
__future__r   abcr  r-   r  rR  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   rK   	ExceptionrM   rg   ABCMetar   rv   r   r   r   r  r-  r  rP  rh  rw  r  r{  Enumr  r  r  r  r  r  r  r  r  _REASON_BIT_MAPPING_CRLREASONFLAGSr  r  _CRL_ENTRY_REASON_ENUM_TO_CODEr  r  r  r  r,  rU  rj  rv  r  r  r   _TLS_FEATURE_TYPE_TO_ENUMr  r  r  Genericr  r(  rU  ro  r  r  r  r  r  r  r  r  rB  r\  rs  r  r  r   )r   s   0r3   <module>r     sB  
 # 
      3 @ G O F
 
 
 C  >>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	0 Qq##QA&&  !##Qr" >6 >6B6- 6>6' 6'r(# (#V%$ %$P6} 6<6- 6&6M 6&6 6DUZZ  2@@AWWaZ@ 6} 6@B6} B6Jp6m p6f-;/0 -;`M0 M0`E6] E6PE6M E6PE6 E6P6 6:!6] !6H(6 (6V(6- (6V6 6:6m 6:_6} _6D86M 86v7
 7
td
 d
NB
 B
J06 06fM u) As   P