ó
    |ñ:i]m  ã            	      ó:  • 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  S SK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   S S
K!J"r"J#r#  S SK$J%r%  \R                  " SSS5      r&\RN                  \RP                  \RR                  \RT                  \RV                  \RX                  \RZ                  \R\                  \R^                  4   r0 " S S\15      r2      S)S jr3      S*S jr4S+S jr5 " S S5      r6 " S S5      r7 " S S\
Rp                  5      r9 " S S\15      r:\Rv                  r; " S S\Rx                  S9r=\=R}                  \Rz                  5         " S S\=5      r?\R€                  r@\R‚                  rA\R„                  rB\R†                  rC\Rˆ                  rD\RŠ                  rE\RŒ                  rF\RŽ                  rG\R�                  rH " S  S!5      rI " S" S#5      rJ " S$ S%5      rK " S& S'5      rLS,S( jrMg)-é    )ÚannotationsN)ÚIterable)Úutils)Úx509)Úhashes)ÚdsaÚecÚed448Úed25519ÚpaddingÚrsaÚx448Úx25519)Ú CertificateIssuerPrivateKeyTypesÚCertificatePublicKeyTypes)Ú	ExtensionÚ
ExtensionsÚExtensionTypeÚ_make_sequence_methods)ÚNameÚ	_ASN1Type)ÚObjectIdentifieriž  é   c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )ÚAttributeNotFoundé8   c                ó0   >• [         TU ]  U5        X l        g ©N)ÚsuperÚ__init__Úoid)ÚselfÚmsgr!   Ú	__class__s      €ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/cryptography/x509/base.pyr    ÚAttributeNotFound.__init__9   s   ø€ Ü‰Ñ˜ÔØ�ó    )r!   )r#   Ústrr!   r   ÚreturnÚNone©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r    Ú__static_attributes__Ú__classcell__©r$   s   @r%   r   r   8   s   ø† ÷õ r'   r   c                ó`   • U H(  nUR                   U R                   :X  d  M  [        S5      e   g )Nz$This extension has already been set.)r!   Ú
ValueError)Ú	extensionÚ
extensionsÚes      r%   Ú_reject_duplicate_extensionr8   >   s*   € ó
 ˆØ�5‰5�I—M‘MÕ!ÜÐCÓDÐDò r'   c                ó>   • U H  u  n  nX :X  d  M  [        S5      e   g )Nz$This attribute has already been set.)r4   )r!   Ú
attributesÚattr_oidÚ_s       r%   Ú_reject_duplicate_attributer=   H   s%   € ó
 %‰ˆ�!�QØ�?ÜÐCÓDÐDò %r'   c                ó    • U R                   b@  U R                  5       nU(       a  UO[        R                  " 5       nU R	                  SS9U-
  $ U $ )z†Normalizes a datetime to a naive datetime in UTC.

time -- datetime to normalize. Assumed to be in UTC if not timezone
        aware.
N©Útzinfo)r@   Ú	utcoffsetÚdatetimeÚ	timedeltaÚreplace)ÚtimeÚoffsets     r%   Ú_convert_to_naive_utc_timerG   R   sG   € ð ‡{�{ÑØ—‘Ó!ˆÞ!‘¤x×'9Ò'9Ó';ˆØ�|‰| 4ˆ|Ð(¨6Ñ1Ð1àˆr'   c                  ó    • \ rS rSr\R
                  R                  4       S
S j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rg	)Ú	Attributeé`   c                ó(   • Xl         X l        X0l        g r   )Ú_oidÚ_valueÚ_type)r"   r!   ÚvaluerN   s       r%   r    ÚAttribute.__init__a   s   € ð Œ	ØŒØ�
r'   c                ó   • U R                   $ r   )rL   ©r"   s    r%   r!   ÚAttribute.oidk   s   € à�y‰yÐr'   c                ó   • U R                   $ r   )rM   rR   s    r%   rO   ÚAttribute.valueo   s   € à�{‰{Ðr'   c                ó>   • SU R                    SU R                  < S3$ )Nz<Attribute(oid=z, value=ú)>)r!   rO   rR   s    r%   Ú__repr__ÚAttribute.__repr__s   s   € Ø  §¡ 
¨(°4·:±:±.ÀÐCÐCr'   c                óê   • [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a9    U R                  UR                  :H  =(       a    U R
                  UR
                  :H  $ r   )Ú
isinstancerI   ÚNotImplementedr!   rO   rN   )r"   Úothers     r%   Ú__eq__ÚAttribute.__eq__v   sV   € Ü˜%¤×+Ñ+Ü!Ð!ð �H‰H˜Ÿ	™	Ñ!÷ *Ø—
‘
˜eŸk™kÑ)÷*à—
‘
˜eŸk™kÑ)ð	
r'   c                óZ   • [        U R                  U R                  U R                  45      $ r   )Úhashr!   rO   rN   rR   s    r%   Ú__hash__ÚAttribute.__hash__€   s    € Ü�T—X‘X˜tŸz™z¨4¯:©:Ð6Ó7Ð7r'   )rL   rN   rM   N)r!   r   rO   ÚbytesrN   Úintr)   r*   )r)   r   )r)   rd   ©r)   r(   )r]   Úobjectr)   Úbool©r)   re   )r,   r-   r.   r/   r   Ú
UTF8StringrO   r    Úpropertyr!   rX   r^   rb   r0   © r'   r%   rI   rI   `   sv   † ð
 ×)Ñ)×/Ñ/ð	àðð ðð ð	ð
 
õð óó ðð óó ðôDô
÷8r'   rI   c                  óR   • \ rS rSr    SS jr\" S5      u  rrrS	S jr	S
S jr
Srg)Ú
Attributesé„   c                ó$   • [        U5      U l        g r   )ÚlistÚ_attributes)r"   r:   s     r%   r    ÚAttributes.__init__…   s   € ô   
Ó+ˆÕr'   rr   c                ó"   • SU R                    S3$ )Nz<Attributes(rW   ©rr   rR   s    r%   rX   ÚAttributes.__repr__�   s   € Ø˜d×.Ñ.Ð/¨rÐ2Ð2r'   c                ó\   • U  H  nUR                   U:X  d  M  Us  $    [        SU S3U5      e)NzNo z attribute was found)r!   r   )r"   r!   Úattrs      r%   Úget_attribute_for_oidÚ Attributes.get_attribute_for_oid�   s5   € ÛˆDØ�x‰x˜3�Ø’ñ ô   # c UÐ*>Ð ?ÀÓEÐEr'   ru   N)r:   zIterable[Attribute]r)   r*   rf   )r!   r   r)   rI   )r,   r-   r.   r/   r    r   Ú__len__Ú__iter__Ú__getitem__rX   ry   r0   rl   r'   r%   rn   rn   „   s7   † ð,à'ð,ð 
ô,ñ &<¸MÓ%JÑ"€GˆX�{ô3÷Fr'   rn   c                  ó   • \ rS rSrSrSrSrg)ÚVersioné˜   r   é   rl   N)r,   r-   r.   r/   Úv1Úv3r0   rl   r'   r%   r   r   ˜   s   † Ø	
€BØ	
ƒBr'   r   c                  ó,   ^ • \ rS rSrSU 4S jjrSrU =r$ )ÚInvalidVersioné�   c                ó0   >• [         TU ]  U5        X l        g r   )r   r    Úparsed_version)r"   r#   rˆ   r$   s      €r%   r    ÚInvalidVersion.__init__ž   s   ø€ Ü‰Ñ˜ÔØ,Õr'   )rˆ   )r#   r(   rˆ   re   r)   r*   r+   r2   s   @r%   r…   r…   �   s   ø† ÷-õ -r'   r…   c                  óÜ   • \ rS rSr\\R                  SS j5       5       r\\R                  S	S j5       5       r\\R                  S	S j5       5       r	\\R                  S
S j5       5       r
Srg)ÚRevokedCertificateé¦   c                ó   • g)z7
Returns the serial number of the revoked certificate.
Nrl   rR   s    r%   Úserial_numberÚ RevokedCertificate.serial_number§   ó   � r'   c                ó   • g)z8
Returns the date of when this certificate was revoked.
Nrl   rR   s    r%   Úrevocation_dateÚ"RevokedCertificate.revocation_date®   r�   r'   c                ó   • g)zT
Returns the date of when this certificate was revoked as a non-naive
UTC datetime.
Nrl   rR   s    r%   Úrevocation_date_utcÚ&RevokedCertificate.revocation_date_utcµ   r�   r'   c                ó   • g)zG
Returns an Extensions object containing a list of Revoked extensions.
Nrl   rR   s    r%   r6   ÚRevokedCertificate.extensions½   r�   r'   rl   Nri   ©r)   údatetime.datetime©r)   r   )r,   r-   r.   r/   rk   ÚabcÚabstractmethodrŽ   r’   r•   r6   r0   rl   r'   r%   r‹   r‹   ¦   sˆ   † ØØ×Ñóó ó ðð
 Ø×Ñóó ó ðð
 Ø×Ñóó ó ðð Ø×Ñóó ó ór'   r‹   )Ú	metaclassc                  óz   • \ 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r
g)Ú_RawRevokedCertificateéÉ   c                ó(   • Xl         X l        X0l        g r   ©Ú_serial_numberÚ_revocation_dateÚ_extensions©r"   rŽ   r’   r6   s       r%   r    Ú_RawRevokedCertificate.__init__Ê   ó   € ð ,ÔØ /ÔØ%Õr'   c                ó   • U R                   $ r   )r¤   rR   s    r%   rŽ   Ú$_RawRevokedCertificate.serial_numberÔ   s   € à×"Ñ"Ð"r'   c                ób   • [         R                  " S[        R                  SS9  U R                  $ )Nuk   Properties that return a naÃ¯ve datetime object have been deprecated. Please switch to revocation_date_utc.r�   )Ú
stacklevel)ÚwarningsÚwarnr   ÚDeprecatedIn42r¥   rR   s    r%   r’   Ú&_RawRevokedCertificate.revocation_dateØ   s.   € ä�Šð@ä× Ñ Øò		
ð ×$Ñ$Ð$r'   c                ód   • U R                   R                  [        R                  R                  S9$ )Nr?   )r¥   rD   rB   ÚtimezoneÚutcrR   s    r%   r•   Ú*_RawRevokedCertificate.revocation_date_utcâ   s(   € à×$Ñ$×,Ñ,´H×4EÑ4E×4IÑ4IÐ,ÐJÐJr'   c                ó   • U R                   $ r   )r¦   rR   s    r%   r6   Ú!_RawRevokedCertificate.extensionsæ   s   € à×ÑÐr'   ©r¦   r¥   r¤   N)rŽ   re   r’   rš   r6   r   ri   r™   r›   )r,   r-   r.   r/   r    rk   rŽ   r’   r•   r6   r0   rl   r'   r%   r    r    É   su   † ð&àð&ð +ð&ð ô	&ð ó#ó ð#ð ó%ó ð%ð óKó ðKð ó ó ó r'   r    c                  ó¢   • \ rS rSrS/ / 4     SS jjrSS jr      SS jrSS.       SS jjr SSSS.           SS	 jjjrS
r	g)Ú CertificateSigningRequestBuilderéû   Nc                ó(   • Xl         X l        X0l        g)z2
Creates an empty X.509 certificate request (v1).
N)Ú_subject_namer¦   rr   )r"   Úsubject_namer6   r:   s       r%   r    Ú)CertificateSigningRequestBuilder.__init__ü   s   € ð *ÔØ%ÔØ%Õr'   c                ó²   • [        U[        5      (       d  [        S5      eU R                  b  [	        S5      e[        XR                  U R                  5      $ )z6
Sets the certificate requestor's distinguished name.
úExpecting x509.Name object.ú&The subject name may only be set once.)r[   r   Ú	TypeErrorr½   r4   rº   r¦   rr   ©r"   Únames     r%   r¾   Ú-CertificateSigningRequestBuilder.subject_name	  sS   € ô ˜$¤×%Ñ%ÜÐ9Ó:Ð:Ø×ÑÑ)ÜÐEÓFÐFÜ/Ø×"Ñ" D×$4Ñ$4ó
ð 	
r'   c                óö   • [        U[        5      (       d  [        S5      e[        UR                  X!5      n[        X0R                  5        [        U R                  / U R                  QUPU R                  5      $ )z5
Adds an X.509 extension to the certificate request.
ú"extension must be an ExtensionType)
r[   r   rÃ   r   r!   r8   r¦   rº   r½   rr   ©r"   ÚextvalÚcriticalr5   s       r%   Úadd_extensionÚ.CertificateSigningRequestBuilder.add_extension  sm   € ô ˜&¤-×0Ñ0ÜÐ@ÓAÐAä˜fŸj™j¨(Ó;ˆ	Ü# I×/?Ñ/?Ô@ä/Ø×ÑØ*ˆd×ÑÐ* 	Ð*Ø×Ñó
ð 	
r'   )Ú_tagc               óx  • [        U[        5      (       d  [        S5      e[        U[        5      (       d  [        S5      eUb   [        U[        5      (       d  [        S5      e[        XR                  5        Ub  UR                  nOSn[        U R                  U R                  / U R                  QXU4P5      $ )z;
Adds an X.509 attribute with an OID and associated value.
zoid must be an ObjectIdentifierzvalue must be bytesNztag must be _ASN1Type)r[   r   rÃ   rd   r   r=   rr   rO   rº   r½   r¦   )r"   r!   rO   rÎ   Útags        r%   Úadd_attributeÚ.CertificateSigningRequestBuilder.add_attribute'  s®   € ô ˜#Ô/×0Ñ0ÜÐ=Ó>Ð>ä˜%¤×'Ñ'ÜÐ1Ó2Ð2àÑ¤J¨t´Y×$?Ñ$?ÜÐ3Ó4Ð4ä# C×)9Ñ)9Ô:àÑØ—*‘*‰CàˆCä/Ø×ÑØ×ÑØ2ˆd×ÑÐ2 ¨SÐ 1Ð2ó
ð 	
r'   ©Úrsa_paddingÚecdsa_deterministicc               óŽ  • U R                   c  [        S5      eUbd  [        U[        R                  [        R
                  45      (       d  [        S5      e[        U[        R                  5      (       d  [        S5      eUb*  [        U[        R                  5      (       d  [        S5      e[        R                  " U UUUU5      $ )z6
Signs the request using the requestor's private key.
z/A CertificateSigningRequest must have a subjectúPadding must be PSS or PKCS1v15ú&Padding is only supported for RSA keysú1Deterministic ECDSA is only supported for EC keys)r½   r4   r[   r   ÚPSSÚPKCS1v15rÃ   r   ÚRSAPrivateKeyr	   ÚEllipticCurvePrivateKeyÚ	rust_x509Úcreate_x509_csr©r"   Úprivate_keyÚ	algorithmÚbackendrÔ   rÕ   s         r%   ÚsignÚ%CertificateSigningRequestBuilder.signG  s¶   € ð ×ÑÑ%ÜÐNÓOÐOàÑ"Ü˜k¬G¯K©K¼×9IÑ9IÐ+J×KÑKÜÐ AÓBÐBÜ˜k¬3×+<Ñ+<×=Ñ=ÜÐ HÓIÐIàÑ*Ü˜k¬2×+EÑ+E×FÑFÜØGóð ô ×(Ò(ØØØØØó
ð 	
r'   )rr   r¦   r½   )r¾   úName | Noner6   úlist[Extension[ExtensionType]]r:   ú0list[tuple[ObjectIdentifier, bytes, int | None]])rÅ   r   r)   rº   )rÊ   r   rË   rh   r)   rº   )r!   r   rO   rd   rÎ   z_ASN1Type | Noner)   rº   r   )rá   r   râ   ú_AllowedHashTypes | Nonerã   ú
typing.AnyrÔ   ú%padding.PSS | padding.PKCS1v15 | NonerÕ   úbool | Noner)   ÚCertificateSigningRequest)
r,   r-   r.   r/   r    r¾   rÌ   rÑ   rä   r0   rl   r'   r%   rº   rº   û   sÙ   † ð %)Ø57ØGIð	&à!ð&ð 3ð&ð Eõ	&ô

ð
Ø#ð
Ø/3ð
à	)ô
ð. "&ñ
àð
ð ð
ð
 ð
ð 
*õ
ðH #ð	!
ð >BØ+/ñ!
à5ð!
ð ,ð!
ð ð	!
ð ;ð!
ð )ð!
ð 
#÷!
ñ !
r'   rº   c                  óä   • \ rS rSr% S\S'   SSSSSS/ 4               SS j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r SSSS.           SS jjjrSrg)ÚCertificateBuilderik  rç   r¦   Nc                ó‚   • [         R                  U l        Xl        X l        X0l        X@l        XPl        X`l        Xpl	        g r   )
r   rƒ   Ú_versionÚ_issuer_namer½   Ú_public_keyr¤   Ú_not_valid_beforeÚ_not_valid_afterr¦   )r"   Úissuer_namer¾   Ú
public_keyrŽ   Únot_valid_beforeÚnot_valid_afterr6   s           r%   r    ÚCertificateBuilder.__init__n  s9   € ô  Ÿ
™
ˆŒØ'ÔØ)ÔØ%ÔØ+ÔØ!1ÔØ /ÔØ%Õr'   c           	     ó  • [        U[        5      (       d  [        S5      eU R                  b  [	        S5      e[        UU R                  U R                  U R                  U R                  U R                  U R                  5      $ )z#
Sets the CA's distinguished name.
rÁ   ú%The issuer name may only be set once.)r[   r   rÃ   rò   r4   rï   r½   ró   r¤   rô   rõ   r¦   rÄ   s     r%   rö   ÚCertificateBuilder.issuer_name�  s{   € ô ˜$¤×%Ñ%ÜÐ9Ó:Ð:Ø×ÑÑ(ÜÐDÓEÐEÜ!ØØ×ÑØ×ÑØ×ÑØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r'   c           	     ó  • [        U[        5      (       d  [        S5      eU R                  b  [	        S5      e[        U R                  UU R                  U R                  U R                  U R                  U R                  5      $ )z*
Sets the requestor's distinguished name.
rÁ   rÂ   )r[   r   rÃ   r½   r4   rï   rò   ró   r¤   rô   rõ   r¦   rÄ   s     r%   r¾   ÚCertificateBuilder.subject_name“  s{   € ô ˜$¤×%Ñ%ÜÐ9Ó:Ð:Ø×ÑÑ)ÜÐEÓFÐFÜ!Ø×ÑØØ×ÑØ×ÑØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r'   c           
     óÖ  • [        U[        R                  [        R                  [
        R                  [        R                  [        R                  [        R                  [        R                  45      (       d  [        S5      eU R                   b  [#        S5      e[%        U R&                  U R(                  UU R*                  U R,                  U R.                  U R0                  5      $ )zD
Sets the requestor's public key (as found in the signing request).
z‰Expecting one of DSAPublicKey, RSAPublicKey, EllipticCurvePublicKey, Ed25519PublicKey, Ed448PublicKey, X25519PublicKey, or X448PublicKey.z$The public key may only be set once.)r[   r   ÚDSAPublicKeyr   ÚRSAPublicKeyr	   ÚEllipticCurvePublicKeyr   ÚEd25519PublicKeyr
   ÚEd448PublicKeyr   ÚX25519PublicKeyr   ÚX448PublicKeyrÃ   ró   r4   rï   rò   r½   r¤   rô   rõ   r¦   )r"   Úkeys     r%   r÷   ÚCertificateBuilder.public_key¥  sÌ   € ô Øä× Ñ Ü× Ñ Ü×)Ñ)Ü×(Ñ(Ü×$Ñ$Ü×&Ñ&Ü×"Ñ"ð÷
ñ 
ô ð!óð ð ×ÑÑ'ÜÐCÓDÐDÜ!Ø×ÑØ×ÑØØ×ÑØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r'   c           	     ól  • [        U[        5      (       d  [        S5      eU R                  b  [	        S5      eUS::  a  [	        S5      eUR                  5       S:¼  a  [	        S5      e[        U R                  U R                  U R                  UU R                  U R                  U R                  5      $ )z%
Sets the certificate serial number.
ú'Serial number must be of integral type.ú'The serial number may only be set once.r   z%The serial number should be positive.é    ú3The serial number should not be more than 159 bits.)r[   re   rÃ   r¤   r4   Ú
bit_lengthrï   rò   r½   ró   rô   rõ   r¦   ©r"   Únumbers     r%   rŽ   Ú CertificateBuilder.serial_numberÊ  s³   € ô ˜&¤#×&Ñ&ÜÐEÓFÐFØ×ÑÑ*ÜÐFÓGÐGØ�Q‹;ÜÐDÓEÐEð ×ÑÓ #Ó%ÜØEóð ô "Ø×ÑØ×ÑØ×ÑØØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r'   c           	     ó®  • [        U[        R                  5      (       d  [        S5      eU R                  b  [	        S5      e[        U5      nU[        :  a  [	        S5      eU R                  b  XR                  :”  a  [	        S5      e[        U R                  U R                  U R                  U R                  UU R                  U R                  5      $ )z'
Sets the certificate activation time.
úExpecting datetime object.z*The not valid before may only be set once.z>The not valid before date must be on or after 1950 January 1).zBThe not valid before date must be before the not valid after date.)r[   rB   rÃ   rô   r4   rG   Ú_EARLIEST_UTC_TIMErõ   rï   rò   r½   ró   r¤   r¦   ©r"   rE   s     r%   rø   Ú#CertificateBuilder.not_valid_beforeå  sÓ   € ô ˜$¤× 1Ñ 1×2Ñ2ÜÐ8Ó9Ð9Ø×!Ñ!Ñ-ÜÐIÓJÐJÜ)¨$Ó/ˆØÔ$Ó$Üð$óð ð × Ñ Ñ,°×8MÑ8MÓ1MÜðóð ô "Ø×ÑØ×ÑØ×ÑØ×ÑØØ×!Ñ!Ø×Ñó
ð 	
r'   c           	     ó®  • [        U[        R                  5      (       d  [        S5      eU R                  b  [	        S5      e[        U5      nU[        :  a  [	        S5      eU R                  b  XR                  :  a  [	        S5      e[        U R                  U R                  U R                  U R                  U R                  UU R                  5      $ )z'
Sets the certificate expiration time.
r  z)The not valid after may only be set once.z<The not valid after date must be on or after 1950 January 1.zAThe not valid after date must be after the not valid before date.)r[   rB   rÃ   rõ   r4   rG   r  rô   rï   rò   r½   ró   r¤   r¦   r  s     r%   rù   Ú"CertificateBuilder.not_valid_after  sÒ   € ô ˜$¤× 1Ñ 1×2Ñ2ÜÐ8Ó9Ð9Ø× Ñ Ñ,ÜÐHÓIÐIÜ)¨$Ó/ˆØÔ$Ó$ÜØNóð ð ×"Ñ"Ñ.Ø×-Ñ-Ó-äðóð ô "Ø×ÑØ×ÑØ×ÑØ×ÑØ×"Ñ"ØØ×Ñó
ð 	
r'   c           
     óN  • [        U[        5      (       d  [        S5      e[        UR                  X!5      n[        X0R                  5        [        U R                  U R                  U R                  U R                  U R                  U R                  / U R                  QUP5      $ )z-
Adds an X.509 extension to the certificate.
rÈ   )r[   r   rÃ   r   r!   r8   r¦   rï   rò   r½   ró   r¤   rô   rõ   rÉ   s       r%   rÌ   Ú CertificateBuilder.add_extension!  s‘   € ô ˜&¤-×0Ñ0ÜÐ@ÓAÐAä˜fŸj™j¨(Ó;ˆ	Ü# I×/?Ñ/?Ô@ä!Ø×ÑØ×ÑØ×ÑØ×ÑØ×"Ñ"Ø×!Ñ!Ø*ˆd×ÑÐ* 	Ð*ó
ð 	
r'   rÓ   c               ó~  • U R                   c  [        S5      eU R                  c  [        S5      eU R                  c  [        S5      eU R                  c  [        S5      eU R
                  c  [        S5      eU R                  c  [        S5      eUbd  [        U[        R                  [        R                  45      (       d  [        S5      e[        U[        R                  5      (       d  [        S5      eUb*  [        U[        R                  5      (       d  [        S	5      e[         R"                  " U UUUU5      $ )
z3
Signs the certificate using the CA's private key.
z&A certificate must have a subject namez&A certificate must have an issuer namez'A certificate must have a serial numberz/A certificate must have a not valid before timez.A certificate must have a not valid after timez$A certificate must have a public keyr×   rØ   rÙ   )r½   r4   rò   r¤   rô   rõ   ró   r[   r   rÚ   rÛ   rÃ   r   rÜ   r	   rÝ   rÞ   Úcreate_x509_certificaterà   s         r%   rä   ÚCertificateBuilder.sign7  s.  € ð ×ÑÑ%ÜÐEÓFÐFà×ÑÑ$ÜÐEÓFÐFà×ÑÑ&ÜÐFÓGÐGà×!Ñ!Ñ)ÜÐNÓOÐOà× Ñ Ñ(ÜÐMÓNÐNà×ÑÑ#ÜÐCÓDÐDàÑ"Ü˜k¬G¯K©K¼×9IÑ9IÐ+J×KÑKÜÐ AÓBÐBÜ˜k¬3×+<Ñ+<×=Ñ=ÜÐ HÓIÐIàÑ*Ü˜k¬2×+EÑ+E×FÑFÜØGóð ô ×0Ò0ØØØØØó
ð 	
r'   )r¦   rò   rõ   rô   ró   r¤   r½   rñ   )rö   ræ   r¾   ræ   r÷   z CertificatePublicKeyTypes | NonerŽ   ú
int | Nonerø   údatetime.datetime | Nonerù   r   r6   rç   r)   r*   )rÅ   r   r)   rï   )r  r   r)   rï   )r  re   r)   rï   )rE   rš   r)   rï   )rÊ   r   rË   rh   r)   rï   r   )rá   r   râ   ré   rã   rê   rÔ   rë   rÕ   rì   r)   ÚCertificate)r,   r-   r.   r/   Ú__annotations__r    rö   r¾   r÷   rŽ   rø   rù   rÌ   rä   r0   rl   r'   r%   rï   rï   k  s  ‡ Ø/Ó/ð $(Ø$(Ø7;Ø$(Ø59Ø48Ø57ð&à ð&ð "ð&ð 5ð	&ð
 "ð&ð 3ð&ð 2ð&ð 3ð&ð 
õ&ô&
ô$
ð$#
à&ð#
ð 
ô#
ôJ
ô6
ô:
ð>
Ø#ð
Ø/3ð
à	ô
ð4 #ð	0
ð >BØ+/ñ0
à5ð0
ð ,ð0
ð ð	0
ð ;ð0
ð )ð0
ð 
÷0
ñ 0
r'   rï   c                  óâ   • \ rS rSr% S\S'   S\S'   SSS/ / 4         SS jjr    SS jr    SS	 jr    SS
 jr      SS jr	    SS jr
 SSSS.           SS jjjrSrg)Ú CertificateRevocationListBuilderij  rç   r¦   úlist[RevokedCertificate]Ú_revoked_certificatesNc                ó@   • Xl         X l        X0l        X@l        XPl        g r   )rò   Ú_last_updateÚ_next_updater¦   r&  )r"   rö   Úlast_updateÚnext_updater6   Úrevoked_certificatess         r%   r    Ú)CertificateRevocationListBuilder.__init__n  s"   € ð (ÔØ'ÔØ'ÔØ%ÔØ%9Õ"r'   c                óà   • [        U[        5      (       d  [        S5      eU R                  b  [	        S5      e[        UU R                  U R                  U R                  U R                  5      $ )NrÁ   rü   )
r[   r   rÃ   rò   r4   r$  r(  r)  r¦   r&  )r"   rö   s     r%   rö   Ú,CertificateRevocationListBuilder.issuer_name|  si   € ô ˜+¤t×,Ñ,ÜÐ9Ó:Ð:Ø×ÑÑ(ÜÐDÓEÐEÜ/ØØ×ÑØ×ÑØ×ÑØ×&Ñ&ó
ð 	
r'   c                ó‚  • [        U[        R                  5      (       d  [        S5      eU R                  b  [	        S5      e[        U5      nU[        :  a  [	        S5      eU R                  b  XR                  :”  a  [	        S5      e[        U R                  UU R                  U R                  U R                  5      $ )Nr  ú!Last update may only be set once.ú8The last update date must be on or after 1950 January 1.z9The last update date must be before the next update date.)r[   rB   rÃ   r(  r4   rG   r  r)  r$  rò   r¦   r&  )r"   r*  s     r%   r*  Ú,CertificateRevocationListBuilder.last_update‹  s½   € ô ˜+¤x×'8Ñ'8×9Ñ9ÜÐ8Ó9Ð9Ø×ÑÑ(ÜÐ@ÓAÐAÜ0°Ó=ˆØÔ+Ó+ÜØJóð ð ×ÑÑ(¨[×;LÑ;LÓ-LÜØKóð ô 0Ø×ÑØØ×ÑØ×ÑØ×&Ñ&ó
ð 	
r'   c                ó‚  • [        U[        R                  5      (       d  [        S5      eU R                  b  [	        S5      e[        U5      nU[        :  a  [	        S5      eU R                  b  XR                  :  a  [	        S5      e[        U R                  U R                  UU R                  U R                  5      $ )Nr  r1  r2  z8The next update date must be after the last update date.)r[   rB   rÃ   r)  r4   rG   r  r(  r$  rò   r¦   r&  )r"   r+  s     r%   r+  Ú,CertificateRevocationListBuilder.next_update£  s½   € ô ˜+¤x×'8Ñ'8×9Ñ9ÜÐ8Ó9Ð9Ø×ÑÑ(ÜÐ@ÓAÐAÜ0°Ó=ˆØÔ+Ó+ÜØJóð ð ×ÑÑ(¨[×;LÑ;LÓ-LÜØJóð ô 0Ø×ÑØ×ÑØØ×ÑØ×&Ñ&ó
ð 	
r'   c                ó"  • [        U[        5      (       d  [        S5      e[        UR                  X!5      n[        X0R                  5        [        U R                  U R                  U R                  / U R                  QUPU R                  5      $ )z=
Adds an X.509 extension to the certificate revocation list.
rÈ   )r[   r   rÃ   r   r!   r8   r¦   r$  rò   r(  r)  r&  rÉ   s       r%   rÌ   Ú.CertificateRevocationListBuilder.add_extension»  s   € ô ˜&¤-×0Ñ0ÜÐ@ÓAÐAä˜fŸj™j¨(Ó;ˆ	Ü# I×/?Ñ/?Ô@Ü/Ø×ÑØ×ÑØ×ÑØ*ˆd×ÑÐ* 	Ð*Ø×&Ñ&ó
ð 	
r'   c                óÌ   • [        U[        5      (       d  [        S5      e[        U R                  U R
                  U R                  U R                  / U R                  QUP5      $ )z(
Adds a revoked certificate to the CRL.
z)Must be an instance of RevokedCertificate)	r[   r‹   rÃ   r$  rò   r(  r)  r¦   r&  )r"   Úrevoked_certificates     r%   Úadd_revoked_certificateÚ8CertificateRevocationListBuilder.add_revoked_certificateÎ  sd   € ô Ð-Ô/A×BÑBÜÐGÓHÐHä/Ø×ÑØ×ÑØ×ÑØ×ÑØ>ˆd×(Ñ(Ð>Ð*=Ð>ó
ð 	
r'   rÓ   c               óî  • U R                   c  [        S5      eU R                  c  [        S5      eU R                  c  [        S5      eUbd  [	        U[
        R                  [
        R                  45      (       d  [        S5      e[	        U[        R                  5      (       d  [        S5      eUb*  [	        U[        R                  5      (       d  [        S5      e[        R                  " U UUUU5      $ )NzA CRL must have an issuer namez"A CRL must have a last update timez"A CRL must have a next update timer×   rØ   rÙ   )rò   r4   r(  r)  r[   r   rÚ   rÛ   rÃ   r   rÜ   r	   rÝ   rÞ   Úcreate_x509_crlrà   s         r%   rä   Ú%CertificateRevocationListBuilder.signß  sæ   € ð ×ÑÑ$ÜÐ=Ó>Ð>à×ÑÑ$ÜÐAÓBÐBà×ÑÑ$ÜÐAÓBÐBàÑ"Ü˜k¬G¯K©K¼×9IÑ9IÐ+J×KÑKÜÐ AÓBÐBÜ˜k¬3×+<Ñ+<×=Ñ=ÜÐ HÓIÐIàÑ*Ü˜k¬2×+EÑ+E×FÑFÜØGóð ô ×(Ò(ØØØØØó
ð 	
r'   )r¦   rò   r(  r)  r&  )
rö   ræ   r*  r   r+  r   r6   rç   r,  r%  )rö   r   r)   r$  )r*  rš   r)   r$  )r+  rš   r)   r$  )rÊ   r   rË   rh   r)   r$  )r9  r‹   r)   r$  r   )rá   r   râ   ré   rã   rê   rÔ   rë   rÕ   rì   r)   ÚCertificateRevocationList)r,   r-   r.   r/   r"  r    rö   r*  r+  rÌ   r:  rä   r0   rl   r'   r%   r$  r$  j  s  ‡ Ø/Ó/Ø3Ó3ð $(Ø04Ø04Ø57Ø9;ð:à ð:ð .ð:ð .ð	:ð
 3ð:ð 7õ:ð
Øð
à	)ô
ð
Ø,ð
à	)ô
ð0
Ø,ð
à	)ô
ð0
Ø#ð
Ø/3ð
à	)ô
ð&
Ø#5ð
à	)ô
ð* #ð	$
ð >BØ+/ñ$
à5ð$
ð ,ð$
ð ð	$
ð ;ð$
ð )ð$
ð 
#÷$
ñ $
r'   r$  c                  ór   • \ rS rSrSS/ 4     S	S jjrS
S jr    SS jr      SS jrSSS jjrSr	g)ÚRevokedCertificateBuilderi  Nc                ó(   • Xl         X l        X0l        g r   r£   r§   s       r%   r    Ú"RevokedCertificateBuilder.__init__  r©   r'   c                ó  • [        U[        5      (       d  [        S5      eU R                  b  [	        S5      eUS::  a  [	        S5      eUR                  5       S:¼  a  [	        S5      e[        XR                  U R                  5      $ )Nr  r  r   z$The serial number should be positiver  r  )	r[   re   rÃ   r¤   r4   r  rA  r¥   r¦   r  s     r%   rŽ   Ú'RevokedCertificateBuilder.serial_number  s‰   € Ü˜&¤#×&Ñ&ÜÐEÓFÐFØ×ÑÑ*ÜÐFÓGÐGØ�Q‹;ÜÐCÓDÐDð ×ÑÓ #Ó%ÜØEóð ô )Ø×)Ñ)¨4×+;Ñ+;ó
ð 	
r'   c                ó  • [        U[        R                  5      (       d  [        S5      eU R                  b  [	        S5      e[        U5      nU[        :  a  [	        S5      e[        U R                  XR                  5      $ )Nr  z)The revocation date may only be set once.z7The revocation date must be on or after 1950 January 1.)
r[   rB   rÃ   r¥   r4   rG   r  rA  r¤   r¦   r  s     r%   r’   Ú)RevokedCertificateBuilder.revocation_date#  s~   € ô ˜$¤× 1Ñ 1×2Ñ2ÜÐ8Ó9Ð9Ø× Ñ Ñ,ÜÐHÓIÐIÜ)¨$Ó/ˆØÔ$Ó$ÜØIóð ô )Ø×Ñ ×'7Ñ'7ó
ð 	
r'   c                óö   • [        U[        5      (       d  [        S5      e[        UR                  X!5      n[        X0R                  5        [        U R                  U R                  / U R                  QUP5      $ )NrÈ   )
r[   r   rÃ   r   r!   r8   r¦   rA  r¤   r¥   rÉ   s       r%   rÌ   Ú'RevokedCertificateBuilder.add_extension3  sm   € ô ˜&¤-×0Ñ0ÜÐ@ÓAÐAä˜fŸj™j¨(Ó;ˆ	Ü# I×/?Ñ/?Ô@Ü(Ø×ÑØ×!Ñ!Ø*ˆd×ÑÐ* 	Ð*ó
ð 	
r'   c                óÊ   • U R                   c  [        S5      eU R                  c  [        S5      e[        U R                   U R                  [	        U R
                  5      5      $ )Nz/A revoked certificate must have a serial numberz1A revoked certificate must have a revocation date)r¤   r4   r¥   r    r   r¦   )r"   rã   s     r%   ÚbuildÚRevokedCertificateBuilder.buildA  se   € Ø×ÑÑ&ÜÐNÓOÐOØ× Ñ Ñ(ÜØCóð ô &Ø×ÑØ×!Ñ!Ü�t×'Ñ'Ó(ó
ð 	
r'   r¸   )rŽ   r  r’   r   r6   rç   )r  re   r)   rA  )rE   rš   r)   rA  )rÊ   r   rË   rh   r)   rA  r   )rã   rê   r)   r‹   )
r,   r-   r.   r/   r    rŽ   r’   rÌ   rK  r0   rl   r'   r%   rA  rA    so   † ð %)Ø48Ø57ð	&à!ð&ð 2ð&ð 3õ	&ô
ð$
Ø%ð
à	"ô
ð 
Ø#ð
Ø/3ð
à	"ô
÷
ñ 
r'   rA  c                 ó\   • [         R                  [        R                  " S5      S5      S-	  $ )Né   Úbigr   )re   Ú
from_bytesÚosÚurandomrl   r'   r%   Úrandom_serial_numberrS  O  s    € Ü�>‰>œ"Ÿ*š* R›.¨%Ó0°AÑ5Ð5r'   )r5   zExtension[ExtensionType]r6   rç   r)   r*   )r!   r   r:   rè   r)   r*   )rE   rš   r)   rš   ri   )NÚ
__future__r   rœ   rB   rQ  Útypingr®   Úcollections.abcr   Úcryptographyr   Ú"cryptography.hazmat.bindings._rustr   rÞ   Úcryptography.hazmat.primitivesr   Ú)cryptography.hazmat.primitives.asymmetricr   r	   r
   r   r   r   r   r   Ú/cryptography.hazmat.primitives.asymmetric.typesr   r   Úcryptography.x509.extensionsr   r   r   r   Úcryptography.x509.namer   r   Úcryptography.x509.oidr   r  ÚUnionÚSHA224ÚSHA256ÚSHA384ÚSHA512ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512Ú_AllowedHashTypesÚ	Exceptionr   r8   r=   rG   rI   rn   ÚEnumr   r…   r!  ÚABCMetar‹   Úregisterr    r?  rí   Úload_pem_x509_certificateÚload_der_x509_certificateÚload_pem_x509_certificatesÚload_pem_x509_csrÚload_der_x509_csrÚload_pem_x509_crlÚload_der_x509_crlrº   rï   r$  rA  rS  rl   r'   r%   Ú<module>rt     s#  ðõ
 #ã 
Û Û 	Û Û Ý $å Ý @Ý 1÷	÷ 	ó 	÷÷ó ÷ 3Ý 2à×&Ò& t¨Q°Ó2Ð ð —L‘LØ
‡M�MØ
‡M�MØ
‡M�MØ
‡M�MØ
‡O�OØ
‡O�OØ
‡O�OØ
‡O�Oðñ	Ð ô˜	ô ðEØ'ðEà.ðEð 
ôEðEØ	ðEà@ðEð 
ôEô÷!8ñ !8÷HFñ Fô(ˆe�j‰jô ô
-�Yô -ð ×#Ñ#€ô 3§;¡;ò ð@ × Ñ ˜I×8Ñ8Ô 9ô Ð/ô  ðD &×?Ñ?Ð Ø%×?Ñ?Ð ð &×?Ñ?Ð Ø%×?Ñ?Ð à&×AÑAÐ à×/Ñ/Ð Ø×/Ñ/Ð à×/Ñ/Ð Ø×/Ñ/Ð ÷m
ñ m
÷`|
ñ |
÷~Y
ñ Y
÷xF
ñ F
õR6r'   