+
    1ji              	         ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t ^ RIHt ^ RIHtHtHtHtHtHtHtHtHt ^ RIHtHt ^ R	IHtHtHt ^ R
IH t H!t! ^ RI"H#t# ]P                  ! R^^4      t$]PJ                  ]PL                  ]PN                  ]PP                  ]PR                  ]PT                  ]PV                  ]PX                  ]PZ                  3,          t. ! R R]/4      t0R R lt1R R lt2R R lt3 ! R R4      t4 ! R R4      t5 ! R R]Pl                  4      t7 ! R R]/4      t8]Pr                  t9]Pt                  t:]Pv                  t;]Px                  t<]Pz                  t=]P|                  t>]P~                  t?]P                  t@]P                  tA]P                  tB]P                  tC ! R R4      tD ! R R 4      tE ! R! R"4      tF ! R# R$4      tGR% R& ltHR# )'    )annotationsN)Iterable)utils)x509)hashes)	dsaeced448ed25519mldsapaddingrsax448x25519) CertificateIssuerPrivateKeyTypesCertificatePublicKeyTypes)	ExtensionExtensionType_make_sequence_methods)Name	_ASN1Type)ObjectIdentifieri  c                  .   a  ] tR t^6tR V 3R lltRtV ;t# )AttributeNotFoundc               $    V ^8  d   QhRRRRRR/# )   msgstroidr   returnNone )formats   "6lib/python3.14/site-packages/cryptography/x509/base.py__annotate__AttributeNotFound.__annotate__7   s"      C &6 4     c                	2   < \         SV `  V4       W n        R # N)super__init__r   )selfr   r   	__class__s   &&&r$   r+   AttributeNotFound.__init__7   s    r'   )r   __name__
__module____qualname____firstlineno__r+   __static_attributes____classcell__r-   s   @r$   r   r   6   s     r'   r   c               $    V ^8  d   QhRRRRRR/# )r   	extensionzExtension[ExtensionType]
extensionslist[Extension[ExtensionType]]r    r!   r"   )r#   s   "r$   r%   r%   <   s+     E E'E.E 
Er'   c                d    V F)  pVP                   V P                   8X  g   K   \        R 4      h	  R# )z$This extension has already been set.N)r   
ValueError)r8   r9   es   && r$   _reject_duplicate_extensionr>   <   s*    
 55IMM!CDD r'   c               $    V ^8  d   QhRRRRRR/# )r   r   r   
attributes0list[tuple[ObjectIdentifier, bytes, int | None]]r    r!   r"   )r#   s   "r$   r%   r%   F   s+     E E	E@E 
Er'   c                B    V F  w  p pW 8X  g   K  \        R 4      h	  R# )z$This attribute has already been set.N)r<   )r   r@   attr_oid_s   &&  r$   _reject_duplicate_attributerE   F   s%    
 %!Q?CDD %r'   c                    V ^8  d   QhRRRR/# )r   timedatetime.datetimer    r"   )r#   s   "r$   r%   r%   P   s      %6 ;L r'   c                    V P                   eI   V P                  4       pV'       d   TM\        P                  ! 4       pV P	                  RR7      V,
          # V # )zNormalizes a datetime to a naive datetime in UTC.

time -- datetime to normalize. Assumed to be in UTC if not timezone
        aware.
N)tzinfo)rJ   	utcoffsetdatetime	timedeltareplace)rG   offsets   & r$   _convert_to_naive_utc_timerP   P   sG     {{!!x'9'9';||4|(611r'   c                      ] tR t^^t]P
                  P                  3R R llt]R R l4       t	]R R l4       tR R lt
R	 R
 ltR R ltRtR# )	Attributec               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   valuebytes_typeintr    r!   r"   )r#   s   "r$   r%   Attribute.__annotate___   s2        	
 
r'   c                	*    Wn         W n        W0n        R # r)   )_oid_valuerV   )r,   r   rT   rV   s   &&&&r$   r+   Attribute.__init___   s     	
r'   c                   V ^8  d   QhRR/# )r   r    r   r"   )r#   s   "r$   r%   rX   j   s      % r'   c                	    V P                   # r)   )rZ   r,   s   &r$   r   Attribute.oidi   s    yyr'   c                   V ^8  d   QhRR/# )r   r    rU   r"   )r#   s   "r$   r%   rX   n   s      u r'   c                	    V P                   # r)   )r[   r_   s   &r$   rT   Attribute.valuem   s    {{r'   c                   V ^8  d   QhRR/# r   r    r   r"   )r#   s   "r$   r%   rX   q   s     D D# Dr'   c                	>    R V P                    RV P                  : R2# )z<Attribute(oid=z, value=)>)r   rT   r_   s   &r$   __repr__Attribute.__repr__q   s     
(4::.CCr'   c                    V ^8  d   QhRRRR/# )r   otherobjectr    boolr"   )r#   s   "r$   r%   rX   t   s     
 
F 
t 
r'   c                	    \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d;    V P                  VP                  8H  ;'       d    V P
                  VP
                  8H  # r)   )
isinstancerR   NotImplementedr   rT   rV   )r,   rk   s   &&r$   __eq__Attribute.__eq__t   s`    %++!! HH		! * *

ekk)* *

ekk)	
r'   c                   V ^8  d   QhRR/# r   r    rW   r"   )r#   s   "r$   r%   rX   ~   s     8 8# 8r'   c                	Z    \        V P                  V P                  V P                  34      # r)   )hashr   rT   rV   r_   s   &r$   __hash__Attribute.__hash__~   s     TXXtzz4::677r'   )rZ   rV   r[   N)r0   r1   r2   r3   r   
UTF8StringrT   r+   propertyr   rh   rq   rw   r4   r"   r'   r$   rR   rR   ^   sU    
 ))//	    D
8 8r'   rR   c                  R    ] tR t^tR R lt]! R4      w  tttR R lt	R R lt
RtR	# )

Attributesc                    V ^8  d   QhRRRR/# )r   r@   zIterable[Attribute]r    r!   r"   )r#   s   "r$   r%   Attributes.__annotate__   s     , ,', 
,r'   c                	&    \        V4      V n        R # r)   )list_attributes)r,   r@   s   &&r$   r+   Attributes.__init__   s      
+r'   r   c                   V ^8  d   QhRR/# re   r"   )r#   s   "r$   r%   r~      s     3 3# 3r'   c                	"    R V P                    R2# )z<Attributes(rg   r   r_   s   &r$   rh   Attributes.__repr__   s    d../r22r'   c                    V ^8  d   QhRRRR/# )r   r   r   r    rR   r"   )r#   s   "r$   r%   r~      s     F F)9 Fi Fr'   c                	^    V  F  pVP                   V8X  g   K  Vu # 	  \        R V R2V4      h)zNo z attribute was found)r   r   )r,   r   attrs   && r$   get_attribute_for_oid Attributes.get_attribute_for_oid   s5    Dxx3   #cU*> ?EEr'   r   N)r0   r1   r2   r3   r+   r   __len____iter____getitem__rh   r   r4   r"   r'   r$   r|   r|      s+    , &<M%J"GX{3F Fr'   r|   c                      ] tR t^t^ t^tRtR# )Versionr"   N)r0   r1   r2   r3   v1v3r4   r"   r'   r$   r   r      s    	
B	
Br'   r   c                  .   a  ] tR t^tR V 3R lltRtV ;t# )InvalidVersionc               $    V ^8  d   QhRRRRRR/# )r   r   r   parsed_versionrW   r    r!   r"   )r#   s   "r$   r%   InvalidVersion.__annotate__   s!     - -C - - -r'   c                	2   < \         SV `  V4       W n        R # r)   )r*   r+   r   )r,   r   r   r-   s   &&&r$   r+   InvalidVersion.__init__   s    ,r'   )r   r/   r6   s   @r$   r   r      s    - -r'   r   c                  t    ] tR t^tR. . 3R R lltR R ltR R ltRR/R	 R
 lltRRRRR/R R llltRt	R# ) CertificateSigningRequestBuilderNc               $    V ^8  d   QhRRRRRR/# )r   subject_nameName | Noner9   r:   r@   rA   r"   )r#   s   "r$   r%   -CertificateSigningRequestBuilder.__annotate__   s)     & &!& 3& E	&r'   c                *    Wn         W n        W0n        R# )z2
Creates an empty X.509 certificate request (v1).
N)_subject_name_extensionsr   )r,   r   r9   r@   s   &&&&r$   r+   )CertificateSigningRequestBuilder.__init__   s     *%%r'   c                    V ^8  d   QhRRRR/# )r   namer   r    r   r"   )r#   s   "r$   r%   r      s     

 

 

*J 

r'   c                    \        V\        4      '       g   \        R4      hV P                  e   \	        R4      h\        WP                  V P                  4      # )z6
Sets the certificate requestor's distinguished name.
Expecting x509.Name object.&The subject name may only be set once.)ro   r   	TypeErrorr   r<   r   r   r   r,   r   s   &&r$   r   -CertificateSigningRequestBuilder.subject_name   sS     $%%9::)EFF/""D$4$4
 	
r'   c               $    V ^8  d   QhRRRRRR/# )r   extvalr   criticalrm   r    r   r"   )r#   s   "r$   r%   r      s$     
 
#
/3
	)
r'   c                    \        V\        4      '       g   \        R4      h\        VP                  W!4      p\        W0P                  4       \        V P                  . V P                  OVNV P                  4      # )z5
Adds an X.509 extension to the certificate request.
"extension must be an ExtensionType)
ro   r   r   r   r   r>   r   r   r   r   r,   r   r   r8   s   &&& r$   add_extension.CertificateSigningRequestBuilder.add_extension   sm     &-00@AAfjj(;	#I/?/?@/*d*	*
 	
r'   _tagc               (    V ^8  d   QhRRRRRRRR/# )	r   r   r   rT   rU   r   z_ASN1Type | Noner    r   r"   )r#   s   "r$   r%   r      s2     
 

 

 
 
*
r'   c                  \        V\        4      '       g   \        R4      h\        V\        4      '       g   \        R4      hVe"   \        V\        4      '       g   \        R4      h\        WP                  4       Ve   VP                  pMRp\        V P                  V P                  . V P                  OWV3N4      # )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)ro   r   r   rU   r   rE   r   rT   r   r   r   )r,   r   rT   r   tags   &&&$ r$   add_attribute.CertificateSigningRequestBuilder.add_attribute   s     #/00=>>%''122JtY$?$?344#C)9)9:**CC/2d2S 12
 	
r'   rsa_paddingecdsa_deterministicc               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   private_keyr   	algorithm_AllowedHashTypes | Nonebackend
typing.Anyr   %padding.PSS | padding.PKCS1v15 | Noner   bool | Noner    CertificateSigningRequestr"   )r#   s   "r$   r%   r     sF     !
 !
5!
 ,!
 	!
 ;!
 )!
 
#!
r'   c                  V P                   f   \        R4      hVeg   \        V\        P                  \        P
                  34      '       g   \        R4      h\        V\        P                  4      '       g   \        R4      hVe,   \        V\        P                  4      '       g   \        R4      h\        P                  ! V VVVV4      # )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 keys1Deterministic ECDSA is only supported for EC keys)r   r<   ro   r   PSSPKCS1v15r   r   RSAPrivateKeyr	   EllipticCurvePrivateKey	rust_x509create_x509_csrr,   r   r   r   r   r   s   &&&&$$r$   sign%CertificateSigningRequestBuilder.sign  s     %NOO"kGKK9I9I+JKK ABBk3+<+<== HII*k2+E+EFFG  ((
 	
r'   )r   r   r   r)   )
r0   r1   r2   r3   r+   r   r   r   r   r4   r"   r'   r$   r   r      sK     %)57GI	&


$

 "&
@!
 >B!
 ,0!
 !
r'   r   c                      ] tR tRt$ R]R&   RRRRRR. R3R R lltR R ltR	 R
 ltRR/R R lltR R lt	R R lt
R R ltR R ltRRRRR/R R llltRtR# )CertificateBuilderi%  r:   r   Nc               <    V ^8  d   QhRRRRRRRRRR	R
R	RRRRRR/	# )r   issuer_namer   r   
public_keyz CertificatePublicKeyTypes | Noneserial_number
int | Nonenot_valid_beforedatetime.datetime | Nonenot_valid_afterr9   r:   public_key_rsa_paddingtype[padding.PSS] | Noner    r!   r"   )r#   s   "r$   r%   CertificateBuilder.__annotate__(  sd     > > > "> 5	>
 "> 3> 2> 3> !9> 
>r'   c	                	    \         P                  V n        Wn        W n        W0n        W@n        WPn        W`n        Wpn	        Wn
        R # r)   )r   r   _version_issuer_namer   _public_key_serial_number_not_valid_before_not_valid_afterr   _public_key_rsa_padding)	r,   r   r   r   r   r   r   r9   r   s	   &&&&&&&&&r$   r+   CertificateBuilder.__init__(  s?      

')%+!1 /%'=$r'   c                    V ^8  d   QhRRRR/# r   r   r   r    r   r"   )r#   s   "r$   r%   r   =  s     
 
 
); 
r'   c           
     &   \        V\        4      '       g   \        R4      hV P                  e   \	        R4      h\        VV P                  V P                  V P                  V P                  V P                  V P                  V P                  4      # )z#
Sets the CA's distinguished name.
r   %The issuer name may only be set once.)ro   r   r   r   r<   r   r   r   r   r   r   r   r   r   s   &&r$   r   CertificateBuilder.issuer_name=  s     $%%9::(DEE!""!!((	
 		
r'   c                    V ^8  d   QhRRRR/# r   r"   )r#   s   "r$   r%   r   P  s     
 
 
*< 
r'   c           
     &   \        V\        4      '       g   \        R4      hV P                  e   \	        R4      h\        V P                  VV P                  V P                  V P                  V P                  V P                  V P                  4      # )z*
Sets the requestor's distinguished name.
r   r   )ro   r   r   r   r<   r   r   r   r   r   r   r   r   r   s   &&r$   r   CertificateBuilder.subject_nameP  s     $%%9::)EFF!""!!((	
 		
r'   r   c               $    V ^8  d   QhRRRRRR/# )r   keyr   r   r   r    r   r"   )r#   s   "r$   r%   r   c  s(     3
 3
&3
 .	3

 
3
r'   c                  \        V\        P                  \        P                  \
        P                  \        P                  \        P                  \        P                  \        P                  \        P                  \        P                   \"        P$                  3
4      '       g   \'        R4      hVeK   V\(        P*                  Jd   \'        R4      h\        V\        P                  4      '       g   \'        R4      hV P,                  e   \/        R4      h\1        V P2                  V P4                  VV P6                  V P8                  V P:                  V P<                  V4      # )zD
Sets the requestor's public key (as found in the signing request).
zExpecting one of DSAPublicKey, RSAPublicKey, EllipticCurvePublicKey, Ed25519PublicKey, Ed448PublicKey, MLDSA44PublicKey, MLDSA65PublicKey, MLDSA87PublicKey, X25519PublicKey, or X448PublicKey.z2rsa_padding must be the PSS class, not an instancez2rsa_padding is only supported with RSA public keysz$The public key may only be set once.)ro   r   DSAPublicKeyr   RSAPublicKeyr	   EllipticCurvePublicKeyr   Ed25519PublicKeyr
   Ed448PublicKeyr   MLDSA44PublicKeyMLDSA65PublicKeyMLDSA87PublicKeyr   X25519PublicKeyr   X448PublicKeyr   r   r   r   r<   r   r   r   r   r   r   r   )r,   r   r   s   &&$r$   r   CertificateBuilder.public_keyc  s3        ))(($$&&&&&&&&""
 
 !  "'++-H  c3#3#344H  'CDD!""!!	
 		
r'   c                    V ^8  d   QhRRRR/# )r   numberrW   r    r   r"   )r#   s   "r$   r%   r     s     
 
C 
,> 
r'   c           
        \        V\        4      '       g   \        R4      hV P                  e   \	        R4      hV^ 8:  d   \	        R4      hVP                  4       ^8  d   \	        R4      h\        V P                  V P                  V P                  VV P                  V P                  V P                  V P                  4      # )z%
Sets the certificate serial number.
'Serial number must be of integral type.'The serial number may only be set once.z%The serial number should be positive.3The serial number should not be more than 159 bits.)ro   rW   r   r   r<   
bit_lengthr   r   r   r   r   r   r   r   r,   r   s   &&r$   r    CertificateBuilder.serial_number  s     &#&&EFF*FGGQ;DEE #%E  """!!((	
 		
r'   c                    V ^8  d   QhRRRR/# r   rG   rH   r    r   r"   )r#   s   "r$   r%   r     s     
 
%6 
;M 
r'   c           
        \        V\        P                  4      '       g   \        R4      hV P                  e   \	        R4      h\        V4      pV\        8  d   \	        R4      hV P                  e   WP                  8  d   \	        R4      h\        V P                  V P                  V P                  V P                  VV P                  V P                  V P                  4      # )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.)ro   rL   r   r   r<   rP   _EARLIEST_UTC_TIMEr   r   r   r   r   r   r   r   r,   rG   s   &&r$   r   #CertificateBuilder.not_valid_before  s     $ 1 122899!!-IJJ)$/$$$    ,8M8M1M  "!!((	
 		
r'   c                    V ^8  d   QhRRRR/# r  r"   )r#   s   "r$   r%   r     s     
 
$5 
:L 
r'   c           
        \        V\        P                  4      '       g   \        R4      hV P                  e   \	        R4      h\        V4      pV\        8  d   \	        R4      hV P                  e   WP                  8  d   \	        R4      h\        V P                  V P                  V P                  V P                  V P                  VV P                  V P                  4      # )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.)ro   rL   r   r   r<   rP   r  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               $    V ^8  d   QhRRRRRR/# )r   r   r   r   rm   r    r   r"   )r#   s   "r$   r%   r     s$     
 
#
/3
	
r'   c           
     f   \        V\        4      '       g   \        R4      h\        VP                  W!4      p\        W0P                  4       \        V P                  V P                  V P                  V P                  V P                  V P                  . V P                  OVNV P                  4      # )z-
Adds an X.509 extension to the certificate.
r   )ro   r   r   r   r   r>   r   r   r   r   r   r   r   r   r   r   s   &&& r$   r    CertificateBuilder.add_extension  s     &-00@AAfjj(;	#I/?/?@!""!!*d*	*((	
 		
r'   r   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   r   r   r   r   r   r   r   r   r   r   r    Certificater"   )r#   s   "r$   r%   r   	  sF     0
 0
50
 ,0
 	0
 ;0
 )0
 
0
r'   c                  V P                   f   \        R4      hV P                  f   \        R4      hV P                  f   \        R4      hV P                  f   \        R4      hV P
                  f   \        R4      hV P                  f   \        R4      hVeg   \        V\        P                  \        P                  34      '       g   \        R4      h\        V\        P                  4      '       g   \        R4      hVe,   \        V\        P                  4      '       g   \        R	4      h\         P"                  ! V VVVV4      # )
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   r<   r   r   r   r   r   ro   r   r   r   r   r   r   r	   r   r   create_x509_certificater   s   &&&&$$r$   r   CertificateBuilder.sign	  s.    %EFF$EFF&FGG!!)NOO  (MNN#CDD"kGKK9I9I+JKK ABBk3+<+<== HII*k2+E+EFFG  00
 	
r'   )	r   r   r   r   r   r   r   r   r   r)   )r0   r1   r2   r3   __annotations__r+   r   r   r   r   r   r   r   r   r4   r"   r'   r$   r   r   %  su    // $($(7;$(594857;?>*
&
&3
 15	3
j
8
<
@
.0
 >B0
 ,00
 0
r'   r   c                      ] tR tRt$ R]R&   R]R&   RRR. . 3R R lltR	 R
 ltR R ltR R ltR R lt	R R lt
RRRRR/R R llltRtR# ) CertificateRevocationListBuilderi<  r:   r   list[RevokedCertificate]_revoked_certificatesNc          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r   r   r   last_updater   next_updater9   r:   revoked_certificatesr  r"   )r#   s   "r$   r%   -CertificateRevocationListBuilder.__annotate__@  s<     : : : .: .	:
 3: 7:r'   c                	B    Wn         W n        W0n        W@n        WPn        R # r)   )r   _last_update_next_updater   r  )r,   r   r  r   r9   r!  s   &&&&&&r$   r+   )CertificateRevocationListBuilder.__init__@  s"     (''%%9"r'   c                    V ^8  d   QhRRRR/# )r   r   r   r    r  r"   )r#   s   "r$   r%   r"  N  s     
 

	)
r'   c                	    \        V\        4      '       g   \        R 4      hV P                  e   \	        R4      h\        VV P                  V P                  V P                  V P                  4      # )r   r   )
ro   r   r   r   r<   r  r$  r%  r   r  )r,   r   s   &&r$   r   ,CertificateRevocationListBuilder.issuer_nameN  si     +t,,9::(DEE/&&
 	
r'   c                    V ^8  d   QhRRRR/# )r   r  rH   r    r  r"   )r#   s   "r$   r%   r"  ]       
 
,
	)
r'   c                	   \        V\        P                  4      '       g   \        R 4      hV P                  e   \	        R4      h\        V4      pV\        8  d   \	        R4      hV P                  e   WP                  8  d   \	        R4      h\        V P                  VV P                  V P                  V P                  4      # )r
  !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.)ro   rL   r   r$  r<   rP   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                    V ^8  d   QhRRRR/# )r   r   rH   r    r  r"   )r#   s   "r$   r%   r"  u  r+  r'   c                	   \        V\        P                  4      '       g   \        R 4      hV P                  e   \	        R4      h\        V4      pV\        8  d   \	        R4      hV P                  e   WP                  8  d   \	        R4      h\        V P                  V P                  VV P                  V P                  4      # )r
  r-  r.  z8The next update date must be after the last update date.)ro   rL   r   r%  r<   rP   r  r$  r  r   r   r  )r,   r   s   &&r$   r   ,CertificateRevocationListBuilder.next_updateu  s     +x'8'899899(@AA0=++J  ([;L;L-LJ  0&&
 	
r'   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   rm   r    r  r"   )r#   s   "r$   r%   r"    s$     
 
#
/3
	)
r'   c                $   \        V\        4      '       g   \        R4      h\        VP                  W!4      p\        W0P                  4       \        V P                  V P                  V P                  . V P                  OVNV P                  4      # )z=
Adds an X.509 extension to the certificate revocation list.
r   )ro   r   r   r   r   r>   r   r  r   r$  r%  r  r   s   &&& r$   r   .CertificateRevocationListBuilder.add_extension  s     &-00@AAfjj(;	#I/?/?@/*d*	*&&
 	
r'   c                    V ^8  d   QhRRRR/# )r   revoked_certificateRevokedCertificater    r  r"   )r#   s   "r$   r%   r"    s     
 
#5
	)
r'   c                    \        V\        4      '       g   \        R4      h\        V P                  V P
                  V P                  V P                  . V P                  OVN4      # )z(
Adds a revoked certificate to the CRL.
z)Must be an instance of RevokedCertificate)	ro   r8  r   r  r   r$  r%  r   r  )r,   r7  s   &&r$   add_revoked_certificate8CertificateRevocationListBuilder.add_revoked_certificate  sd     -/ABBGHH/>d((>*=>
 	
r'   r   r   c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r   r   r   r   r   r   r   r   r   r   r   r    CertificateRevocationListr"   )r#   s   "r$   r%   r"    sF     $
 $
5$
 ,$
 	$
 ;$
 )$
 
#$
r'   c               	   V P                   f   \        R4      hV P                  f   \        R4      hV P                  f   \        R4      hVeg   \	        V\
        P                  \
        P                  34      '       g   \        R4      h\	        V\        P                  4      '       g   \        R4      hVe,   \	        V\        P                  4      '       g   \        R4      h\        P                  ! V VVVV4      # )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   r<   r$  r%  ro   r   r   r   r   r   r   r	   r   r   create_x509_crlr   s   &&&&$$r$   r   %CertificateRevocationListBuilder.sign  s     $=>>$ABB$ABB"kGKK9I9I+JKK ABBk3+<+<== HII*k2+E+EFFG  ((
 	
r'   )r   r   r$  r%  r  r)   )r0   r1   r2   r3   r  r+   r   r  r   r   r:  r   r4   r"   r'   r$   r  r  <  s\    //33 $(0404579;:

0
0
&
"$
 >B$
 ,0$
 $
r'   r  c                  `    ] tR tRtRR. 3R R lltR R ltR R ltR	 R
 ltRR R lltRt	R# )RevokedCertificateBuilderi  Nc               $    V ^8  d   QhRRRRRR/# )r   r   r   revocation_dater   r9   r:   r"   )r#   s   "r$   r%   &RevokedCertificateBuilder.__annotate__  s(     & &!& 2& 3	&r'   c                	*    Wn         W n        W0n        R # r)   )r   _revocation_dater   )r,   r   rD  r9   s   &&&&r$   r+   "RevokedCertificateBuilder.__init__  s     , /%r'   c                    V ^8  d   QhRRRR/# )r   r   rW   r    rB  r"   )r#   s   "r$   r%   rE    s     
 
C 
,E 
r'   c                	   \        V\        4      '       g   \        R 4      hV P                  e   \	        R4      hV^ 8:  d   \	        R4      hVP                  4       ^8  d   \	        R4      h\        WP                  V P                  4      # )r  r  z$The serial number should be positiver  )	ro   rW   r   r   r<   r  rB  rG  r   r  s   &&r$   r   'RevokedCertificateBuilder.serial_number  s    &#&&EFF*FGGQ;CDD #%E  )))4+;+;
 	
r'   c                    V ^8  d   QhRRRR/# )r   rG   rH   r    rB  r"   )r#   s   "r$   r%   rE    s     
 
%
	"
r'   c                	   \        V\        P                  4      '       g   \        R 4      hV P                  e   \	        R4      h\        V4      pV\        8  d   \	        R4      h\        V P                  WP                  4      # )r
  z)The revocation date may only be set once.z7The revocation date must be on or after 1950 January 1.)
ro   rL   r   rG  r<   rP   r  rB  r   r   r  s   &&r$   rD  )RevokedCertificateBuilder.revocation_date  s~     $ 1 122899  ,HII)$/$$I  )'7'7
 	
r'   c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   rm   r    rB  r"   )r#   s   "r$   r%   rE    s$     
 
#
/3
	"
r'   c                	    \        V\        4      '       g   \        R 4      h\        VP                  W!4      p\        W0P                  4       \        V P                  V P                  . V P                  OVN4      # )r   )
ro   r   r   r   r   r>   r   rB  r   rG  r   s   &&& r$   r   'RevokedCertificateBuilder.add_extension  sm     &-00@AAfjj(;	#I/?/?@(!!*d*	*
 	
r'   c                    V ^8  d   QhRRRR/# )r   r   r   r    r8  r"   )r#   s   "r$   r%   rE    s     : :Z :3E :r'   c                	    V P                   f   \        R4      hV P                  f   \        R4      h\        P                  ! V 4      # )Nz/A revoked certificate must have a serial numberz1A revoked certificate must have a revocation date)r   r<   rG  r   create_revoked_certificate)r,   r   s   &&r$   buildRevokedCertificateBuilder.build  sI    &NOO  (C  33D99r'   )r   rG  r   r)   )
r0   r1   r2   r3   r+   r   rD  r   rU  r4   r"   r'   r$   rB  rB    s+     %)4857	&
$
 
: :r'   rB  c                   V ^8  d   QhRR/# rt   r"   )r#   s   "r$   r%   r%     s     6 6c 6r'   c                 d    \         P                  \        P                  ! ^4      R4      ^,	          # )   big)rW   
from_bytesosurandomr"   r'   r$   random_serial_numberr^    s     >>"**R.%0A55r'   )I
__future__r   rL   r\  typingcollections.abcr   cryptographyr   "cryptography.hazmat.bindings._rustr   r   cryptography.hazmat.primitivesr   )cryptography.hazmat.primitives.asymmetricr   r	   r
   r   r   r   r   r   r   /cryptography.hazmat.primitives.asymmetric.typesr   r   cryptography.x509.extensionsr   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   r>   rE   rP   rR   r|   Enumr   r   r  r8  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  rB  r^  r"   r'   r$   <module>r}     s  
 #  	  $  @ 1
 
 
 
 3 2&&tQ2  LL
MM
MM
MM
MM
OO
OO
OO
OO	 	 EE!8 !8HF F(ejj 
-Y - ##11  &?? %??  &?? %?? &AA // // // // m
 m
`T
 T
nY
 Y
xB: B:J6r'   