bg:UddlmZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z mZGddejZdeDZe jeje jeje jeje jeje jeje jejiZd ed <ejeefZejeefZe j d e j!d e j"d e j#de j$de jde j%de jde j&di Z'ded<de'(DZ)d%dZ*d&dZ+GddZ,Gdd Z-Gd!d"Z.Gd#d$Z/dS)') annotationsN)utils)x509)NameOIDObjectIdentifierc>eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd S) _ASN1Type N)__name__ __module__ __qualname__ BitString OctetString UTF8String NumericStringPrintableString T61String IA5StringUTCTimeGeneralizedTime VisibleStringUniversalString BMPStringi/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/cryptography/x509/name.pyr r sJIKJMOIIGOMOIIIr&r ci|] }|j| Sr%)value).0is r' r,!s444Qagq444r&z(typing.Dict[ObjectIdentifier, _ASN1Type]_NAMEOID_DEFAULT_TYPECNLSTOOUCSTREETDCUID _OidNameMap_NAMEOID_TO_NAMEci|]\}}|| Sr%r%)r*kvs r'r,r,<s>>>TQAq>>>r&valtyping.Union[str, bytes]returnstrc<|sdSt|tr*dtj|dzS|dd}|dd}|dd }|d d }|d d }|dd}|dd}|dd}|ddvrd|z}|ddkr |dddz}|S)z>Escape special characters in RFC4514 Distinguished Name value.#utf8\z\\"z\"+z\+,z\,;z\;z\>z\00r)rB rLNz\ ) isinstancebytesbinasciihexlifydecodereplace)r<s r'_escape_dn_valuerT?s r#u:X%c**11&9999 ++dF # #C ++c5 ! !C ++c5 ! !C ++c5 ! !C ++c5 ! !C ++c5 ! !C ++c5 ! !C ++dF # #C 1vSj 2w#~~#2#h Jr&cP|sdSd}tj||S)NrAc|d}t|dkr|Stt|dS)N)grouplenchrint)mr<s r'subz_unescape_dn_value..subds;ggajj s88q==J3sB<<   r&)_RFC4514NameParser_PAIR_REr^)r<r^s r'_unescape_dn_valuera\s9 r !!!  & * *3 4 44r&ceZdZ dddddZeddZeddZed dZ dd!dZd"dZ d#dZ d dZ dS)$ NameAttributeNT) _validateoidrr)r=_typetyping.Optional[_ASN1Type]rdboolr>Nonec@t|tstd|tjkrD|t jkrtdt|tstdn$t|tstd|t j ks|t j krt|tsJt| d}|dkr|durtd|dkr)tjd |d |%t"|tj}t|tstd ||_||_||_dS) Nz2oid argument must be an ObjectIdentifier instance.z6oid must be X500_UNIQUE_IDENTIFIER for BitString type.z!value must be bytes for BitStringzvalue argument must be a strrCTz/Country name must be a 2 character country codezUCountry names should be two characters, but the attribute is {} characters in length.) stacklevelz%_type must be from the _ASN1Type enum)rNr TypeErrorr rrX500_UNIQUE_IDENTIFIERrOr? COUNTRY_NAMEJURISDICTION_COUNTRY_NAMErZencode ValueErrorwarningswarnformatr-getr_oid_valuerf)selfrer)rfrdc_lens r'__init__zNameAttribute.__init__ps#/00 D  I' ' 'g444LeU++ E CDDD EeS)) @ >??? 7' ' 'g777eS)) ) )) V,,--Ezzi4// E! <)rur~s r'__repr__zNameAttribute.__repr__s@GGMMMr&r}) rerr)r=rfrgrdrhr>ri)r>r)r>r=r>r?rrr>r?rrr>rhr>r\) rrrr{propertyrer)rrrrrr%r&r'rcrcos  -1 6  666666pXXFFFXFCG====="CCCC ,,,,NNNNNNr&rccReZdZddZddZ ddd ZddZddZddZddZ ddZ d S) RelativeDistinguishedName attributestyping.Iterable[NameAttribute]c4t|}|stdtd|Dstd||_t ||_t|jt|krtddS)Nz-a relative distinguished name cannot be emptyc3@K|]}t|tVdSr}rNrcr*xs r' z5RelativeDistinguishedName.__init__..s,DDA:a//DDDDDDr&z/attributes must be an iterable of NameAttributez$duplicate attributes are not allowed)listrrallrm _attributes frozenset_attribute_setrZryrs r'r{z"RelativeDistinguishedName.__init__s*%%  NLMM MDDDDDDD OMNN N&' 33 t" # #s: 6 6CDD D 7 6r&rerr>typing.List[NameAttribute]c fd|DS)Nc*g|]}|jk |Sr%rer*r+res r' zDRelativeDistinguishedName.get_attributes_for_oid.. 000a15C<<<<.F      3 4 4      r&joinrryrs `r'rz(RelativeDistinguishedName.rfc4514_stringsDxx    (      r&rrrhcZt|tstS|j|jkSr})rNrrrrs r'rz RelativeDistinguishedName.__eq__s,%!:;; "! !"e&:::r&r\c*t|jSr})rrr~s r'rz"RelativeDistinguishedName.__hash__sD'(((r&typing.Iterator[NameAttribute]c*t|jSr})iterrr~s r'__iter__z"RelativeDistinguishedName.__iter__sD$%%%r&c*t|jSr})rZrr~s r'__len__z!RelativeDistinguishedName.__len__s4#$$$r&c2d|dS)Nzrr~s r'rz"RelativeDistinguishedName.__repr__sFT-@-@-B-BFFFFr&)rrrerr>rr}rrrr>rr) rrrr{rrrrrrrr%r&r'rrs E E E E1111 CG      ;;;; ))))&&&&%%%%GGGGGGr&rceZdZejd&dZejd'dZd(d Ze d)d*dZ d)d+dZd,dZ e d-dZ d)d.dZ d/dZ d0d!Zd1d#Zd0d$Zd2d%Zd S)3Namerrr>ricdSr}r%rs r'r{z Name.__init__ s r&*typing.Iterable[RelativeDistinguishedName]cdSr}r%rs r'r{z Name.__init__s  r&Gtyping.Iterable[typing.Union[NameAttribute, RelativeDistinguishedName]]c*t|}td|Drd|D|_dStd|Dr1tjtjt ||_dStd)Nc3@K|]}t|tVdSr}rrs r'rz Name.__init__..s,@@z!]++@@@@@@r&c^g|]*}ttjt|g+Sr%)rtypingcastrcrs r'rz!Name.__init__..s?   *6;}a+H+H*IJJ   r&c3@K|]}t|tVdSr})rNrrs r'rz Name.__init__.."s-NNaA899NNNNNNr&zNattributes must be a list of NameAttribute or a list RelativeDistinguishedName)rrrrrListrrmrs r'r{z Name.__init__s *%% @@Z@@@ @ @   #   D   NN:NNN N N %{ 56   D   7 r&Ndatar?rtyping.Optional[_NameOidMap]cJt||piSr})r_parse)clsrrs r'from_rfc4514_stringzName.from_rfc4514_string,s& "$(;(ArBBHHJJJr&rcjdfdt|jDS)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. rGc3BK|]}|VdSr}rrs r'rz&Name.rfc4514_string..Arr&)rreversedrrs `r'rzName.rfc4514_string4sLxx     !122      r&rerrc fd|DS)Nc*g|]}|jk |Sr%rrs r'rz/Name.get_attributes_for_oid..Irr&r%rs `r'rzName.get_attributes_for_oidFrr&&typing.List[RelativeDistinguishedName]c|jSr}rr~s r'rdnsz Name.rdnsKs r&backend typing.AnyrOc*tj|Sr}) rust_x509encode_name_bytes)ryrs r' public_byteszName.public_bytesOs*4000r&rrrhcZt|tstS|j|jkSr})rNrrrrs r'rz Name.__eq__Rs+%&& "! !5#444r&r\cDtt|jSr})rtuplerr~s r'rz Name.__hash__XsE$*++,,,r&rc#0K|jD] }|D]}|V dSr}r)ryrdnavas r'rz Name.__iter__]sA#  C      r&c>td|jDS)Nc34K|]}t|VdSr})rZ)r*rs r'rzName.__len__..cs(883s88888888r&)sumrr~s r'rz Name.__len__bs"88t'7888888r&cVdd|jD}d|dS)NrGc3>K|]}|VdSr}r)r*rs r'rz Name.__repr__..fs.KK$++--KKKKKKr&zri)rrr>ri)rrr>rir})rr?rrr>rrr)r>r)rrr>rOrrrr)rrrroverloadr{ classmethodrrrrrrrrrrrr%r&r'rr sk _   _  _   _ ,=AKKKK[KCG     $1111    X 111115555 ----  9999!!!!!!r&rceZdZejdZejdZdZejeZdZ dZ dZ de e jdZe d eZe d eZe d eZejd ed ed ed ed ed ed ejZejdZd$dZd%dZd&dZd'dZd(dZd)dZd*d Zd+d"Zd#S),r_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#([\da-zA-Z]{2})+rr?r _NameOidMapr>ric0||_d|_||_dS)Nr)_data_idx_attr_name_overrides)ryrrs r'r{z_RFC4514NameParser.__init__s  $7!!!r&rhc<|jt|jkSr})rrZrr~s r' _has_dataz_RFC4514NameParser._has_datasy3tz??**r&typing.Optional[str]cR|r|j|jSdSr})rrrr~s r'_peekz_RFC4514NameParser._peeks( >>   ):di( (tr&chcd||krt|xjdz c_dS)NrW)rrrr)ryrs r' _read_charz_RFC4514NameParser._read_chars. ::<<2    Q r&c||j|j}|t|}|xjt |z c_|S)N)pos)matchrrrrrYrZ)rypatr r<s r'_read_rez_RFC4514NameParser._read_resN $*$) 44 = kkmm SXX  r&rc,|g}|rP|d|||Pt t |S)a' 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. rG) _parse_rdnrrappendrrrs r'rz_RFC4514NameParser.parses!!"nn + OOC KK)) * * *nn +HTNN###r&rc"|g}|dkrT|d|||dkTt |S)NrF) _parse_narrrr)rynass r'rz_RFC4514NameParser._parse_rdnsz~~ jjllc!! OOC JJt~~'' ( ( (jjllc!!)---r&rcc ||j}t|}nf#t$rY||j}|j|t|}|tYnwxYw|d| dkrI||j }tj |dd }n)||j}t|}t!||S)NrrBrW)r _OID_RErrr _DESCR_RErrv_NAME_TO_NAMEOIDrr _HEXSTRING_RErP unhexlifyrR _STRING_RErarc)ry oid_valuerenamer) raw_values r'rz_RFC4514NameParser._parse_nas, . dl33I#9--CC ! ! !==00D+//&**400C{  {  !  ::<<3  MM$"455E&uQRRy1188::EE do66I&y11ES%(((s,A BBN)rr?rrr>ri)r>rh)r>r)rr?r>rir)r>r)r>r)r>rc)rrrrecompilerr_PAIRr`_LUTF1_SUTF1_TUTF1r[sys maxunicode_UTFMB _LEADCHAR _STRINGCHAR _TRAILCHARVERBOSErrr{rrrr rrrr%r&r'r_r_jsbj=>>G 233I 0Erz%  H GF CF GF -ss3>** - - -F%%V%%I''v''K&&f&&J        !&      %       JBJ344M8888 ++++  $$$$"....))))))r&r_)r<r=r>r?)r<r?r>r?)0 __future__rrPrr#rrs cryptographyr"cryptography.hazmat.bindings._rustrrcryptography.x509.oidrrEnumr _ASN1_TYPE_TO_ENUMrorrp SERIAL_NUMBER DN_QUALIFIER EMAIL_ADDRESSrDOMAIN_COMPONENTr-__annotations__Mappingr?r7r COMMON_NAME LOCALITY_NAMESTATE_OR_PROVINCE_NAMEORGANIZATION_NAMEORGANIZATIONAL_UNIT_NAMESTREET_ADDRESSUSER_IDr8itemsrrTrarcrrr_r%r&r'r>s #"""""" @@@@@@;;;;;;;;        54)444 )3 %y'@ 94 )3 9. i1 Cn-s23 nS"223   3 "D s $d # H d OU !    ?>%5%;%;%=%=>>>:5555&dNdNdNdNdNdNdNdNN2G2G2G2G2G2G2G2Gj\!\!\!\!\!\!\!\!~d)d)d)d)d)d)d)d)d)d)r&