|i0 ddlmZddlZddlZddlZddlZddlZddlmZm Z ddl m Z ddl m Z ddl mZddlmZmZddlmZdd lmZdd lmZmZdd lmZdd lmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%dd l&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-ej.dddZ/ddZ0ddZ1Gdde2Z3Gdde2Z4Gddej5 Z6Gd!d"Z7Gd#d$e6Z8Gd%d&e6Z9Gd'd(e6Z:Gd)d*e6Z;Gd+d,e6Z<Gd-d.Z=Gd/d0e6Z>Gd1d2e6Z?Gd3d4e6Z@Gd5d6e6ZAGd7d8ZBGd9d:e jCZDeDjEeDjFeDjGeDjHeDjIeDjJeDjKeDjLd;ZMeDjEdeDjHd?eDjId@eDjJdAeDjKdBeDjLdCiZNeDjOdeDjEdeDjHd?eDjId@eDjJdAeDjPdCeDjKdDeDjLdEi ZQGdFdGe6ZRGdHdIe6ZSGdJdKZTGdLdMZUGdNdOZVGdPdQe6ZWGdRdSe6ZXGdTdUe6ZYGdVdWe6ZZGdXdYe jCZ[dZe[DZ\Gd[d\e6Z]Gd]d^e6Z^Gd_d`e6Z_Gdadbe6Z`Gdcddejae/ZbGdedfZcGdgdhe6ZdGdidje6ZeGdkdle6ZfGdmdne6ZgGdodpe6ZhGdqdre6ZiGdsdte6ZjGdudve6ZkGdwdxe6ZlGdydze6ZmGd{d|e6ZnGd}d~ZoGddZpGddZqGdde6ZrGdde6ZsdS)) annotationsN)IterableIterator)utils)asn1)x509) constant_time serialization)EllipticCurvePublicKey) RSAPublicKey)CertificateIssuerPublicKeyTypesCertificatePublicKeyTypes)SignedCertificateTimestamp) DirectoryNameDNSName GeneralName IPAddress OtherName RegisteredID RFC822NameUniformResourceIdentifier_IPAddressTypes)NameRelativeDistinguishedName)CRLEntryExtensionOID ExtensionOIDObjectIdentifierOCSPExtensionOIDExtensionTypeVar ExtensionTypeT)bound covariant public_keyrreturnbytesct|tr5|tjjtjj}nt|tr5|tjj tjj }nH|tjjtjj }tj |}tj|SN) isinstancer public_bytesr EncodingDER PublicFormatPKCS1r X962UncompressedPointSubjectPublicKeyInforparse_spki_for_datahashlibsha1digest)r#data serializeds JC:\PYTHON\_runtimes\venv\Lib\site-packages\cryptography/x509/extensions.py_key_identifier_from_public_keyr83s*l++4&&  " &  & ,   J 6 7 7 4&&  " '  & 8    ,,  " &  & ;  ' 33 <   $ $ & && field_namestrc.dfd }fd}fd}|||fS)Nr$intc>tt|Sr')lengetattrselfr:s r7 len_methodz*_make_sequence_methods..len_methodLs74,,---r9c>tt|Sr')iterr@rAs r7 iter_methodz+_make_sequence_methods..iter_methodOsGD*--...r9c0t||Sr')r@)rBidxr:s r7getitem_methodz._make_sequence_methods..getitem_methodRstZ((--r9r$r=)r:rCrFrIs` r7_make_sequence_methodsrLKsb....../////..... {N 22r9c eZdZdfd ZxZS) DuplicateExtensionmsgr;oidrr$NonecXt|||_dSr'super__init__rPrBrOrP __class__s r7rUzDuplicateExtension.__init__Y& r9rOr;rPrr$rQ__name__ __module__ __qualname__rU __classcell__rWs@r7rNrNX=r9rNc eZdZdfd ZxZS) ExtensionNotFoundrOr;rPrr$rQcXt|||_dSr'rSrVs r7rUzExtensionNotFound.__init___rXr9rYrZr_s@r7rbrb^r`r9rbc"eZdZUded<ddZdS)r z!typing.ClassVar[ObjectIdentifier]rPr$r%c&td|)z7 Serializes the extension type to DER. z3public_bytes is not implemented for extension type )NotImplementedErrorrBs r7r)zExtensionType.public_bytesgs!" J$ J J   r9Nr$r%)r[r\r]__annotations__r)rKr9r7r r ds6****      r9) metaclasscLeZdZddZdd Zdd Zed\ZZZ ddZ dS) Extensions extensions"Iterable[Extension[ExtensionType]]r$rQc.t||_dSr')list _extensions)rBrms r7rUzExtensions.__init__qs ++r9rPrExtension[ExtensionType]cR|D]}|j|kr|cStd|d|)NNo  extension was found)rPrb)rBrPexts r7get_extension_for_oidz Extensions.get_extension_for_oidtsJ  Cw#~~  ?c ? ? ?EEEr9extclasstype[ExtensionTypeVar]Extension[ExtensionTypeVar]c|turtd|D]}t|j|r|cSt d|d|j)Nz|UnrecognizedExtension can't be used with get_extension_for_class because more than one instance of the class may be present.rtru)UnrecognizedExtension TypeErrorr(valuerbrP)rBrxrvs r7get_extension_for_classz"Extensions.get_extension_for_class}s , , ,)    C#)X..    0( 0 0 0(,   r9rqr;cd|jdS)Nz )rqrgs r7__repr__zExtensions.__repr__s2d.2222r9N)rmrnr$rQ)rPrr$rr)rxryr$rzr$r;) r[r\r]rUrwrrL__len____iter__ __getitem__rrKr9r7rlrlps,,,,FFFF    $&<%;M%J%J"GX{333333r9rlc\eZdZejZddZdd Zdd Zdd Z e dd Z ddZ dS) CRLNumber crl_numberr=r$rQc\t|tstd||_dSNzcrl_number must be an integerr(r=r} _crl_numberrBrs r7rUzCRLNumber.__init__1*c** =;<< <%r9otherobjectboolcZt|tstS|j|jkSr')r(rNotImplementedrrBrs r7__eq__zCRLNumber.__eq__s*%++ "! !%"222r9c*t|jSr'hashrrgs r7__hash__zCRLNumber.__hash__DO$$$r9r;cd|jdS)Nz z2AuthorityKeyIdentifier.__init__..s=/0 1k**r9z;authority_cert_issuer must be a list of GeneralName objectsz/authority_cert_serial_number must be an integer) ValueErrorrpallr}r(r=_key_identifier_authority_cert_issuer_authority_cert_serial_number)rBrrrs r7rUzAuthorityKeyIdentifier.__init__s "T ) (D 0  4  ! ,$()>$?$? !4I   ( 3J (#= = 3MNN N-&;#-I***r9r#r c<t|}||ddSNrrrr8)clsr#r4s r7from_issuer_public_keyz-AuthorityKeyIdentifier.from_issuer_public_keys31<<s!"&)-    r9skiSubjectKeyIdentifierc(||jddSrr4)rrs r7"from_issuer_subject_key_identifierz9AuthorityKeyIdentifier.from_issuer_subject_key_identifiers(s:"&)-    r9r;c8d|jd|jd|jdS)Nz'>???r9c|jSr'rrgs r7r4zSubjectKeyIdentifier.digest* |r9c|jSr'rrgs r7rz#SubjectKeyIdentifier.key_identifier.rr9r;cd|jdS)Nzrr9N)r4r%r$rQ)r#rr$rrhrrrJ)r[r\r]rSUBJECT_KEY_IDENTIFIERrPrUrrrr4rrrrr)rKr9r7rrs  -C@@@[@ XXAAAAAAAA !!!!666666r9rcbeZdZejZddZed\ZZ Z ddZ dd Z ddZ ddZdS)AuthorityInformationAccess descriptionsIterable[AccessDescription]r$rQct|}td|Dstd||_dS)Nc3@K|]}t|tVdSr'r(AccessDescriptionrs r7rz6AuthorityInformationAccess.__init__..G-JJ:a!233JJJJJJr9@Every item in the descriptions list must be an AccessDescriptionrprr} _descriptionsrBrs r7rUz#AuthorityInformationAccess.__init__EUL)) JJ\JJJJJ $  *r9rr;cd|jdS)Nz.frr9rrrs r7rUz!SubjectInformationAccess.__init__drr9rr;cd|jdS)NzBBBBr9rrrcZt|tstS|j|jkSr')r(rrrrs r7rzSubjectInformationAccess.__eq__ss,%!9:: "! !!U%888r9r=cDtt|jSr'rrgs r7rz!SubjectInformationAccess.__hash__yrr9r%c*tj|Sr'rrgs r7r)z%SubjectInformationAccess.public_bytes|rr9NrrrrJrh)r[r\r]rSUBJECT_INFORMATION_ACCESSrPrUrLrrrrrrr)rKr9r7rras  1C****&<%;O%L%L"GX{CCCC9999 ////666666r9rc^eZdZddZdd Zdd ZddZeddZeddZ dS)r access_methodraccess_locationrr$rQct|tstdt|tstd||_||_dS)Nz)access_method must be an ObjectIdentifierz%access_location must be a GeneralName)r(rr}r_access_method_access_location)rBr r s r7rUzAccessDescription.__init__s_-)9:: IGHH H/;77 ECDD D+ /r9r;c(d|jd|jdS)Nz!$(== r9r=c8t|j|jfSr')rr r rgs r7rzAccessDescription.__hash__sT')=>???r9c|jSr')r rgs r7r zAccessDescription.access_method ""r9c|jSr')rrgs r7r z!AccessDescription.access_location $$r9N)r rr rr$rQrrrJr$r)r$r) r[r\r]rUrrrrr r rKr9r7rrs 0 0 0 0        @@@@###X#%%%X%%%r9rcteZdZejZddZeddZedd Z dd Z ddZ ddZ ddZ dS)BasicConstraintscar path_lengthrr$rQct|tstd||std|*t|tr|dkrtd||_||_dS)Nzca must be a boolean valuez)path_length must be None when ca is Falserz2path_length must be a non-negative integer or None)r(rr}rr=_ca _path_length)rBrrs r7rUzBasicConstraints.__init__s"d## :899 9  "2 "HII I  ";,, #0;aD 'r9c|jSr')rrgs r7rzBasicConstraints.ca xr9c|jSr')rrgs r7rzBasicConstraints.path_length   r9r;c(d|jd|jdS)Nz.>  12Jq+ , ,      r9?distribution_points must be a list of DistributionPoint objectsrprr}_distribution_pointsrBr3s r7rUzCRLDistributionPoints.__init__j##677  6I        %8!!!r9r<r;cd|jdS)Nz.r9r9r:r;r=s r7rUzFreshestCRL.__init__r>r9r<r;cd|jdS)Nz .Rs,EEaz![11EEEEEEr9z/full_name must be a list of GeneralName objectsz1relative_name must be a RelativeDistinguishedNamec3@K|]}t|tVdSr'rrs r7rz-DistributionPoint.__init__.._s,FFaz![11FFFFFFr9z2crl_issuer must be None or a list of general namesc3@K|]}t|tVdSr'r( ReasonFlagsrs r7rz-DistributionPoint.__init__..fs,CCaz![11CCCCCCr9z0reasons must be None or frozenset of ReasonFlagszLunspecified and remove_from_crl are not valid reasons in a DistributionPoint)rrprr}r(r frozensetr] unspecifiedremove_from_crl _full_name_relative_name_reasons _crl_issuer)rBrRrSrUrWs r7rUzDistributionPoint.__init__>s   *   z    YIEE9EEEEE E  m-FGG G  !j))JFF:FFFFF H  P7I.. PCC7CCCCC PNOO O    #w . .*g55$  $+ %r9r;c,d|S)Nz}formatrgs r7rzDistributionPoint.__repr__xs **0&,, r9rrrct|tstS|j|jko/|j|jko|j|jko|j|jkSr')r(r8rrRrSrUrWrs r7rzDistributionPoint.__eq__sf%!233 "! ! Neo - 4"e&99 4  - 45#33  r9r=c|jt|j}nd}|jt|j}nd}t||j|j|fSr')rRrrWrrSrU)rBfnrWs r7rzDistributionPoint.__hash__sZ > %16t~1F1FBBB ? &9>t9O9OJJJR+T\:FGGGr9rc|jSr'rargs r7rRzDistributionPoint.full_name r9c|jSr'rbrgs r7rSzDistributionPoint.relative_namerr9c|jSr')rcrgs r7rUzDistributionPoint.reasonss }r9c|jSr')rdrgs r7rWzDistributionPoint.crl_issuerrr9N) rRrrSrTrUrVrWrr$rQrrrJrr$rTr$rV) r[r\r]rUrrrrrRrSrUrWrKr9r7r8r8=s8&8&8&8&t          H H H HX###X#X   X   r9r8c6eZdZdZdZdZdZdZdZdZ dZ d Z d Z d S) r]r_ keyCompromise cACompromiseaffiliationChanged supersededcessationOfOperationcertificateHoldprivilegeWithdrawn aACompromise removeFromCRLN) r[r\r]r_key_compromise ca_compromiseaffiliation_changedrxcessation_of_operationcertificate_holdprivilege_withdrawn aa_compromiser`rKr9r7r]r]sDK$N"M.J3(."M%OOOr9r])rrrrrrrr cteZdZejZddZddZdd ZddZ e ddZ e ddZ ddZ dS)PolicyConstraintsrequire_explicit_policyrinhibit_policy_mappingr$rQc|$t|tstd|$t|tstd||td||_||_dS)Nz>require_explicit_policy must be a non-negative integer or Nonez=inhibit_policy_mapping must be a non-negative integer or NonezSAt least one of require_explicit_policy and inhibit_policy_mapping must not be None)r(r=r}r_require_explicit_policy_inhibit_policy_mapping)rBrrs r7rUzPolicyConstraints.__init__s # .z #S8 8 .  " -j "C7 7 -O  " ).E.M:  )@%'=$$$r9r;c,d|S)Nz{rfrgs r7rzPolicyConstraints.__repr__s  r9rrrczt|tstS|j|jko|j|jkSr')r(rrrrrs r7rzPolicyConstraints.__eq__sD%!233 "! !  (E,I I L+u/KK r9r=c8t|j|jfSr')rrrrgs r7rzPolicyConstraints.__hash__!s"  )4+F G   r9c|jSr')rrgs r7rz)PolicyConstraints.require_explicit_policy&s ,,r9c|jSr')rrgs r7rz(PolicyConstraints.inhibit_policy_mapping* ++r9r%c*tj|Sr'rrgs r7r)zPolicyConstraints.public_bytes.rr9N)rrrrr$rQrrrJrrh)r[r\r]rPOLICY_CONSTRAINTSrPrUrrrrrrr)rKr9r7rrs  )C>>>>:            ---X-,,,X,666666r9rcbeZdZejZddZed\ZZ Z ddZ dd Z ddZ ddZdS)CertificatePoliciespoliciesIterable[PolicyInformation]r$rQct|}td|Dstd||_dS)Nc3@K|]}t|tVdSr')r(PolicyInformationrs r7rz/CertificatePolicies.__init__..7s-FF:a!233FFFFFFr9z;Every item in the policies list must be a PolicyInformation)rprr} _policies)rBrs r7rUzCertificatePolicies.__init__5sN>>FFXFFFFF M "r9rr;cd|jdS)Nz.]sB56 1sJ/00r9zMpolicy_qualifiers must be a list of strings and/or UserNotice objects or None)r(rr}_policy_identifierrpr_policy_qualifiers)rBrrs r7rUzPolicyInformation.__init__Qs +-=>> MKLL L"3  ( $%6 7 7 :K  1 #4r9r;c(d|jd|jdS)Nz%?@@@r9c|jSr')rrgs r7rzUserNotice.notice_reference %%r9c|jSr')rrgs r7rzUserNotice.explicit_textrr9N)rrrrr$rQrrrJ)r$rr$r) r[r\r]rUrrrrrrrKr9r7rrs , , , ,        AAAA&&&X&###X###r9rc^eZdZddZdd Zdd ZddZeddZeddZ dS)r organizationrnotice_numbers Iterable[int]r$rQc||_t|}td|Dstd||_dS)Nc3@K|]}t|tVdSr')r(r=rs r7rz+NoticeReference.__init__..s,>>!:a%%>>>>>>r9z)notice_numbers must be a list of integers) _organizationrprr}_notice_numbers)rBrrs r7rUzNoticeReference.__init__sV *n-->>~>>>>> IGHH H-r9r;c(d|jd|jdS)Nz 6 6"1 6 6 6 r9rrrczt|tstS|j|jko|j|jkSr')r(rrrrrs r7rzNoticeReference.__eq__sB%11 "! !  !3 3 <#u';; r9r=cRt|jt|jfSr')rrrrrgs r7rzNoticeReference.__hash__s#T&d.A(B(BCDDDr9c|jSr')rrgs r7rzNoticeReference.organization !!r9 list[int]c|jSr')rrgs r7rzNoticeReference.notice_numbersrr9N)rrrrr$rQrrrJr)r$r) r[r\r]rUrrrrrrrKr9r7rrs . . . .        EEEE"""X"$$$X$$$r9rcbeZdZejZddZed\ZZ Z ddZ dd Z ddZ ddZdS)ExtendedKeyUsageusagesIterable[ObjectIdentifier]r$rQct|}td|Dstd||_dS)Nc3@K|]}t|tVdSr'r(rrs r7rz,ExtendedKeyUsage.__init__..s-CCq:a!122CCCCCCr9z9Every item in the usages list must be an ObjectIdentifier)rprr}_usages)rBrs r7rUzExtendedKeyUsage.__init__sNfCCFCCCCC K  r9rr;cd|jdS)Nzt|tstSdSNT)r(rrrs r7rzOCSPNoCheck.__eq__s%-- "! !tr9r=c*ttSr')rrrgs r7rzOCSPNoCheck.__hash__sK   r9r;cdS)NzrKrgs r7rzOCSPNoCheck.__repr__s  r9r%c*tj|Sr'rrgs r7r)zOCSPNoCheck.public_bytes rr9NrrJrrh) r[r\r]r OCSP_NO_CHECKrPrrrr)rKr9r7rrsl  $C !!!!!!!!666666r9rc<eZdZejZd dZddZdd Zdd Z d S) PrecertPoisonrrr$rc>t|tstSdSr)r(rrrs r7rzPrecertPoison.__eq__s%// "! !tr9r=c*ttSr')rrrgs r7rzPrecertPoison.__hash__sM"""r9r;cdS)NzrKrgs r7rzPrecertPoison.__repr__s""r9r%c*tj|Sr'rrgs r7r)zPrecertPoison.public_bytesrr9NrrJrrh) r[r\r]rPRECERT_POISONrPrrrr)rKr9r7rr sl  %C ########666666r9rcbeZdZejZddZed\ZZ Z ddZ dd Z ddZ ddZdS) TLSFeaturefeaturesIterable[TLSFeatureType]r$rQct|}td|Drt|dkrtd||_dS)Nc3@K|]}t|tVdSr')r(TLSFeatureTypers r7rz&TLSFeature.__init__..&s,DDaJq.11DDDDDDr9rz@features must be a list of elements from the TLSFeatureType enum)rprr?r} _features)rBrs r7rUzTLSFeature.__init__#sa>>DD8DDDDD 8}}!!  "r9rr;cd|jdS)Nzrr9N)rrr$rQrrrJrh)r[r\r]r TLS_FEATURErPrUrLrrrrrrr)rKr9r7rr s  "C " " " "&<%;K%H%H"GX{::::1111 ++++666666r9rceZdZdZdZdS)rrN)r[r\r]status_requeststatus_request_v2rKr9r7rrBsNr9rci|] }|j| SrKr~rs r7 rMs@@@AQWa@@@r9c\eZdZejZddZddZdd Zdd Z e dd Z ddZ dS)InhibitAnyPolicy skip_certsr=r$rQct|tstd|dkrtd||_dS)Nzskip_certs must be an integerrz)skip_certs must be a non-negative integer)r(r=r}r _skip_certs)rBrs r7rUzInhibitAnyPolicy.__init__SsI*c** =;<< < >>HII I%r9r;cd|jdS)Nz.Ds,NNaz![11NNNNNNr9z@permitted_subtrees must be a list of GeneralName objects or Nonez2excluded_subtrees must be a non-empty list or Nonec3@K|]}t|tVdSr'rrs r7rz+NameConstraints.__init__..R,MMaz![11MMMMMMr9z?excluded_subtrees must be a list of GeneralName objects or NonezIAt least one of permitted_subtrees and excluded_subtrees must not be None)rprrr}_validate_tree_permitted_subtrees_excluded_subtrees)rBrQrRs r7rUzNameConstraints.__init__9sC  )!%&8!9!9 %  INN;MNNNNN     2 3 3 3  ( $%6 7 7 $  HMM;LMMMMM     1 2 2 2  %*;*C#  $6 "3r9rrrczt|tstS|j|jko|j|jkSr')r(rPrrRrQrs r7rzNameConstraints.__eq__csC%11 "! !  "e&= = D'5+CC r9treeIterable[GeneralName]cZ||||dSr')_validate_ip_name_validate_dns_namerBr[s r7rWzNameConstraints._validate_treels0 t$$$ %%%%%r9cVtd|DrtddS)Nc3K|]E}t|to+t|jtjtjf VFdSr')r(rr~ ipaddress IPv4Network IPv6Networkrnames r7rz4NameConstraints._validate_ip_name..qsk   tY ' '  Y2I4IJ      r9zGIPAddress name constraints must be an IPv4Network or IPv6Network object)anyr}r`s r7r^z!NameConstraints._validate_ip_namepsU         &   r9cVtd|DrtddS)Nc3RK|]"}t|tod|jvV#dS)*N)r(rr~rfs r7rz5NameConstraints._validate_dns_name..~sI  @DJtW % % ;#*;      r9zDDNSName name constraints must not contain the '*' wildcard character)rhrr`s r7r_z"NameConstraints._validate_dns_name}sS   HL         r9r;c(d|jd|jdS)Nz$?? ? ! r9c|jSr'rxrgs r7rPz Extension.oid yr9c|jSr')ryrgs r7rvzExtension.criticalr6r9c|jSr'rzrgs r7r~zExtension.value {r9r;c8d|jd|jd|jdS)Nz.s,EE!:a--EEEEEEr9z^Every item in the general_names list must be an object conforming to the GeneralName interface)rprr}_general_namesrBrs r7rUzGeneralNames.__init__sV]++ EE}EEEEE A  ,r9rtypeBtype[DNSName] | type[UniformResourceIdentifier] | type[RFC822Name] list[str]cdSr'rKrBrs r7get_values_for_typez GeneralNames.get_values_for_type Cr9type[DirectoryName] list[Name]cdSr'rKrs r7rz GeneralNames.get_values_for_type Sr9type[RegisteredID]list[ObjectIdentifier]cdSr'rKrs r7rz GeneralNames.get_values_for_type "%r9type[IPAddress]list[_IPAddressTypes]cdSr'rKrs r7rz GeneralNames.get_values_for_type !$r9type[OtherName]list[OtherName]cdSr'rKrs r7rz GeneralNames.get_values_for_type #r9type[DNSName] | type[DirectoryName] | type[IPAddress] | type[OtherName] | type[RFC822Name] | type[RegisteredID] | type[UniformResourceIdentifier]Ylist[_IPAddressTypes] | list[str] | list[OtherName] | list[Name] | list[ObjectIdentifier]clfd|D}tkr d|DSt|S)Nc3<K|]}t||VdSr')r()rirs r7rz3GeneralNames.get_values_for_type..s277a:a#6#67777777r9cg|] }|j SrKr )rrs r7 z4GeneralNames.get_values_for_type..s***AG***r9)rrp)rBrobjss ` r7rz GeneralNames.get_values_for_typesI&87774777 9  **T*** *Dzzr9r;cd|jdS)Nzrr9N)rrr$rQrrrJ)r$rrh)r[r\r]rINVALIDITY_DATErPrUrrrrrrr)rKr9r7rrs  .C0000 LLLL==== ****%%%X%NNNXN 666666r9rcbeZdZejZddZed\ZZ Z ddZ dd Z ddZ ddZdS))PrecertificateSignedCertificateTimestampssigned_certificate_timestamps$Iterable[SignedCertificateTimestamp]r$rQct|}td|Dstd||_dS)Nc3@K|]}t|tVdSr'r(rrscts r7rzEPrecertificateSignedCertificateTimestamps.__init__..JA   s6 7 7      r9YEvery item in the signed_certificate_timestamps list must be a SignedCertificateTimestamprprr}_signed_certificate_timestampsrBr s r7rUz2PrecertificateSignedCertificateTimestamps.__init__Ek)--J(K(K%  4      / /L+++r9rr;c(dt|dS)Nz+>???r9rrrcZt|tstS|j|jkSr')r(r rrrs r7rz0PrecertificateSignedCertificateTimestamps.__eq__^s3%!JKK "! !  /3 4 r9r%c*tj|Sr'rrgs r7r)z6PrecertificateSignedCertificateTimestamps.public_bytesgrr9Nr r r$rQrrJrrh)r[r\r]r%PRECERT_SIGNED_CERTIFICATE_TIMESTAMPSrPrUrLrrrrrrr)rKr9r7r r Bs  .srr9rrrs r7rUz$SignedCertificateTimestamps.__init__nrr9rr;c(dt|dS)Nz>>>@@@@    666666r9r#c\eZdZejZddZdd Zdd Zdd Z e ddZ ddZ dS) OCSPNoncenoncer%r$rQc\t|tstd||_dS)Nznonce must be bytes)r(r%r}_nonce)rBr-s r7rUzOCSPNonce.__init__s.%'' 3122 2 r9rrrcZt|tstS|j|jkSr')r(r,rr-rs r7rzOCSPNonce.__eq__s)%++ "! !zU[((r9r=c*t|jSr')rr-rgs r7rzOCSPNonce.__hash__sDJr9r;cd|jdS)Nz.s0FFq:a!1222FFFFFFr9z'All responses must be ObjectIdentifiers)rprhr} _responses)rBr8s r7rUz OCSPAcceptableResponses.__init__sGOO FFIFFF F F GEFF F#r9rrrcZt|tstS|j|jkSr')r(r7rr<rs r7rzOCSPAcceptableResponses.__eq__s+%!899 "! !%"222r9r=cDtt|jSr')rrr<rgs r7rz OCSPAcceptableResponses.__hash__sE$/**+++r9r;cd|jdS)Nz#.rVr9z:only_some_reasons must be None or frozenset of ReasonFlagszTunspecified and remove_from_crl are not valid reasons in an IssuingDistributionPointzuonly_contains_user_certs, only_contains_ca_certs, indirect_crl and only_contains_attribute_certs must all be boolean.cg|]}||SrKrKrs r7rz5IssuingDistributionPoint.__init__..s000aa0000r9rz}Only one of the following can be set to True: only_contains_user_certs, only_contains_ca_certs, only_contains_attribute_certszCannot create empty extension: if only_contains_user_certs, only_contains_ca_certs, indirect_crl, and only_contains_attribute_certs are all False, then either full_name, relative_name, or only_some_reasons must have a value.)rpr(r^rr}r]r_r`rrr?rh_only_contains_user_certs_only_contains_ca_certs _indirect_crl_only_contains_attribute_certs_only_some_reasonsrarb) rBrRrSrFrGrHrIrJcrl_constraintss r7rUz!IssuingDistributionPoint.__init__s  YI  ,i88 MM;LMMMMM L     #'8 8 8*.???+  / 6 6 1488 <.. 8$??  '  % " )  00?000 1 1A 5 50  (&-!     % *B&'=$).K+"3#+r9r;cxd|jd|jd|jd|jd|jd|jd|jdS) Nz$ 6 6!/ 6 6(,(E 6 6'+&A 6 6"&!7  6 6 !-  6 61 6 6 6 r9rrct|tstS|j|jko_|j|jkoO|j|jko?|j|jko/|j|jko|j|jko|j |j kSr') r(rErrRrSrFrGrHrIrJrs r7rzIssuingDistributionPoint.__eq__2s%!9:: "! ! Neo - 3"e&99 3-1OO 3+u/KK 3&%*AA  3 !U%77  3 223 r9r=c |jt|j}nd}t||j|j|j|j|j|jfSr') rRrrrSrFrGrHrIrJ)rBrRs r7rz!IssuingDistributionPoint.__hash__As^ > %8=dn8M8MIII"-+&!2    r9rc|jSr'rlrgs r7rRz"IssuingDistributionPoint.full_nameSrmr9c|jSr'rorgs r7rSz&IssuingDistributionPoint.relative_nameWrr9c|jSr')rNrgs r7rFz1IssuingDistributionPoint.only_contains_user_certs[s --r9c|jSr')rOrgs r7rGz/IssuingDistributionPoint.only_contains_ca_certs_rr9c|jSr')rRrgs r7rHz*IssuingDistributionPoint.only_some_reasonscrr9c|jSr')rPrgs r7rIz%IssuingDistributionPoint.indirect_crlirr9c|jSr')rQrgs r7rJz6IssuingDistributionPoint.only_contains_attribute_certsms 22r9r%c*tj|Sr'rrgs r7r)z%IssuingDistributionPoint.public_bytesqrr9N)rRrrSrTrFrrGrrHrVrIrrJrr$rQrrrJrrrr&rsrh)r[r\r]rISSUING_DISTRIBUTION_POINTrPrUrrrrrRrSrFrGrHrIrJr)rKr9r7rErEse  1CS,S,S,S,j              $X###X#...X.,,,X,'''X' """X"333X3666666r9rEceZdZejZddZedd Zedd Z edd Z dd Z ddZ ddZ ddZdS)MSCertificateTemplate template_idr major_versionr minor_versionr$rQct|tstd||_|t|tr|$t|tstd||_||_dS)Noid must be an ObjectIdentifierz8major_version and minor_version must be integers or None)r(rr} _template_idr=_major_version_minor_version)rBrbrcrds r7rUzMSCertificateTemplate.__init__xs +'788 ?=>> >'  %j.L.L %  %j.L.L %J ,+r9c|jSr')rgrgs r7rbz!MSCertificateTemplate.template_idr!r9c|jSr')rhrgs r7rcz#MSCertificateTemplate.major_versionrr9c|jSr')rirgs r7rdz#MSCertificateTemplate.minor_versionrr9r;c8d|jd|jd|jdS)Nz#*R1A"B"B><== = ?:c3#7#7?/00 0  JtS$9$9 011 1  r9c|jSr')ryrgs r7rtzNamingAuthority.idrr9c|jSr')rzrgs r7rvzNamingAuthority.urlr}r9c|jSr')r{rgs r7rwzNamingAuthority.texts zr9r;c8d|jd|jd|jdS)Nz.s,FFT:dC((FFFFFFr9z5Every item in the profession_items list must be a strc3@K|]}t|tVdSr'r)rrPs r7rz*ProfessionInfo.__init__.. s>69 3 011r9zBEvery item in the profession_oids list must be an ObjectIdentifierz!registration_number must be a strz!add_profession_info must be bytes) r(rsr}rprr;r%_naming_authority_profession_items_profession_oids_registration_number_add_profession_info)rBrrrrrs r7rUzProfessionInfo.__init__sU  ' o1 1 'HII I 011FF5EFFFFF G   &"?33O=L  '  *: 4 4 *?@@ @  *: 4 4 *?@@ @!1!1 /$7!$7!!!r9c|jSr'rrgs r7rzProfessionInfo.naming_authority rr9rc|jSr')rrgs r7rzProfessionInfo.profession_items rr9list[ObjectIdentifier] | Nonec|jSr')rrgs r7rzProfessionInfo.profession_oids rr9c|jSr')rrgs r7rz"ProfessionInfo.registration_number$ ((r9c|jSr')rrgs r7rz"ProfessionInfo.add_profession_info( rr9r;c Xd|jd|jd|jd|jd|jd S)Nz!.c s=  15Jt^ , ,      r9z@Every item in the profession_infos list must be a ProfessionInfo) r(rr}rsrpr_admission_authorityr_profession_infos)rBrrrs r7rUzAdmission.__init__R s  *: 4 4 *GHH H  ' o1 1 'HII I 011  9I      !  %8!!1!1r9c|jSr')rrgs r7rzAdmission.admission_authorityo rr9c|jSr'rrgs r7rzAdmission.naming_authoritys rr9list[ProfessionInfo]c|jSr')rrgs r7rzAdmission.profession_infosw rr9r;c8d|jd|jd|jdS)Nz. s=  1:Jy) , ,      r9zBEvery item in the contents_of_admissions list must be an Admission)r(rr}rpr _authority _admissions)rBrrs r7rUzAdmissions.__init__ s  I{)K)K =>> >*%%   >H        $%r9rc|jSr')rrgs r7rzAdmissions.authority rmr9r;c(d|jd|jdS)Nz>>r9r%c*tj|Sr'rrgs r7r)zAdmissions.public_bytes rr9N)rrrrr$rQrrrrJrh)r[r\r]r ADMISSIONSrPrUrLrrrrrrrrr)rKr9r7rr s  !C&&&&(&<%;M%J%J"GX{ X        ????666666r9rcfeZdZddZeddZedd Zdd ZddZddZ ddZ dS)r|rPrr~r%r$rQcjt|tstd||_||_dS)Nrf)r(rr}rxrz)rBrPr~s r7rUzUnrecognizedExtension.__init__ s6#/00 ?=>> >  r9c|jSr'r|rgs r7rPzUnrecognizedExtension.oid r}r9c|jSr'rrgs r7r~zUnrecognizedExtension.value rr9r;c(d|jd|jdS)Nzrs  #"""""  ........333333@@@@@@GGGGGGGGOOOOOOFFFFFF                      CBBBBBBB"6>o ''''0 3 3 3 3        ck     "3"3"3"3"3"3"3"3J66666 666:i6i6i6i6i6]i6i6i6X!6!6!6!6!6=!6!6!6H66666666>66666}666>%%%%%%%%%%%%%%%%P+6+6+6+6+6}+6+6+6\66666 666:"6"6"6"6"6M"6"6"6J"6"6"6"6"6-"6"6"6Jh h h h h h h h V & & & & &%* & & &4! &)#&   q#QA& !#Qq 0Qq#QA& !#Qr ">6>6>6>6>6 >6>6>6B66666-666<6'6'6'6'6'6'6'6'r(#(#(#(#(#(#(#(#V%$%$%$%$%$%$%$%$P66666}666<66666-666&66666M666&66666666DUZA@@@@66666}666@B6B6B6B6B6}B6B6B6J>6>6>6>6>6M>6>6>6Bp6p6p6p6p6mp6p6p6f-;-;-;-;-;/0-;-;-;`M0M0M0M0M0M0M0M0`E6E6E6E6E6]E6E6E6PE6E6E6E6E6ME6E6E6PE6E6E6E6E6 E6E6E6P66666 666:!6!6!6!6!6]!6!6!6H&6&6&6&6&6 &6&6&6R&6&6&6&6&6-&6&6&6R66666 666:66666m666:d6d6d6d6d6}d6d6d6N8686868686M868686v7 7 7 7 7 7 7 7 td d d d d d d d NB B B B B B B B J0606060606060606fMr9