+
    i:  c                  s  a 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHt  ! R R]P&                  4      t] U u/ uF  q P*                  V bK  	  up t]P.                  ]P0                  ]P2                  ]P0                  ]P4                  ]P0                  ]P6                  ]P0                  ]P8                  ]P:                  ]P<                  ]P:                  /tR	] R
&   ]PB                  ]]"3,          t#]PB                  ]"]3,          t$]PJ                  R]PL                  R]PN                  R]PP                  R]PR                  R]P.                  R]PT                  R]P<                  R]PV                  R/	t,R] R&   ],P[                  4        UUu/ uF  w  rW!bK	  	  uppt.]P.                  R%]P2                  R%]PJ                  R&/t/R R lt0R R lt1]Pd                  ! R]Pf                  ]"]43,          ]"]4RR7      t5 ! R R]Pl                  ]5,          4      t7 ! R R 4      t8 ! R! R"4      t9 ! R# R$4      t:R# u up i u uppi )'    )annotationsN)IterableIterator)utils)x509)NameOIDObjectIdentifierc                  sF    ] tR t^t^t^t^t^t^t^t	^t
^t^t^t^t^tRtR# )	_ASN1Type N)__name__
__module____qualname____firstlineno__	BitStringZOctetString
UTF8StringZNumericStringPrintableStringZ	T61String	IA5StringZUTCTimeZGeneralizedTimeZVisibleStringZUniversalStringZ	BMPString__static_attributes__r	       =/usr/lib64/python3.14/site-packages/cryptography/x509/name.pyr   r      s>    IKJMOIIGOMOIr   r   z!dict[ObjectIdentifier, _ASN1Type]_NAMEOID_DEFAULT_TYPEZCNZLZSTZOZOUZCZSTREETZDCZUID_OidNameMap_NAMEOID_TO_NAMEc                    V ^8  d   QhRRRR/# )   valzstr | bytesreturnstrr	   Zformat   "r   __annotate__r   F   s      + # r   c                s    V '       g   R# \        V \        4      '       d-   R\        P                  ! V 4      P	                  R4      ,           # V P                  RR4      p V P                  RR4      p V P                  RR	4      p V P                  R
R4      p V P                  RR4      p V P                  RR4      p V P                  RR4      p V P                  RR4      p V ^ ,          R9   d
   RV ,           p V R,          R8X  d   V RR R,           p V # )z>Escape special characters in RFC4514 Distinguished Name value. #utf8Z\z\\Z"z\"+z\+,z\,Z;z\;Z<z\<Z>z\>Z z\00 Nz\ )r!   r%   i)
isinstancebytesbinasciiZhexlifydecodeZreplace)r      &r   _escape_dn_valuer+   F   s      #uX%%c*11&999 ++dF
#C
++c5
!C
++c5
!C
++c5
!C
++c5
!C
++c5
!C
++c5
!C
++dF
#C
1vSj
2w#~#2hJr   c               s     V ^8  d   QhRRRR/# )r   r   r   r   r	   r   r   r   r   r   c   s     5 5C 5C 5r   c                sZ    V '       g   R # R p\         P                  P                  W4      # )r    c                sr    V P                  ^4      p\        V4      ^8X  d   V# \        \        V^4      4      # )   )grouplenchrint)Zmr      & r   subZ_unescape_dn_value.<locals>.subk   s0    ggajs8q=J3sB<  r   )_RFC4514NameParser_PAIR_REr2   )r   r2   r1   r   _unescape_dn_valuer5   c   s&    ! &&**344r   NameAttributeValueTypeT)Z	covariantc                  s    ] tR t^tRRR/R R lllt]R R l4       t]R R	 l4       t]R
 R l4       tRR R llt	R R lt
R R ltR R ltRtR# )NameAttributeN	_validateTc          
     s,    V ^8  d   QhRRRRRRRRR	R
/# )r   oidr   valuer6   _typez_ASN1Type | Noner8   boolr   Noner	   r   r   r   r   NameAttribute.__annotate__   s<     3& 3&3& &3&  	3& 3& 
3&r   c               	s   \        V\        4      '       g   \        R 4      hV\        P                  8X  dC   V\
        P                  8w  d   \        R4      h\        V\        4      '       g   \        R4      hM!\        V\        4      '       g   \        R4      h\        P                  V4      pVe_   Vw  rg\        VP                  R4      4      pW8  g   W8  d5   RV RV RV 2p	VR	J d   \        V	4      h\        P                  ! V	^R
7       Vf%   \         P                  V\        P"                  4      p\        V\        4      '       g   \        R4      hWn        W n        W0n        R# )z2oid argument must be an ObjectIdentifier instance.z6oid must be X500_UNIQUE_IDENTIFIER for BitString type.z!value must be bytes for BitStringzvalue argument must be a strNr"   zAttribute's length must be >= z and <= z, but it was T)Z
stacklevelz%_type must be from the _ASN1Type enum)r&   r   	TypeErrorr   r   r   ZX500_UNIQUE_IDENTIFIERr'   r   _NAMEOID_LENGTH_LIMITgetr.   Zencode
ValueErrorwarningsZwarnr   r   _oid_valuer;   )
selfr9   r:   r;   r8   Zlength_limitsZ
min_lengthZ
max_lengthZc_lenZmsgs
   &&&&$     r   __init__ZNameAttribute.__init__   sP    #/00D  I'''g444L  eU++ CDD ,E3'':;;-11#6$%2"JV,-E!U%74ZL A$]5';  $$S/)MM#!4 =)--c93G3GHE%++CDD	.3 %
r   c                   V ^8  d   QhRR/# )r   r   r   r	   r   r   r   r   r>      s      % r   c                	    V P                   # N)rD   rF   r*   r   r9   ZNameAttribute.oid   s    yyr   c               rH   )r   r   r6   r	   r   r   r   r   r>      s      - r   c                	rI   rJ   )rE   rK   r*   r   r:   ZNameAttribute.value   s    {{r   c               rH   r   r   r   r	   r   r   r   r   r>      s     F F Fr   c                sj    \         P                  V P                  V P                  P                  4      # )z\
The short attribute name (for example "CN") if available,
otherwise the OID dotted string.
)r   rA   r9   Zdotted_stringrK   r*   r   rfc4514_attribute_nameZ$NameAttribute.rfc4514_attribute_name   s%      ##DHHdhh.D.DEEr   c               r   r   attr_name_overridesz_OidNameMap | Noner   r   r	   r   r   r   r   r>      s     = =#5=	=r   c                s    V'       d   VP                  V P                  4      MRpVf   V P                  pV R\        V P                  4       2# )z
Format as RFC4514 Distinguished Name string.

Use short attribute name if available, otherwise fall back to OID
dotted string.
N=)rA   r9   rM   r+   r:   )rF   rO   Z	attr_name   && r   rfc4514_stringZNameAttribute.rfc4514_string   sP     2E##DHH-$ 	 33IA.tzz:;<<r   c               r   r   otherZobjectr   r<   r	   r   r   r   r   r>      s     C CF Ct Cr   c                	s    \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # rJ   )r&   r7   NotImplementedr9   r:   rF   rT      &&r   __eq__ZNameAttribute.__eq__   s=    %//!!xx599$BBu{{)BBr   c               rH   r   r   r0   r	   r   r   r   r   r>      s     , ,# ,r   c                	sD    \        V P                  V P                  34      # rJ   )hashr9   r:   rK   r*   r   __hash__ZNameAttribute.__hash__   s    TXXtzz*++r   c               rH   rL   r	   r   r   r   r   r>      s     H H# Hr   c                	s>    R V P                    RV P                  : R2# )z<NameAttribute(oid=z, value=)>)r9   r:   rK   r*   r   __repr__ZNameAttribute.__repr__   s    $TXXJhtzznBGGr   )rD   r;   rE   rJ   )r
   r   r   r   rG   propertyr9   r:   rM   rR   rX   r[   r]   r   r	   r   r   r7   r7      sq    3& 3& 3&j     F F="C,H Hr   r7   c                  sz    ] tR t^tR R ltR R ltR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tR# )RelativeDistinguishedNamec               rH   )r   
attributesIterable[NameAttribute]r	   r   r   r   r   &RelativeDistinguishedName.__annotate__   s     E E#: Er   c                	sT   \        V4      pV'       g   \        R 4      h\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       g   \        R4      hWn        \        V4      V n        \        V P                  4      \        V4      8w  d   \        R4      hR# )z-a relative distinguished name cannot be emptyc              3  B   "   T F  p\        V\        4      x  K  	  R # 5irJ   r&   r7   .0xr1   r   	<genexpr>Z5RelativeDistinguishedName.__init__.<locals>.<genexpr>   s     DA:a//   FTz/attributes must be an iterable of NameAttributez$duplicate attributes are not allowedN)listrB   allr?   _attributesZ	frozenset_attribute_setr.   rF   r`   rW   r   rG   Z"RelativeDistinguishedName.__init__   s    *%
LMMsDDsssDDDDMNN &'
3t""#s:6CDD 7r   c               r   r   r9   r   r   z list[NameAttribute[str | bytes]]r	   r   r   r   r   rb           1 11 
*1r   c                	T    V  Uu. uF  q"P                   V8X  g   K  VNK  	  up# u upi rJ   r9   rF   r9   irQ   r   get_attributes_for_oidZ0RelativeDistinguishedName.get_attributes_for_oid   &      04a55C<4000   %%Nc               r   rN   r	   r   r   r   r   rb      s     
 
#5
	
r   c                sN   a RP                  V3R lV P                   4       4      # )z
Format as RFC4514 Distinguished Name string.

Within each RDN, attributes are joined by '+', although that is rarely
used in certificates.
r#   c              3  F   <"   T F  pVP                  S4      x  K  	  R # 5irJ   rR   rf   attrrO      & r   rh   Z;RelativeDistinguishedName.rfc4514_string.<locals>.<genexpr>  s'      
(  344(   !joinrl   rF   rO      &fr   rR   Z(RelativeDistinguishedName.rfc4514_string   s)     xx 
((
 
 	
r   c               r   rS   r	   r   r   r   r   rb     s     ; ;F ;t ;r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8H  # rJ   )r&   r_   rU   rm   rV   rW   r   rX   Z RelativeDistinguishedName.__eq__  s-    %!:;;!!""e&:&:::r   c               rH   rY   r	   r   r   r   r   rb     s     ) )# )r   c                	,    \        V P                  4      # rJ   )rZ   rm   rK   r*   r   r[   Z"RelativeDistinguishedName.__hash__  s    D''((r   c               rH   r   r   zIterator[NameAttribute]r	   r   r   r   r   rb     s     & &1 &r   c                	r   rJ   )Ziterrl   rK   r*   r   __iter__Z"RelativeDistinguishedName.__iter__  s    D$$%%r   c               rH   rY   r	   r   r   r   r   rb     s     % % %r   c                	r   rJ   )r.   rl   rK   r*   r   __len__Z!RelativeDistinguishedName.__len__  s    4##$$r   c               rH   rL   r	   r   r   r   r   rb     s     G G# Gr   c                	s*    R V P                  4        R2# )z<RelativeDistinguishedName(r\   ry   rK   r*   r   r]   Z"RelativeDistinguishedName.__repr__  s    ,T-@-@-B,C2FFr   )rm   rl   rJ   )r
   r   r   r   rG   ru   rR   rX   r[   r   r   r]   r   r	   r   r   r_   r_      s2    E1
;)&%G Gr   r_   c                  s   ] tR tRt]P
                  R R l4       t]P
                  R R l4       tR R lt]RR	 R
 ll4       tRR R llt	R R lt
]R R l4       tR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tR# )Namei  c               r   )r   r`   ra   r   r=   r	   r   r   r   r   Name.__annotate__  s    HH#:HtHr   c                	    R # rJ   r	   rn   rW   r   rG   Name.__init__  s    EHr   c               r   )r   r`   z#Iterable[RelativeDistinguishedName]r   r=   r	   r   r   r   r   r     s      =	r   c                	r   rJ   r	   rn   rW   r   rG   r     s     r   c               r   )r   r`   z3Iterable[NameAttribute | RelativeDistinguishedName]r   r=   r	   r   r   r   r   r   "  s      G 
r   c           	     	s   \        V4      p\        ;QJ d    R  V 4       F  '       d   K   RM	  RM! R  V 4       4      '       d=   V Uu. uF(  p\        \        P                  ! \
        V4      .4      NK*  	  upV n        R# \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d8   \        P                  ! \        P                  \        ,          V4      V n        R# \        R4      hu upi )c              3  rc   rJ   rd   re   r1   r   rh    Name.__init__.<locals>.<genexpr>'  s     @Zz!]++Zri   FTc              3  rc   rJ   )r&   r_   re   r1   r   rh   r   ,  s     N:aA899:ri   zNattributes must be a list of NameAttribute or a list RelativeDistinguishedNameN)	rj   rk   r_   typingZcastr7   rl   ZListr?   )rF   r`   rg   rQ   r   rG   r   "  s     *%
3@Z@333@Z@@@ $ #A *6;;}a+H*IJ# D SN:NSSSN:NNN%{{56
 D 7  s   
.C>Nc               $    V ^8  d   QhRRRRRR/# )r   datar   rO   z_NameOidMap | Noner   r   r	   r   r   r   r   r   7  s-     K KK 0K 
	Kr   c                	sH    \        Y;'       g    / 4      P                  4       # rJ   )r3   parse)Zclsr   rO      &&&r   from_rfc4514_stringZName.from_rfc4514_string6  s      "$(A(ArBHHJJr   c               r   rN   r	   r   r   r   r   r   >  s     
 
#5
	
r   c                s`   a RP                  V3R l\        V P                  4       4       4      # )a  
Format as RFC4514 Distinguished Name string.
For example 'CN=foobar.com,O=Foo Corp,C=US'

An X.509 name is a two-level structure: a list of sets of attributes.
Each list element is separated by ',' and within each list element, set
elements are separated by '+'. The latter is almost never used in
real world certificates. According to RFC4514 section 2.1 the
RDNSequence must be reversed when converting to string representation.
r$   c              3  rx   rJ   ry   rz   r|   r   rh   Z&Name.rfc4514_string.<locals>.<genexpr>K  s'      
2  3442r}   )r   reversedrl   r   r   r   rR   ZName.rfc4514_string>  s.     xx 
 !1!12
 
 	
r   c               r   ro   r	   r   r   r   r   r   P  rp   r   c                	rq   rJ   rr   rs   rQ   r   ru   ZName.get_attributes_for_oidP  rv   rw   c               rH   )r   r   zlist[RelativeDistinguishedName]r	   r   r   r   r   r   W  s        5  r   c                	rI   rJ   rl   rK   r*   r   rdnsZ	Name.rdnsV  s    r   c               r   )r   backendz
typing.Anyr   r'   r	   r   r   r   r   r   Z  s     1 1J 1% 1r   c                	s.    \         P                  ! V 4      # rJ   )	rust_x509Zencode_name_bytes)rF   r   rW   r   public_bytesZName.public_bytesZ  s    **400r   c               r   rS   r	   r   r   r   r   r   ]  s     5 5F 5t 5r   c                	r   rJ   )r&   r   rU   rl   rV   rW   r   rX   ZName.__eq__]  s,    %&&!!5#4#444r   c               rH   rY   r	   r   r   r   r   r   c  s     - -# -r   c                	s>    \        \        V P                  4      4      # rJ   )rZ   Ztuplerl   rK   r*   r   r[   ZName.__hash__c  s     E$**+,,r   c               rH   r   r	   r   r   r   r   r   h  s      1 r   c              #  	sL   "   V P                    F  pT R j  xL
  K  	  R #  L
5irJ   r   )rF   rdnr1   r   r   ZName.__iter__h  s     ##CNN $s   $"$c               rH   rY   r	   r   r   r   r   r   l  s     9 9 9r   c                	s:    \        R  V P                   4       4      # )c              3  s8   "   T F  p\        V4      x  K  	  R # 5irJ   )r.   )rf   r   r1   r   rh   ZName.__len__.<locals>.<genexpr>m  s     8'73s88'7s   )Zsumrl   rK   r*   r   r   ZName.__len__l  s    8t'7'7888r   c               rH   rL   r	   r   r   r   r   r   o  s     ! !# !r   c                	sR    R P                  R V P                   4       4      pRV R2# )r$   c              3  s@   "   T F  qP                  4       x  K  	  R # 5irJ   ry   )rf   r{   r1   r   rh   Z Name.__repr__.<locals>.<genexpr>p  s     K:J$++--:Js   z<Name(r\   r~   rF   r   r1   r   r]   ZName.__repr__o  s+    xxK$:J:JKKvR  r   r   rJ   )r
   r   r   r   r   ZoverloadrG   Zclassmethodr   rR   ru   r^   r   r   rX   r[   r   r   r]   r   r	   r   r   r   r     s    __H H__ ( K K
$1    15-
9! !r   r   c                  s   ] tR tRt]P
                  ! R4      t]P
                  ! R4      tRt]P
                  ! ]4      t	Rt
RtRtR]! ]P                  4       R	2t]
 R
] 2t] R
] 2t] R
] 2t]P
                  ! R] R
] R] R
] R] R
] R2]P(                  4      t]P
                  ! R4      tR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR tR!# )"r3   it  z!(0|([1-9]\d*))(\.(0|([1-9]\d*)))+z[a-zA-Z][a-zA-Z\d-]*z!\\([\\ #=\"\+,;<>]|[\da-zA-Z]{2})z7[\x01-\x1f\x21\x24-\x2A\x2D-\x3A\x3D\x3F-\x5B\x5D-\x7F]z3[\x01-\x21\x23-\x2A\x2D-\x3A\x3D\x3F-\x5B\x5D-\x7F]z7[\x01-\x1F\x21\x23-\x2A\x2D-\x3A\x3D\x3F-\x5B\x5D-\x7F]z[\x80-Z]Z|z
        (
            (z!)
            (
                (z)*
                (z$)
            )?
        )?
        z#([\da-zA-Z]{2})+c               r   )r   r   r   rO   _NameOidMapr   r=   r	   r   r   r   r   _RFC4514NameParser.__annotate__  s!     8 8S 8{ 8t 8r   c                	s,    Wn         ^ V n        W n        R# )r    N)_data_idx_attr_name_overrides)rF   r   rO   r   r   rG   Z_RFC4514NameParser.__init__  s    
	$7!r   c               rH   )r   r   r<   r	   r   r   r   r   r     s     + +4 +r   c                	sF    V P                   \        V P                  4      8  # rJ   )r   r.   r   rK   r*   r   	_has_dataZ_RFC4514NameParser._has_data  s    yy3tzz?**r   c               rH   )r   r   z
str | Noner	   r   r   r   r   r     s      z r   c                	sl    V P                  4       '       d   V P                  V P                  ,          # R # rJ   )r   r   r   rK   r*   r   _peekZ_RFC4514NameParser._peek  s%    >>::dii((r   c               r   )r   chr   r   r=   r	   r   r   r   r   r     s      S T r   c                	sn    V P                  4       V8w  d   \        hV ;P                  ^,          un        R# )r,   N)r   rB   r   )rF   r   rW   r   
_read_charZ_RFC4514NameParser._read_char  s#    ::<2		Q	r   c               rH   rL   r	   r   r   r   r   r     s      s r   c                	s    VP                  V P                  V P                  R 7      pVf   \        hVP	                  4       pV ;P                  \        V4      ,          un        V# ))Zpos)matchr   r   rB   r-   r.   )rF   Zpatr   r   s   &&  r   _read_reZ_RFC4514NameParser._read_re  sI    		$**$))	4=kkm		SX	
r   c               rH   )r   r   r   r	   r   r   r   r   r     s     $ $t $r   c                s   V P                  4       '       g   \        . 4      # V P                  4       .pV P                  4       '       d3   V P                  R4       VP	                  V P                  4       4       KH  \        \        V4      4      # )z
Parses the `data` string and converts it to a Name.

According to RFC4514 section 2.1 the RDNSequence must be
reversed when converting to string representation. So, when
we parse it, we need to reverse again to get the RDNs on the
correct order.
r$   )r   r   
_parse_rdnr   appendr   r   r1   r   r   Z_RFC4514NameParser.parse  sd     ~~8O!"nnOOC KK)*HTN##r   c               rH   )r   r   r_   r	   r   r   r   r   r     s     . .5 .r   c                	s    V P                  4       .pV P                  4       R 8X  d3   V P                  R 4       VP                  V P                  4       4       KG  \	        V4      # )r#   )	_parse_nar   r   r   r_   )rF   Znasr1   r   r   Z_RFC4514NameParser._parse_rdn  sI    ~~ jjlc!OOC JJt~~'((--r   c               rH   )r   r   r7   r	   r   r   r   r   r     s     ) )= )r   c                	sV    V P                  V P                  4      p\        V4      pV P                  R4       V P                  4       R8X  dH   V P                  V P                  4      p\        P                  ! VR,          4      P                  4       pM&V P                  V P                  4      p\        V4      p\!        W$4      #   \         dX    T P                  T P                  4      pT P
                  P                  T\        P                  T4      4      pTf   \        h Li ; i)NrP   r!   :r,   NN)r   _OID_REr   rB   	_DESCR_REr   rA   _NAME_TO_NAMEOIDr   r   _HEXSTRING_REr(   Z	unhexlifyr)   
_STRING_REr5   r7   )rF   Z	oid_valuer9   Znamer:   Z	raw_values   &     r   r   Z_RFC4514NameParser._parse_na  s    
	.dll3I #9-C::<3MM$"4"45E&&uRy188:Edoo6I&y1ES((%  	!==0D++//&**40C {   	!s   C AD('D()r   r   r   N) r
   r   r   r   reZcompiler   r   Z_PAIRr4   Z_LUTF1Z_SUTF1Z_TUTF1r/   sysZ
maxunicodeZ_UTFMBZ	_LEADCHARZ_STRINGCHARZ
_TRAILCHARZVERBOSEr   r   rG   r   r   r   r   r   r   r   r   r	   r   r   r3   r3   t  s   jj=>G

23I0Ezz% HGFCFGFs3>>*+1-F81VH%IXQvh'KHAfX&J[% !aw 'Qug &		 	

J JJ34M8+

$*.) )r   r3   )r   r   )r,   i@   );__conditional_annotations__Z
__future__r   r(   r   r   r   rC   Zcollections.abcr   r   Zcryptographyr   Z"cryptography.hazmat.bindings._rustr   r   Zcryptography.x509.oidr   r   ZEnumr   r:   Z_ASN1_TYPE_TO_ENUMZCOUNTRY_NAMEr   ZJURISDICTION_COUNTRY_NAMEZSERIAL_NUMBERZDN_QUALIFIERZEMAIL_ADDRESSr   ZDOMAIN_COMPONENTr   Z__annotations__ZMappingr   r   r   ZCOMMON_NAMEZLOCALITY_NAMEZSTATE_OR_PROVINCE_NAMEZORGANIZATION_NAMEZORGANIZATIONAL_UNIT_NAMEZSTREET_ADDRESSZUSER_IDr   Zitemsr   r@   r+   r5   ZTypeVarZUnionr'   r6   ZGenericr7   r_   r   r3   )rt   ZkZvr   s   000@r   <module>r      s<  
 # "  	 
   .  @ ;

  +44)Qggqj)4 )33%%y'@'@944)339..i11< 8  nn-s23nnS"223
 3""Ds$$d#HdOOU
! + 
 &6%;%;%=>%=TQAD%=>  &%%v :5&  
LLe	 aHFNN#9: aHH3G 3GlX! X!vh) h)e
 56 ?s   I'I