Ë
    U¼SfE�  ã            	      ó  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z d dlmZmZ d dlmZmZmZmZmZmZmZmZ d dlmZmZmZ d dlmZmZmZm Z  d d	l!m"Z"m#Z# d d
l$m%Z%  ej                  ddd«      Z&ejN                  ejP                  ejR                  ejT                  ejV                  ejX                  ejZ                  ej\                  ej^                  f   Z0 G d„ de1«      Z2	 	 	 	 	 	 d.d„Z3	 	 	 	 	 	 d/d„Z4d0d„Z5 G d„ d«      Z6 G d„ d«      Z7 G d„ dejp                  «      Z9 G d„ de1«      Z: G d„ dejv                  ¬«      Z<e<j{                  ejx                  «        G d„ dejv                  ¬«      Z>e>j{                  ej|                  «        G d„ d e>«      Z? G d!„ d"ejv                  ¬«      Z@e@j{                  ej€                  «        G d#„ d$ejv                  ¬«      ZAeAj{                  ej‚                  «       ej„                  ZBej†                  ZCejˆ                  ZDejŠ                  ZEejŒ                  ZFejŽ                  ZGej�                  ZH G d%„ d&«      ZI G d'„ d(«      ZJ G d)„ d*«      ZK G d+„ d,«      ZLd1d-„ZMy)2é    )ÚannotationsN)Úutils)Úx509)ÚhashesÚserialization)ÚdsaÚecÚed448Úed25519ÚpaddingÚrsaÚx448Úx25519)Ú CertificateIssuerPrivateKeyTypesÚCertificateIssuerPublicKeyTypesÚCertificatePublicKeyTypes)Ú	ExtensionÚ
ExtensionsÚExtensionTypeÚ_make_sequence_methods)ÚNameÚ	_ASN1Type)ÚObjectIdentifieriž  é   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚAttributeNotFoundc                ó2   •— t         ‰| �  |«       || _        y ©N)ÚsuperÚ__init__Úoid)ÚselfÚmsgr!   Ú	__class__s      €úUC:\Users\user\Documents\project_loop\venv\Lib\site-packages\cryptography/x509/base.pyr    zAttributeNotFound.__init__9   s   ø€ Ü‰Ñ˜ÔØˆ�ó    )r#   Ústrr!   r   ÚreturnÚNone©Ú__name__Ú
__module__Ú__qualname__r    Ú__classcell__©r$   s   @r%   r   r   8   s   ø„ ÷ñ r&   r   c                óZ   — |D ]&  }|j                   | j                   k(  sŒt        d«      ‚ y )Nz$This extension has already been set.)r!   Ú
ValueError)Ú	extensionÚ
extensionsÚes      r%   Ú_reject_duplicate_extensionr5   >   s1   € ð
 ò EˆØ�5‰5�I—M‘MÓ!ÜÐCÓDÐDñEr&   c                ó:   — |D ]  \  }}}|| k(  sŒt        d«      ‚ y )Nz$This attribute has already been set.)r1   )r!   Ú
attributesÚattr_oidÚ_s       r%   Ú_reject_duplicate_attributer:   H   s.   € ð
 %ò E‰ˆ�!�QØ�s‹?ÜÐCÓDÐDñEr&   c                ó˜   — | j                   �=| j                  «       }|r|nt        j                  «       }| j	                  d¬«      |z
  S | S )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_timerD   R   sG   € ð ‡{�{ÐØ—‘Ó!ˆÙ!‘¤x×'9Ñ'9Ó';ˆØ�|‰| 4ˆ|Ó(¨6Ñ1Ð1àˆr&   c                  óŠ   — e Zd Zej                  j
                  f	 	 	 	 	 	 	 dd„Zed	d„«       Zed
d„«       Zdd„Z	dd„Z
dd„Zy)Ú	Attributec                ó.   — || _         || _        || _        y r   )Ú_oidÚ_valueÚ_type)r"   r!   ÚvaluerJ   s       r%   r    zAttribute.__init__a   s   € ð ˆŒ	ØˆŒØˆ�
r&   c                ó   — | j                   S r   )rH   ©r"   s    r%   r!   zAttribute.oidk   s   € à�y‰yÐr&   c                ó   — | j                   S r   )rI   rM   s    r%   rK   zAttribute.valueo   s   € à�{‰{Ðr&   c                ó<   — d| j                   › d| j                  ›d�S )Nz<Attribute(oid=z, value=ú)>)r!   rK   rM   s    r%   Ú__repr__zAttribute.__repr__s   s   € Ø  §¡ 
¨(°4·:±:°.ÀÐCÐCr&   c                óÌ   — t        |t        «      st        S | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S r   )Ú
isinstancerF   ÚNotImplementedr!   rK   rJ   ©r"   Úothers     r%   Ú__eq__zAttribute.__eq__v   sS   € Ü˜%¤Ô+Ü!Ð!ð �H‰H˜Ÿ	™	Ñ!ò *Ø—
‘
˜eŸk™kÑ)ò*à—
‘
˜eŸk™kÑ)ð	
r&   c                óZ   — t        | j                  | j                  | j                  f«      S r   )Úhashr!   rK   rJ   rM   s    r%   Ú__hash__zAttribute.__hash__€   s    € Ü�T—X‘X˜tŸz™z¨4¯:©:Ð6Ó7Ð7r&   N)r!   r   rK   ÚbytesrJ   Úintr(   r)   ©r(   r   ©r(   r[   ©r(   r'   ©rV   Úobjectr(   Úbool©r(   r\   )r+   r,   r-   r   Ú
UTF8StringrK   r    Úpropertyr!   rQ   rW   rZ   © r&   r%   rF   rF   `   sv   „ ð
 ×)Ñ)×/Ñ/ð	àðð ðð ð	ð
 
óð òó ðð òó ðóDó
ô8r&   rF   c                  óD   — e Zd Z	 	 	 	 dd„Z ed«      \  ZZZdd„Zdd„Z	y)	Ú
Attributesc                ó$   — t        |«      | _        y r   )ÚlistÚ_attributes)r"   r7   s     r%   r    zAttributes.__init__…   s   € ô   
Ó+ˆÕr&   rk   c                ó"   — d| j                   › d�S )Nz<Attributes(rP   )rk   rM   s    r%   rQ   zAttributes.__repr__�   s   € Ø˜d×.Ñ.Ð/¨rÐ2Ð2r&   c                óV   — | D ]  }|j                   |k(  sŒ|c S  t        d|› d�|«      ‚)NzNo z attribute was found)r!   r   )r"   r!   Úattrs      r%   Úget_attribute_for_oidz Attributes.get_attribute_for_oid�   s:   € Øò 	ˆDØ�x‰x˜3‹Ø’ð	ô   # c UÐ*>Ð ?ÀÓEÐEr&   N)r7   ztyping.Iterable[Attribute]r(   r)   r_   )r!   r   r(   rF   )
r+   r,   r-   r    r   Ú__len__Ú__iter__Ú__getitem__rQ   ro   rf   r&   r%   rh   rh   „   s7   „ ð,à.ð,ð 
ó,ñ &<¸MÓ%JÑ"€GˆX�{ó3ôFr&   rh   c                  ó   — e Zd ZdZdZy)ÚVersionr   é   N)r+   r,   r-   Úv1Úv3rf   r&   r%   rt   rt   ˜   s   „ Ø	
€BØ	
�Br&   rt   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚInvalidVersionc                ó2   •— t         ‰| �  |«       || _        y r   )r   r    Úparsed_version)r"   r#   r{   r$   s      €r%   r    zInvalidVersion.__init__ž   s   ø€ Ü‰Ñ˜ÔØ,ˆÕr&   )r#   r'   r{   r\   r(   r)   r*   r/   s   @r%   ry   ry   �   s   ø„ ÷-ñ -r&   ry   c                  óÈ  — e Zd Zej                  dd„«       Zeej                  dd„«       «       Zeej                  dd„«       «       Zej                  dd„«       Z	eej                  dd„«       «       Z
eej                  dd„«       «       Zeej                  dd„«       «       Zeej                  dd„«       «       Zeej                  dd	„«       «       Zeej                  dd
„«       «       Zeej                  	 	 dd„«       «       Zeej                  dd„«       «       Zeej                  	 	 dd„«       «       Zeej                  d d„«       «       Zeej                  d!d„«       «       Zeej                  d!d„«       «       Zeej                  d!d„«       «       Zej                  d"d„«       Zej                  dd„«       Zej                  d#d„«       Zej                  d$d„«       Zy)%ÚCertificatec                 ó   — y©z4
        Returns bytes using digest passed.
        Nrf   ©r"   Ú	algorithms     r%   ÚfingerprintzCertificate.fingerprint¤   ó   � r&   c                 ó   — y)z3
        Returns certificate serial number
        Nrf   rM   s    r%   Úserial_numberzCertificate.serial_numberª   rƒ   r&   c                 ó   — y)z1
        Returns the certificate version
        Nrf   rM   s    r%   ÚversionzCertificate.version±   rƒ   r&   c                 ó   — y©z(
        Returns the public key
        Nrf   rM   s    r%   Ú
public_keyzCertificate.public_key¸   rƒ   r&   c                 ó   — y)z?
        Not before time (represented as UTC datetime)
        Nrf   rM   s    r%   Únot_valid_beforezCertificate.not_valid_before¾   rƒ   r&   c                 ó   — y)zK
        Not before time (represented as a non-naive UTC datetime)
        Nrf   rM   s    r%   Únot_valid_before_utcz Certificate.not_valid_before_utcÅ   rƒ   r&   c                 ó   — y)z>
        Not after time (represented as UTC datetime)
        Nrf   rM   s    r%   Únot_valid_afterzCertificate.not_valid_afterÌ   rƒ   r&   c                 ó   — y)zJ
        Not after time (represented as a non-naive UTC datetime)
        Nrf   rM   s    r%   Únot_valid_after_utczCertificate.not_valid_after_utcÓ   rƒ   r&   c                 ó   — y)z1
        Returns the issuer name object.
        Nrf   rM   s    r%   ÚissuerzCertificate.issuerÚ   rƒ   r&   c                 ó   — y©z2
        Returns the subject name object.
        Nrf   rM   s    r%   ÚsubjectzCertificate.subjectá   rƒ   r&   c                 ó   — y©zt
        Returns a HashAlgorithm corresponding to the type of the digest signed
        in the certificate.
        Nrf   rM   s    r%   Úsignature_hash_algorithmz$Certificate.signature_hash_algorithmè   rƒ   r&   c                 ó   — y©zJ
        Returns the ObjectIdentifier of the signature algorithm.
        Nrf   rM   s    r%   Úsignature_algorithm_oidz#Certificate.signature_algorithm_oidò   rƒ   r&   c                 ó   — y©z=
        Returns the signature algorithm parameters.
        Nrf   rM   s    r%   Úsignature_algorithm_parametersz*Certificate.signature_algorithm_parametersù   rƒ   r&   c                 ó   — y)z/
        Returns an Extensions object.
        Nrf   rM   s    r%   r3   zCertificate.extensions  rƒ   r&   c                 ó   — y©z.
        Returns the signature bytes.
        Nrf   rM   s    r%   Ú	signaturezCertificate.signature	  rƒ   r&   c                 ó   — y)zR
        Returns the tbsCertificate payload bytes as defined in RFC 5280.
        Nrf   rM   s    r%   Útbs_certificate_bytesz!Certificate.tbs_certificate_bytes  rƒ   r&   c                 ó   — y)zh
        Returns the tbsCertificate payload bytes with the SCT list extension
        stripped.
        Nrf   rM   s    r%   Útbs_precertificate_bytesz$Certificate.tbs_precertificate_bytes  rƒ   r&   c                 ó   — y©z"
        Checks equality.
        Nrf   rU   s     r%   rW   zCertificate.__eq__  rƒ   r&   c                 ó   — y©z"
        Computes a hash.
        Nrf   rM   s    r%   rZ   zCertificate.__hash__%  rƒ   r&   c                 ó   — y)zB
        Serializes the certificate to PEM or DER format.
        Nrf   ©r"   Úencodings     r%   Úpublic_byteszCertificate.public_bytes+  rƒ   r&   c                 ó   — y)zÕ
        This method verifies that certificate issuer name matches the
        issuer subject name and that the certificate is signed by the
        issuer's private key. No other validation is performed.
        Nrf   )r"   r”   s     r%   Úverify_directly_issued_byz%Certificate.verify_directly_issued_by1  rƒ   r&   N©r�   zhashes.HashAlgorithmr(   r[   rc   )r(   rt   ©r(   r   ©r(   údatetime.datetime©r(   r   ©r(   zhashes.HashAlgorithm | Noner]   ©r(   z0None | padding.PSS | padding.PKCS1v15 | ec.ECDSA©r(   r   r^   r`   ©r¯   zserialization.Encodingr(   r[   )r”   r}   r(   r)   )r+   r,   r-   ÚabcÚabstractmethodr‚   re   r…   r‡   rŠ   rŒ   rŽ   r�   r’   r”   r—   rš   r�   r    r3   r¤   r¦   r¨   rW   rZ   r°   r²   rf   r&   r%   r}   r}   £   sª  „ Ø×Ñòó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 	×Ñòó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñðà	$òó ó ðð Ø×Ñòó ó ðð
 Ø×Ñðà	9òó ó ðð Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð 	×Ñòó ðð
 	×Ñòó ðð
 	×Ñòó ðð
 	×Ñòó ñr&   r}   )Ú	metaclassc                  óÌ   — e Zd Zeej
                  dd„«       «       Zeej
                  dd„«       «       Zeej
                  dd„«       «       Zeej
                  dd„«       «       Z	y)	ÚRevokedCertificatec                 ó   — y)zG
        Returns the serial number of the revoked certificate.
        Nrf   rM   s    r%   r…   z RevokedCertificate.serial_number?  rƒ   r&   c                 ó   — y)zH
        Returns the date of when this certificate was revoked.
        Nrf   rM   s    r%   Úrevocation_datez"RevokedCertificate.revocation_dateF  rƒ   r&   c                 ó   — y)zl
        Returns the date of when this certificate was revoked as a non-naive
        UTC datetime.
        Nrf   rM   s    r%   Úrevocation_date_utcz&RevokedCertificate.revocation_date_utcM  rƒ   r&   c                 ó   — y)zW
        Returns an Extensions object containing a list of Revoked extensions.
        Nrf   rM   s    r%   r3   zRevokedCertificate.extensionsU  rƒ   r&   Nrc   rµ   rº   )
r+   r,   r-   re   r¼   r½   r…   rÃ   rÅ   r3   rf   r&   r%   rÀ   rÀ   >  sˆ   „ ØØ×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð Ø×Ñòó ó ñr&   rÀ   c                  óh   — e Zd Z	 	 	 	 	 	 dd„Zedd„«       Zed	d„«       Zed	d„«       Zed
d„«       Zy)Ú_RawRevokedCertificatec                ó.   — || _         || _        || _        y r   ©Ú_serial_numberÚ_revocation_dateÚ_extensions©r"   r…   rÃ   r3   s       r%   r    z_RawRevokedCertificate.__init__b  ó   € ð ,ˆÔØ /ˆÔØ%ˆÕr&   c                ó   — | j                   S r   )rË   rM   s    r%   r…   z$_RawRevokedCertificate.serial_numberl  s   € à×"Ñ"Ð"r&   c                óf   — t        j                  dt        j                  d¬«       | j                  S )Nuk   Properties that return a naÃ¯ve datetime object have been deprecated. Please switch to revocation_date_utc.ru   )Ú
stacklevel)ÚwarningsÚwarnr   ÚDeprecatedIn42rÌ   rM   s    r%   rÃ   z&_RawRevokedCertificate.revocation_datep  s.   € ä�‰ð@ä× Ñ Øõ		
ð ×$Ñ$Ð$r&   c                ój   — | j                   j                  t        j                  j                  ¬«      S )Nr<   )rÌ   rA   r?   ÚtimezoneÚutcrM   s    r%   rÅ   z*_RawRevokedCertificate.revocation_date_utcz  s(   € à×$Ñ$×,Ñ,´H×4EÑ4E×4IÑ4IÐ,ÓJÐJr&   c                ó   — | j                   S r   )rÍ   rM   s    r%   r3   z!_RawRevokedCertificate.extensions~  s   € à×ÑÐr&   N)r…   r\   rÃ   r¶   r3   r   rc   rµ   rº   )	r+   r,   r-   r    re   r…   rÃ   rÅ   r3   rf   r&   r%   rÈ   rÈ   a  su   „ ð&àð&ð +ð&ð ó	&ð ò#ó ð#ð ò%ó ð%ð òKó ðKð ò ó ñ r&   rÈ   c                  ó¸  — e Zd Zej                  dd„«       Zej                  dd„«       Zej                  	 	 	 	 dd„«       Zeej                  	 	 dd„«       «       Z	eej                  dd„«       «       Z
eej                  	 	 dd„«       «       Zeej                  dd„«       «       Zeej                  dd„«       «       Zeej                  dd	„«       «       Zeej                  dd
„«       «       Zeej                  dd„«       «       Zeej                  d d„«       «       Zeej                  d!d„«       «       Zeej                  d!d„«       «       Zej                  d"d„«       Zej                  d#d„«       Zej.                  d$d„«       Zej.                  d%d„«       Zej                  	 	 	 	 d&d„«       Zej                  d'd„«       Zej                  	 	 	 	 d(d„«       Zy))ÚCertificateRevocationListc                 ó   — y)z:
        Serializes the CRL to PEM or DER format.
        Nrf   r®   s     r%   r°   z&CertificateRevocationList.public_bytes„  rƒ   r&   c                 ó   — yr   rf   r€   s     r%   r‚   z%CertificateRevocationList.fingerprintŠ  rƒ   r&   c                 ó   — y)zs
        Returns an instance of RevokedCertificate or None if the serial_number
        is not in the CRL.
        Nrf   )r"   r…   s     r%   Ú(get_revoked_certificate_by_serial_numberzBCertificateRevocationList.get_revoked_certificate_by_serial_number�  rƒ   r&   c                 ó   — yr™   rf   rM   s    r%   rš   z2CertificateRevocationList.signature_hash_algorithm™  rƒ   r&   c                 ó   — yrœ   rf   rM   s    r%   r�   z1CertificateRevocationList.signature_algorithm_oid£  rƒ   r&   c                 ó   — yrŸ   rf   rM   s    r%   r    z8CertificateRevocationList.signature_algorithm_parametersª  rƒ   r&   c                 ó   — y)zC
        Returns the X509Name with the issuer of this CRL.
        Nrf   rM   s    r%   r”   z CertificateRevocationList.issuer³  rƒ   r&   c                 ó   — y)z?
        Returns the date of next update for this CRL.
        Nrf   rM   s    r%   Únext_updatez%CertificateRevocationList.next_updateº  rƒ   r&   c                 ó   — y)zc
        Returns the date of next update for this CRL as a non-naive UTC
        datetime.
        Nrf   rM   s    r%   Únext_update_utcz)CertificateRevocationList.next_update_utcÁ  rƒ   r&   c                 ó   — y)z?
        Returns the date of last update for this CRL.
        Nrf   rM   s    r%   Úlast_updatez%CertificateRevocationList.last_updateÉ  rƒ   r&   c                 ó   — y)zc
        Returns the date of last update for this CRL as a non-naive UTC
        datetime.
        Nrf   rM   s    r%   Úlast_update_utcz)CertificateRevocationList.last_update_utcÐ  rƒ   r&   c                 ó   — y)zS
        Returns an Extensions object containing a list of CRL extensions.
        Nrf   rM   s    r%   r3   z$CertificateRevocationList.extensionsØ  rƒ   r&   c                 ó   — yr£   rf   rM   s    r%   r¤   z#CertificateRevocationList.signatureß  rƒ   r&   c                 ó   — y)zO
        Returns the tbsCertList payload bytes as defined in RFC 5280.
        Nrf   rM   s    r%   Útbs_certlist_bytesz,CertificateRevocationList.tbs_certlist_bytesæ  rƒ   r&   c                 ó   — yrª   rf   rU   s     r%   rW   z CertificateRevocationList.__eq__í  rƒ   r&   c                 ó   — y)z<
        Number of revoked certificates in the CRL.
        Nrf   rM   s    r%   rp   z!CertificateRevocationList.__len__ó  rƒ   r&   c                 ó   — y r   rf   ©r"   Úidxs     r%   rr   z%CertificateRevocationList.__getitem__ù  ó   € àr&   c                 ó   — y r   rf   ró   s     r%   rr   z%CertificateRevocationList.__getitem__ý  rõ   r&   c                 ó   — y)zS
        Returns a revoked certificate (or slice of revoked certificates).
        Nrf   ró   s     r%   rr   z%CertificateRevocationList.__getitem__  rƒ   r&   c                 ó   — y)z8
        Iterator over the revoked certificates
        Nrf   rM   s    r%   rq   z"CertificateRevocationList.__iter__	  rƒ   r&   c                 ó   — y)zQ
        Verifies signature of revocation list against given public key.
        Nrf   )r"   rŠ   s     r%   Úis_signature_validz,CertificateRevocationList.is_signature_valid  rƒ   r&   Nr»   r³   )r…   r\   r(   zRevokedCertificate | Noner¸   r]   r¹   r·   )r(   údatetime.datetime | Nonerµ   rº   r^   r`   rc   )rô   r\   r(   rÀ   )rô   Úslicer(   úlist[RevokedCertificate])rô   zint | slicer(   z-RevokedCertificate | list[RevokedCertificate])r(   z#typing.Iterator[RevokedCertificate])rŠ   r   r(   rb   )r+   r,   r-   r¼   r½   r°   r‚   rß   re   rš   r�   r    r”   rå   rç   ré   rë   r3   r¤   rï   rW   rp   ÚtypingÚoverloadrr   rq   rú   rf   r&   r%   rÛ   rÛ   ƒ  s¶  „ Ø×Ñòó ðð
 	×Ñòó ðð
 	×ÑðØ ðà	"òó ðð Ø×Ñðà	$òó ó ðð Ø×Ñòó ó ðð
 Ø×Ñðà	9òó ó ðð Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 	×Ñòó ðð
 	×Ñòó ðð
 ‡_�_òó ðð ‡_�_òó ðð 	×ÑðØðà	6òó ðð 	×Ñòó ðð
 	×ÑðØ9ðà	òó ñr&   rÛ   c                  ó‚  — e Zd Zej                  dd„«       Zej                  dd„«       Zej                  dd„«       Zeej                  dd„«       «       Z	eej                  	 	 dd„«       «       Z
eej                  dd„«       «       Zeej                  	 	 dd„«       «       Zeej                  dd„«       «       Zeej                  dd	„«       «       Zej                  dd
„«       Zeej                  dd„«       «       Zeej                  dd„«       «       Zeej                  dd„«       «       Zej                  dd„«       Zy)ÚCertificateSigningRequestc                 ó   — yrª   rf   rU   s     r%   rW   z CertificateSigningRequest.__eq__  rƒ   r&   c                 ó   — yr¬   rf   rM   s    r%   rZ   z"CertificateSigningRequest.__hash__"  rƒ   r&   c                 ó   — yr‰   rf   rM   s    r%   rŠ   z$CertificateSigningRequest.public_key(  rƒ   r&   c                 ó   — yr–   rf   rM   s    r%   r—   z!CertificateSigningRequest.subject.  rƒ   r&   c                 ó   — yr™   rf   rM   s    r%   rš   z2CertificateSigningRequest.signature_hash_algorithm5  rƒ   r&   c                 ó   — yrœ   rf   rM   s    r%   r�   z1CertificateSigningRequest.signature_algorithm_oid?  rƒ   r&   c                 ó   — yrŸ   rf   rM   s    r%   r    z8CertificateSigningRequest.signature_algorithm_parametersF  rƒ   r&   c                 ó   — y)z@
        Returns the extensions in the signing request.
        Nrf   rM   s    r%   r3   z$CertificateSigningRequest.extensionsO  rƒ   r&   c                 ó   — y)z/
        Returns an Attributes object.
        Nrf   rM   s    r%   r7   z$CertificateSigningRequest.attributesV  rƒ   r&   c                 ó   — y)z;
        Encodes the request to PEM or DER format.
        Nrf   r®   s     r%   r°   z&CertificateSigningRequest.public_bytes]  rƒ   r&   c                 ó   — yr£   rf   rM   s    r%   r¤   z#CertificateSigningRequest.signaturec  rƒ   r&   c                 ó   — y)zd
        Returns the PKCS#10 CertificationRequestInfo bytes as defined in RFC
        2986.
        Nrf   rM   s    r%   Útbs_certrequest_bytesz/CertificateSigningRequest.tbs_certrequest_bytesj  rƒ   r&   c                 ó   — y)z8
        Verifies signature of signing request.
        Nrf   rM   s    r%   rú   z,CertificateSigningRequest.is_signature_validr  rƒ   r&   c                 ó   — y)z:
        Get the attribute value for a given OID.
        Nrf   )r"   r!   s     r%   ro   z/CertificateSigningRequest.get_attribute_for_oidy  rƒ   r&   Nr`   rc   r´   r·   r¸   r]   r¹   rº   )r(   rh   r»   r^   )r(   rb   )r!   r   r(   r[   )r+   r,   r-   r¼   r½   rW   rZ   rŠ   re   r—   rš   r�   r    r3   r7   r°   r¤   r  rú   ro   rf   r&   r%   r  r    sÄ  „ Ø×Ñòó ðð
 	×Ñòó ðð
 	×Ñòó ðð
 Ø×Ñòó ó ðð
 Ø×Ñðà	$òó ó ðð Ø×Ñòó ó ðð
 Ø×Ñðà	9òó ó ðð Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð
 	×Ñòó ðð
 Ø×Ñòó ó ðð
 Ø×Ñòó ó ðð Ø×Ñòó ó ðð
 	×Ñòó ñr&   r  c                  ó‚   — e Zd Zdg g f	 	 	 	 	 d	d„Zd
d„Z	 	 	 	 	 	 dd„Zddœ	 	 	 	 	 	 	 dd„Z	 dddœ	 	 	 	 	 	 	 	 	 dd„Zy)Ú CertificateSigningRequestBuilderNc                ó.   — || _         || _        || _        y)zB
        Creates an empty X.509 certificate request (v1).
        N)Ú_subject_namerÍ   rk   )r"   Úsubject_namer3   r7   s       r%   r    z)CertificateSigningRequestBuilder.__init__‘  s   € ð *ˆÔØ%ˆÔØ%ˆÕr&   c                ó¨   — t        |t        «      st        d«      ‚| j                  �t	        d«      ‚t        || j                  | j                  «      S )zF
        Sets the certificate requestor's distinguished name.
        úExpecting x509.Name object.ú&The subject name may only be set once.)rS   r   Ú	TypeErrorr  r1   r  rÍ   rk   ©r"   Únames     r%   r  z-CertificateSigningRequestBuilder.subject_namež  sR   € ô ˜$¤Ô%ÜÐ9Ó:Ð:Ø×ÑÐ)ÜÐEÓFÐFÜ/Ø�$×"Ñ" D×$4Ñ$4ó
ð 	
r&   c                óð   — t        |t        «      st        d«      ‚t        |j                  ||«      }t        || j                  «       t        | j                  g | j                  ¢|‘| j                  «      S )zE
        Adds an X.509 extension to the certificate request.
        ú"extension must be an ExtensionType)
rS   r   r  r   r!   r5   rÍ   r  r  rk   ©r"   ÚextvalÚcriticalr2   s       r%   Úadd_extensionz.CertificateSigningRequestBuilder.add_extensionª  sn   € ô ˜&¤-Ô0ÜÐ@ÓAÐAä˜fŸj™j¨(°FÓ;ˆ	Ü# I¨t×/?Ñ/?Ô@ä/Ø×ÑØ*ˆd×ÑÐ* 	Ð*Ø×Ñó
ð 	
r&   )Ú_tagc               óZ  — t        |t        «      st        d«      ‚t        |t        «      st        d«      ‚|�t        |t        «      st        d«      ‚t        || j                  «       |�|j                  }nd}t        | j                  | j                  g | j                  ¢|||f‘«      S )zK
        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)rS   r   r  r[   r   r:   rk   rK   r  r  rÍ   )r"   r!   rK   r"  Útags        r%   Úadd_attributez.CertificateSigningRequestBuilder.add_attribute¼  s©   € ô ˜#Ô/Ô0ÜÐ=Ó>Ð>ä˜%¤Ô'ÜÐ1Ó2Ð2àÐ¤J¨t´YÔ$?ÜÐ3Ó4Ð4ä# C¨×)9Ñ)9Ô:àÐØ—*‘*‰CàˆCä/Ø×ÑØ×ÑØ2ˆd×ÑÐ2  e¨SÐ 1Ð2ó
ð 	
r&   ©Úrsa_paddingc               ó  — | j                   €t        d«      ‚|�Zt        |t        j                  t        j
                  f«      st        d«      ‚t        |t        j                  «      st        d«      ‚t        j                  | |||«      S )zF
        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)r  r1   rS   r   ÚPSSÚPKCS1v15r  r   ÚRSAPrivateKeyÚ	rust_x509Úcreate_x509_csr©r"   Úprivate_keyr�   Úbackendr'  s        r%   Úsignz%CertificateSigningRequestBuilder.signÜ  s   € ð ×ÑÐ%ÜÐNÓOÐOàÐ"Ü˜k¬G¯K©K¼×9IÑ9IÐ+JÔKÜÐ AÓBÐBÜ˜k¬3×+<Ñ+<Ô=ÜÐ HÓIÐIä×(Ñ(Ø�+˜y¨+ó
ð 	
r&   )r  úName | Noner3   úlist[Extension[ExtensionType]]r7   ú0list[tuple[ObjectIdentifier, bytes, int | None]])r  r   r(   r  )r  r   r   rb   r(   r  )r!   r   rK   r[   r"  z_ASN1Type | Noner(   r  r   )
r1  r   r�   ú_AllowedHashTypes | Noner2  ú
typing.Anyr'  ú%padding.PSS | padding.PKCS1v15 | Noner(   r  )r+   r,   r-   r    r  r!  r%  r3  rf   r&   r%   r  r  �  sÇ   „ ð %)Ø57ØGIð	&à!ð&ð 3ð&ð Eó	&ó

ð
Ø#ð
Ø/3ð
à	)ó
ð. "&ñ
àð
ð ð
ð
 ð
ð 
*ó
ðH #ð	
ð >Bñ
à5ð
ð ,ð
ð ð	
ð ;ð
ð 
#ô
r&   r  c                  ó¾   — e Zd ZU ded<   ddddddg f	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Z	 	 	 	 dd„Zdd„Zdd	„Z	dd
„Z
	 	 	 	 	 	 dd„Z	 dddœ	 	 	 	 	 	 	 	 	 dd„Zy)ÚCertificateBuilderr5  rÍ   Nc                ó�   — t         j                  | _        || _        || _        || _        || _        || _        || _        || _	        y r   )
rt   rw   Ú_versionÚ_issuer_namer  Ú_public_keyrË   Ú_not_valid_beforeÚ_not_valid_afterrÍ   )r"   Úissuer_namer  rŠ   r…   rŒ   r�   r3   s           r%   r    zCertificateBuilder.__init__ø  sG   € ô  Ÿ
™
ˆŒØ'ˆÔØ)ˆÔØ%ˆÔØ+ˆÔØ!1ˆÔØ /ˆÔØ%ˆÕr&   c           	     ó   — t        |t        «      st        d«      ‚| j                  �t	        d«      ‚t        || j                  | j                  | j                  | j                  | j                  | j                  «      S )z3
        Sets the CA's distinguished name.
        r  ú%The issuer name may only be set once.)rS   r   r  r>  r1   r;  r  r?  rË   r@  rA  rÍ   r  s     r%   rB  zCertificateBuilder.issuer_name  sx   € ô ˜$¤Ô%ÜÐ9Ó:Ð:Ø×ÑÐ(ÜÐDÓEÐEÜ!ØØ×ÑØ×ÑØ×ÑØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r&   c           	     ó   — t        |t        «      st        d«      ‚| j                  �t	        d«      ‚t        | j                  || j                  | j                  | j                  | j                  | j                  «      S )z:
        Sets the requestor's distinguished name.
        r  r  )rS   r   r  r  r1   r;  r>  r?  rË   r@  rA  rÍ   r  s     r%   r  zCertificateBuilder.subject_name  sx   € ô ˜$¤Ô%ÜÐ9Ó:Ð:Ø×ÑÐ)ÜÐEÓFÐFÜ!Ø×ÑØØ×ÑØ×ÑØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r&   c           
     óÊ  — t        |t        j                  t        j                  t
        j                  t        j                  t        j                  t        j                  t        j                  f«      st        d«      ‚| j                   �t#        d«      ‚t%        | j&                  | j(                  || j*                  | j,                  | j.                  | j0                  «      S )zT
        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.)rS   r   ÚDSAPublicKeyr   ÚRSAPublicKeyr	   ÚEllipticCurvePublicKeyr   ÚEd25519PublicKeyr
   ÚEd448PublicKeyr   ÚX25519PublicKeyr   ÚX448PublicKeyr  r?  r1   r;  r>  r  rË   r@  rA  rÍ   )r"   Úkeys     r%   rŠ   zCertificateBuilder.public_key/  sÇ   € ô Øä× Ñ Ü× Ñ Ü×)Ñ)Ü×(Ñ(Ü×$Ñ$Ü×&Ñ&Ü×"Ñ"ðô
ô ð!óð ð ×ÑÐ'ÜÐCÓDÐDÜ!Ø×ÑØ×ÑØØ×ÑØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r&   c           	     ó\  — t        |t        «      st        d«      ‚| j                  �t	        d«      ‚|dk  rt	        d«      ‚|j                  «       dk\  rt	        d«      ‚t        | j                  | j                  | j                  || j                  | j                  | j                  «      S )z5
        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.)rS   r\   r  rË   r1   Ú
bit_lengthr;  r>  r  r?  r@  rA  rÍ   ©r"   Únumbers     r%   r…   z CertificateBuilder.serial_numberT  s°   € ô ˜&¤#Ô&ÜÐEÓFÐFØ×ÑÐ*ÜÐFÓGÐGØ�QŠ;ÜÐDÓEÐEð ×ÑÓ #Ò%ÜØHóð ô "Ø×ÑØ×ÑØ×ÑØØ×"Ñ"Ø×!Ñ!Ø×Ñó
ð 	
r&   c           	     óž  — t        |t        j                  «      st        d«      ‚| j                  �t	        d«      ‚t        |«      }|t        k  rt	        d«      ‚| j                  �|| j                  kD  rt	        d«      ‚t        | j                  | j                  | j                  | j                  || j                  | j                  «      S )z7
        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.)rS   r?   r  r@  r1   rD   Ú_EARLIEST_UTC_TIMErA  r;  r>  r  r?  rË   rÍ   ©r"   rB   s     r%   rŒ   z#CertificateBuilder.not_valid_beforeo  sÒ   € ô ˜$¤× 1Ñ 1Ô2ÜÐ8Ó9Ð9Ø×!Ñ!Ð-ÜÐIÓJÐJÜ)¨$Ó/ˆØÔ$Ò$Üð$óð ð × Ñ Ð,°¸×8MÑ8MÒ1MÜðóð ô "Ø×ÑØ×ÑØ×ÑØ×ÑØØ×!Ñ!Ø×Ñó
ð 	
r&   c           	     óž  — t        |t        j                  «      st        d«      ‚| j                  �t	        d«      ‚t        |«      }|t        k  rt	        d«      ‚| j                  �|| j                  k  rt	        d«      ‚t        | j                  | j                  | j                  | j                  | j                  || j                  «      S )z7
        Sets the certificate expiration time.
        rX  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.)rS   r?   r  rA  r1   rD   rY  r@  r;  r>  r  r?  rË   rÍ   rZ  s     r%   r�   z"CertificateBuilder.not_valid_afterŒ  sÓ   € ô ˜$¤× 1Ñ 1Ô2ÜÐ8Ó9Ð9Ø× Ñ Ð,ÜÐHÓIÐIÜ)¨$Ó/ˆØÔ$Ò$Üð#óð ð
 ×"Ñ"Ð.Ø�t×-Ñ-Ò-äðóð ô "Ø×ÑØ×ÑØ×ÑØ×ÑØ×"Ñ"ØØ×Ñó
ð 	
r&   c           
     óH  — t        |t        «      st        d«      ‚t        |j                  ||«      }t        || j                  «       t        | j                  | j                  | j                  | j                  | j                  | j                  g | j                  ¢|‘«      S )z=
        Adds an X.509 extension to the certificate.
        r  )rS   r   r  r   r!   r5   rÍ   r;  r>  r  r?  rË   r@  rA  r  s       r%   r!  z CertificateBuilder.add_extension¬  s’   € ô ˜&¤-Ô0ÜÐ@ÓAÐAä˜fŸj™j¨(°FÓ;ˆ	Ü# I¨t×/?Ñ/?Ô@ä!Ø×ÑØ×ÑØ×ÑØ×ÑØ×"Ñ"Ø×!Ñ!Ø*ˆd×ÑÐ* 	Ð*ó
ð 	
r&   r&  c               óþ  — | j                   €t        d«      ‚| j                  €t        d«      ‚| j                  €t        d«      ‚| j                  €t        d«      ‚| j
                  €t        d«      ‚| j                  €t        d«      ‚|�Zt        |t        j                  t        j                  f«      st        d«      ‚t        |t        j                  «      st        d«      ‚t        j                  | |||«      S )	zC
        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  r1   r>  rË   r@  rA  r?  rS   r   r+  r,  r  r   r-  r.  Úcreate_x509_certificater0  s        r%   r3  zCertificateBuilder.signÂ  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ÜÐ AÓBÐBÜ˜k¬3×+<Ñ+<Ô=ÜÐ HÓIÐIä×0Ñ0Ø�+˜y¨+ó
ð 	
r&   )rB  r4  r  r4  rŠ   z CertificatePublicKeyTypes | Noner…   ú
int | NonerŒ   rû   r�   rû   r3   r5  r(   r)   )r  r   r(   r;  )rN  r   r(   r;  )rV  r\   r(   r;  )rB   r¶   r(   r;  )r  r   r   rb   r(   r;  r   )
r1  r   r�   r7  r2  r8  r'  r9  r(   r}   )r+   r,   r-   Ú__annotations__r    rB  r  rŠ   r…   rŒ   r�   r!  r3  rf   r&   r%   r;  r;  õ  s  … Ø/Ó/ð $(Ø$(Ø7;Ø$(Ø59Ø48Ø57ð&à ð&ð "ð&ð 5ð	&ð
 "ð&ð 3ð&ð 2ð&ð 3ð&ð 
ó&ó&
ó$
ð$#
à&ð#
ð 
ó#
óJ
ó6
ó:
ð@
Ø#ð
Ø/3ð
à	ó
ð4 #ð	%
ð >Bñ%
à5ð%
ð ,ð%
ð ð	%
ð ;ð%
ð 
ô%
r&   r;  c                  óÀ   — e Zd ZU ded<   ded<   dddg g f	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 dd„Z	 	 	 	 dd„Z	 	 	 	 dd	„Z	 	 	 	 	 	 dd
„Z	 	 	 	 dd„Z		 dddœ	 	 	 	 	 	 	 	 	 dd„Z
y)Ú CertificateRevocationListBuilderr5  rÍ   rý   Ú_revoked_certificatesNc                óJ   — || _         || _        || _        || _        || _        y r   )r>  Ú_last_updateÚ_next_updaterÍ   rc  )r"   rB  ré   rå   r3   Úrevoked_certificatess         r%   r    z)CertificateRevocationListBuilder.__init__î  s,   € ð (ˆÔØ'ˆÔØ'ˆÔØ%ˆÔØ%9ˆÕ"r&   c                óÔ   — t        |t        «      st        d«      ‚| j                  �t	        d«      ‚t        || j                  | j                  | j                  | j                  «      S )Nr  rD  )
rS   r   r  r>  r1   rb  re  rf  rÍ   rc  )r"   rB  s     r%   rB  z,CertificateRevocationListBuilder.issuer_nameü  sf   € ô ˜+¤tÔ,ÜÐ9Ó:Ð:Ø×ÑÐ(ÜÐDÓEÐEÜ/ØØ×ÑØ×ÑØ×ÑØ×&Ñ&ó
ð 	
r&   c                ór  — t        |t        j                  «      st        d«      ‚| j                  �t	        d«      ‚t        |«      }|t        k  rt	        d«      ‚| j                  �|| j                  kD  rt	        d«      ‚t        | j                  || j                  | j                  | j                  «      S )NrX  ú!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.)rS   r?   r  re  r1   rD   rY  rf  rb  r>  rÍ   rc  )r"   ré   s     r%   ré   z,CertificateRevocationListBuilder.last_update  s¼   € ô ˜+¤x×'8Ñ'8Ô9ÜÐ8Ó9Ð9Ø×ÑÐ(ÜÐ@ÓAÐAÜ0°Ó=ˆØÔ+Ò+ÜØMóð ð ×ÑÐ(¨[¸4×;LÑ;LÒ-LÜØKóð ô 0Ø×ÑØØ×ÑØ×ÑØ×&Ñ&ó
ð 	
r&   c                ór  — t        |t        j                  «      st        d«      ‚| j                  �t	        d«      ‚t        |«      }|t        k  rt	        d«      ‚| j                  �|| j                  k  rt	        d«      ‚t        | j                  | j                  || j                  | j                  «      S )NrX  rj  rk  z8The next update date must be after the last update date.)rS   r?   r  rf  r1   rD   rY  re  rb  r>  rÍ   rc  )r"   rå   s     r%   rå   z,CertificateRevocationListBuilder.next_update#  s¼   € ô ˜+¤x×'8Ñ'8Ô9ÜÐ8Ó9Ð9Ø×ÑÐ(ÜÐ@ÓAÐAÜ0°Ó=ˆØÔ+Ò+ÜØMóð ð ×ÑÐ(¨[¸4×;LÑ;LÒ-LÜØJóð ô 0Ø×ÑØ×ÑØØ×ÑØ×&Ñ&ó
ð 	
r&   c                ó  — t        |t        «      st        d«      ‚t        |j                  ||«      }t        || j                  «       t        | j                  | j                  | j                  g | j                  ¢|‘| j                  «      S )zM
        Adds an X.509 extension to the certificate revocation list.
        r  )rS   r   r  r   r!   r5   rÍ   rb  r>  re  rf  rc  r  s       r%   r!  z.CertificateRevocationListBuilder.add_extension;  s€   € ô ˜&¤-Ô0ÜÐ@ÓAÐAä˜fŸj™j¨(°FÓ;ˆ	Ü# I¨t×/?Ñ/?Ô@Ü/Ø×ÑØ×ÑØ×ÑØ*ˆd×ÑÐ* 	Ð*Ø×&Ñ&ó
ð 	
r&   c                óÂ   — t        |t        «      st        d«      ‚t        | j                  | j
                  | j                  | j                  g | j                  ¢|‘«      S )z8
        Adds a revoked certificate to the CRL.
        z)Must be an instance of RevokedCertificate)	rS   rÀ   r  rb  r>  re  rf  rÍ   rc  )r"   Úrevoked_certificates     r%   Úadd_revoked_certificatez8CertificateRevocationListBuilder.add_revoked_certificateN  sa   € ô Ð-Ô/AÔBÜÐGÓHÐHä/Ø×ÑØ×ÑØ×ÑØ×ÑØ>ˆd×(Ñ(Ð>Ð*=Ð>ó
ð 	
r&   r&  c               ót  — | j                   €t        d«      ‚| j                  €t        d«      ‚| j                  €t        d«      ‚|�Zt	        |t
        j                  t
        j                  f«      st        d«      ‚t	        |t        j                  «      st        d«      ‚t        j                  | |||«      S )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>  r1   re  rf  rS   r   r+  r,  r  r   r-  r.  Úcreate_x509_crlr0  s        r%   r3  z%CertificateRevocationListBuilder.sign_  s¯   € ð ×ÑÐ$ÜÐ=Ó>Ð>à×ÑÐ$ÜÐAÓBÐBà×ÑÐ$ÜÐAÓBÐBàÐ"Ü˜k¬G¯K©K¼×9IÑ9IÐ+JÔKÜÐ AÓBÐBÜ˜k¬3×+<Ñ+<Ô=ÜÐ HÓIÐIä×(Ñ(Ø�+˜y¨+ó
ð 	
r&   )
rB  r4  ré   rû   rå   rû   r3   r5  rg  rý   )rB  r   r(   rb  )ré   r¶   r(   rb  )rå   r¶   r(   rb  )r  r   r   rb   r(   rb  )ro  rÀ   r(   rb  r   )
r1  r   r�   r7  r2  r8  r'  r9  r(   rÛ   )r+   r,   r-   r`  r    rB  ré   rå   r!  rp  r3  rf   r&   r%   rb  rb  ê  s
  … Ø/Ó/Ø3Ó3ð $(Ø04Ø04Ø57Ø9;ð:à ð:ð .ð:ð .ð	:ð
 3ð:ð 7ó:ð
Øð
à	)ó
ð
Ø,ð
à	)ó
ð0
Ø,ð
à	)ó
ð0
Ø#ð
Ø/3ð
à	)ó
ð&
Ø#5ð
à	)ó
ð* #ð	
ð >Bñ
à5ð
ð ,ð
ð ð	
ð ;ð
ð 
#ô
r&   rb  c                  ó\   — e Zd Zddg f	 	 	 	 	 dd„Zdd„Z	 	 	 	 d	d„Z	 	 	 	 	 	 d
d„Zddd„Zy)ÚRevokedCertificateBuilderNc                ó.   — || _         || _        || _        y r   rÊ   rÎ   s       r%   r    z"RevokedCertificateBuilder.__init__|  rÏ   r&   c                ó  — t        |t        «      st        d«      ‚| j                  �t	        d«      ‚|dk  rt	        d«      ‚|j                  «       dk\  rt	        d«      ‚t        || j                  | j                  «      S )NrP  rQ  r   z$The serial number should be positiverR  rS  )	rS   r\   r  rË   r1   rT  rt  rÌ   rÍ   rU  s     r%   r…   z'RevokedCertificateBuilder.serial_number†  sˆ   € Ü˜&¤#Ô&ÜÐEÓFÐFØ×ÑÐ*ÜÐFÓGÐGØ�QŠ;ÜÐCÓDÐDð ×ÑÓ #Ò%ÜØHóð ô )Ø�D×)Ñ)¨4×+;Ñ+;ó
ð 	
r&   c                óú   — t        |t        j                  «      st        d«      ‚| j                  �t	        d«      ‚t        |«      }|t        k  rt	        d«      ‚t        | j                  || j                  «      S )NrX  z)The revocation date may only be set once.z7The revocation date must be on or after 1950 January 1.)
rS   r?   r  rÌ   r1   rD   rY  rt  rË   rÍ   rZ  s     r%   rÃ   z)RevokedCertificateBuilder.revocation_date˜  s}   € ô ˜$¤× 1Ñ 1Ô2ÜÐ8Ó9Ð9Ø× Ñ Ð,ÜÐHÓIÐIÜ)¨$Ó/ˆØÔ$Ò$ÜØLóð ô )Ø×Ñ  t×'7Ñ'7ó
ð 	
r&   c                óð   — t        |t        «      st        d«      ‚t        |j                  ||«      }t        || j                  «       t        | j                  | j                  g | j                  ¢|‘«      S )Nr  )
rS   r   r  r   r!   r5   rÍ   rt  rË   rÌ   r  s       r%   r!  z'RevokedCertificateBuilder.add_extension¨  sn   € ô ˜&¤-Ô0ÜÐ@ÓAÐAä˜fŸj™j¨(°FÓ;ˆ	Ü# I¨t×/?Ñ/?Ô@Ü(Ø×ÑØ×!Ñ!Ø*ˆd×ÑÐ* 	Ð*ó
ð 	
r&   c                óÆ   — | j                   €t        d«      ‚| j                  €t        d«      ‚t        | j                   | j                  t	        | j
                  «      «      S )Nz/A revoked certificate must have a serial numberz1A revoked certificate must have a revocation date)rË   r1   rÌ   rÈ   r   rÍ   )r"   r2  s     r%   ÚbuildzRevokedCertificateBuilder.build¶  se   € Ø×ÑÐ&ÜÐNÓOÐOØ× Ñ Ð(ÜØCóð ô &Ø×ÑØ×!Ñ!Ü�t×'Ñ'Ó(ó
ð 	
r&   )r…   r_  rÃ   rû   r3   r5  )rV  r\   r(   rt  )rB   r¶   r(   rt  )r  r   r   rb   r(   rt  r   )r2  r8  r(   rÀ   )r+   r,   r-   r    r…   rÃ   r!  rz  rf   r&   r%   rt  rt  {  sj   „ ð %)Ø48Ø57ð	&à!ð&ð 2ð&ð 3ó	&ó
ð$
Ø%ð
à	"ó
ð 
Ø#ð
Ø/3ð
à	"ó
õ
r&   rt  c                 óZ   — t         j                  t        j                  d«      d«      dz	  S )Né   Úbigr   )r\   Ú
from_bytesÚosÚurandomrf   r&   r%   Úrandom_serial_numberr�  Ä  s    € Ü�>‰>œ"Ÿ*™* R›.¨%Ó0°AÑ5Ð5r&   )r2   zExtension[ExtensionType]r3   r5  r(   r)   )r!   r   r7   r6  r(   r)   )rB   r¶   r(   r¶   rc   )NÚ
__future__r   r¼   r?   r  rþ   rÓ   Úcryptographyr   Ú"cryptography.hazmat.bindings._rustr   r.  Úcryptography.hazmat.primitivesr   r   Ú)cryptography.hazmat.primitives.asymmetricr   r	   r
   r   r   r   r   r   Ú/cryptography.hazmat.primitives.asymmetric.typesr   r   r   Úcryptography.x509.extensionsr   r   r   r   Úcryptography.x509.namer   r   Úcryptography.x509.oidr   rY  ÚUnionÚSHA224ÚSHA256ÚSHA384ÚSHA512ÚSHA3_224ÚSHA3_256ÚSHA3_384ÚSHA3_512Ú_AllowedHashTypesÚ	Exceptionr   r5   r:   rD   rF   rh   ÚEnumrt   ry   ÚABCMetar}   ÚregisterrÀ   rÈ   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;  rb  rt  r�  rf   r&   r%   ú<module>r      s{  ðõ
 #ã 
Û Û 	Û Û å Ý @ß @÷	÷ 	ó 	÷ñ ÷
ó ÷ 3Ý 2à&�X×&Ñ& 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ô -ôT˜CŸK™Kõ Tðp × Ñ �Y×*Ñ*Ô +ô 3§;¡;õ ð@ × Ñ ˜I×8Ñ8Ô 9ô Ð/ô  ôDR¨#¯+©+õ Rðj × "Ñ " 9×#FÑ#FÔ Gôb¨#¯+©+õ bðL × "Ñ " 9×#FÑ#FÔ Gð &×?Ñ?Ð Ø%×?Ñ?Ð à&×AÑAÐ à×/Ñ/Ð Ø×/Ñ/Ð à×/Ñ/Ð Ø×/Ñ/Ð ÷b
ñ b
÷Jr
ñ r
÷jN
ñ N
÷bF
ñ F
ôR6r&   