Files
boc/aamos-ledger-rust/target/debug/deps/libwebpki-8fcfd41e6e29bf3d.rmeta
T

1937 lines
491 KiB
Plaintext
Raw Normal View History

rust
#rustc 1.96.0 (ac68faa20 2026-05-25)ÁíàÄTËŸ ÜJîÄ)'ß\¥!-3d1337db07d0b3aeÁÀ뉊]!ÜÛê(¹Þ—šên-5be7b69c3ff7b5b8Á¤²XctÔ'ÐÓ©z¨ɽÓ-a4945860e1c53b00Á¤°ð ¾ä-±($²ï=©Ã-7e98a21bfd32b0edÁòÖÀH•‘PIÓHã#£-055f30b747f859b6Árustc_std_workspace_coreÁ­Cçß^ò½èÝ$­Çÿ+Cé-c4878ee60b2242c9ÁŸÃï+Ñ]ŠqB<ÏïW#-8dd1dd90e70d0b6aÁ miniz_oxideÁ€š»J(P>àö÷g\K-1eb618da2918ab7fÁadler2ÁÆ;+Þ®5¥Ìýݰ¦ÛLˆ-f7919172d268e069Á hashbrownÁPäV9ÒÆèÜ"ÊÖVŽ\-0fc2184a5da6723aÁrustc_std_workspace_allocÁs&ØòØy¯s•bæ!‰ýŠ-97e4bf30be240674Á
std_detectÁhŠBîÙºÌI®ËÅš-9dbbf8346ba7ac8bÁrustc_demangleÁûë9´Ç×@Œ’ùXFº-f33013f239bf9f14Ácfg_ifÁÜLhž§Œaã¯>­-0a71c8f33a838301Á addr2lineÁ׎Þ!]8V$É@@-e618e6be60e87ba2ÁgimliÁ¸
°µ~Î1‹Ñt ðÁ€w-1f7768a68858f670ÁobjectÁ
áPÃ?­À¶¼QHJ¥-914cd6a4dbe590d1ÁmemchrÁ›º«8Ór­2Ù $¨ûib-cf21ca6f2bb15dcdÁë
‹ás«LÖ€îâƒ×ɯŒ-ee6f3747e38367f0Á aws_lc_rsÁ¯'øø¹^LŒû® èLm—!-a13be811d10f3e14Á
aws_lc_sysÁØ'ëÎÍWÎ^^Z¬9n-85705ffdca21f5dcÁzeroizeÁ6ƒÛú jåðpÄ"Ô„Ç|-b0245ee0360ecfa9Árustls_pki_typesÁµÛðóœuÌëîÓ0ä-147af539bd630859ÁringÁÅZÈ3.¿ä ±Jתћ-b32a468169f81f9dÁ®f©¾/ô)c§{õa“â‘-a3906971a93fd1b8Áæ\‹±ÔcdùÀTƒ-f86f80b348d33b13Á untrustedÁI /ý+OÆ]‡ôd‰ð.-d6cd86ad6d3ca912Á getrandomÁ³žKYÆB |R¬*9"ÌÝ-50ddae19eb09a1dfÁtestsÁ,•‰$Љ^šD\»aws-lc-rs-unstableÁô
^ ML_DSA_44ÁL¬» ôÞ^ ML_DSA_65ÁLö» ô¨^ ML_DSA_87ÁLÀ» ôò^ö
,Þb$Åbö
,„„$ùƒàö
,Ë@$À@˜ö
,ÅE$¬E³ö
,‰ðö
,À¡$µ¡ö
,5$‡5 alloc_testsÁ\¿®$¢®äö
,Ûx$¼xÌö
,í1 $â1 ñö
,Ä#
$¹#
ö
,ë­ $à­ ˆö
,ÆT $»T ²ö
,½ç
$ðæ

test_utilsÁT¦$Í LÂ%» ôÛ$ÍÕ LÍ%» Íô LØ%» ,.íÀ¤derÁ 'aÁ ¥ æ Ý¥ó  FromDerÁÝfrom_derÁTYPE_IDÁread_allÁÝ¥ CONSTRUCTEDÁCONTEXT_SPECIFICÁ÷ ÷ expect_tag_and_get_value_limitedÁ"Ýnested_limitedÁ$Ý$£$;impl FnOnce(&mut untrusted::Reader<'a>) -> Result<R, Error>Áá (Ý(£(÷
expect_tagÁ,Ýread_tag_and_get_valueÁ.Ýread_tag_and_get_value_limitedÁ0Ý asn1_wrapÁ2 TWO_BYTE_DER_SIZEÁ MAX_DER_SIZEÁHIGH_TAG_RANGE_STARTÁSHORT_FORM_LEN_MAXÁLONG_FORM_LEN_ONE_BYTEÁLONG_FORM_LEN_ONE_BYTE_MAXÁLONG_FORM_LEN_TWO_BYTESÁLONG_FORM_LEN_TWO_BYTES_MAXÁLONG_FORM_LEN_THREE_BYTESÁLONG_FORM_LEN_THREE_BYTES_MAXÁLONG_FORM_LEN_FOUR_BYTESÁLONG_FORM_LEN_FOUR_BYTES_MAXÁ
nested_of_mutÁ@Ý@;impl FnMut(&mut untrusted::Reader<'a>) -> Result<(), Error>Á@ C bit_string_with_no_unused_bitsÁEÝE G BitStringFlagsÁIÝIraw_bitsÁLbit_setÁbit_string_flagsÁN O QÝQ­Q¼nonnegative_integerÁUÝend_of_input_errÁXÝX­Z X¼oidÁaws_lc_rs_algsÁ^^^^^^^^^gpublic_key_alg_idÁgsignature_alg_idÁgverify_signatureÁj gfipsÁ^ECDSA_P256_SHA256Á^ECDSA_P256_SHA384Á^ECDSA_P256_SHA512Á^ECDSA_P384_SHA256Á^ECDSA_P384_SHA384Á^ECDSA_P384_SHA512Á^ECDSA_P521_SHA256Á^ECDSA_P521_SHA384Á^ECDSA_P521_SHA512Á^RSA_PKCS1_2048_8192_SHA256Á^RSA_PKCS1_2048_8192_SHA384Á^RSA_PKCS1_2048_8192_SHA512Á^(RSA_PKCS1_2048_8192_SHA256_ABSENT_PARAMSÁ^(RSA_PKCS1_2048_8192_SHA384_ABSENT_PARAMSÁ^(RSA_PKCS1_2048_8192_SHA512_ABSENT_PARAMSÁ^RSA_PKCS1_3072_8192_SHA384Á^#RSA_PSS_2048_8192_SHA256_LEGACY_KEYÁ^#RSA_PSS_2048_8192_SHA384_LEGACY_KEYÁ^#RSA_PSS_2048_8192_SHA512_LEGACY_KEYÁ^ED25519ÁcertÁ 
  
CertÁœÝœserialÁœ signed_dataÁœissuerÁœºœsubjectÁœspkiÁœbasic_constraintsÁœ key_usageÁœekuÁœname_constraintsÁœsubject_alt_nameÁœcrl_distribution_pointsÁœ»«Ý«for_trust_anchorÁ«­«
from_inputÁ¯ ° ¯ ² ALLOW_EMPTYÁ² ´ «valid_dns_namesÁ «valid_uri_namesÁ¹¹ «Æ «ç «ý «subject_public_key_infoÁ«ý!À«»version3Áà !lenient_certificate_serial_numberÁÅÝremember_cert_extensionÁÇÝÇ É Ê CrlDistributionPointÁÌÝÌdistribution_pointÁÌreasonsÁÌ
crl_issuerÁÑÝÑÑ Ó ÕÝÕ­× ØDISTRIBUTION_POINT_TAGÁØ REASONS_TAGÁØCRL_ISSUER_TAGÁØ Ø Ø Õ¼
end_entityÁàààààààààà à
à à à
àààààà
EndEntityCertÁôÝôinnerÁà÷Ý÷ErrorÁ÷ªàûverify_for_usageÁü'pÁüimpl ExtendedKeyUsageValidatorÁû verify_is_valid_for_subject_nameÁûàÝå´errorÁ
most_specificÁrankÁis_fatalÁ÷× ring_algsÁ˜˜˜˜˜˜˜ŸÚŸòŸ¢ ˜¯˜Ç˜÷˜˜˜¨˜É˜ê˜˜È˜÷˜˜˜Â˜ì˜
rpk_entityÁ³³³³³³³³³³½Ý½±(½ªÀ ³ÂÔ ÄÄÄÄÄÄÄÄÄÄ Ä
ÄÐborrowÁÄÒÝÒ­Ô Òto_ownedÁÄverify_signed_dataÁ× × ÄÚ ÄSubjectPublicKeyInfoÁÜÝÜalgorithm_id_valueÁÜ key_valueÁÄàÝà­à¼ subject_nameÁääääääääää ä
ädns_nameÁðððððððððð ð
ð ð ð
ðverify_dns_namesÁÿ ÿ ðÝtry_from_asciiÁas_strÁð×ð!presented_id_matches_reference_idÁð ascii_lowerÁðis_valid_dns_idÁŠMAX_LABEL_LENGTHÁä ä ä
ää
ip_addressÁ verify_ip_address_namesÁ  »1presented_id_matches_constraintÁŸ äächeck_name_constraintsÁ¢parse_subtreesÁ£'bÁ¢ ä*check_presented_id_conforms_to_constraintsÁ¦general_subtreeÁ§”4ä NameIteratorÁ©Ý©å!ä¬Ý¬æ ä¯Ý¯¯ó ä³Ý³­µµµµµOTHER_NAME_TAGÁµRFC822_NAME_TAGÁµ DNS_NAME_TAGÁµX400_ADDRESS_TAGÁµDIRECTORY_NAME_TAGÁµEDI_PARTY_NAME_TAGÁµUNIFORM_RESOURCE_IDENTIFIER_TAGÁµIP_ADDRESS_TAGÁµREGISTERED_ID_TAGÁ³¼äÄ×ä IpAddrSliceÁÆ
ÆÝƈäÊ×timeÁÌÌÌÌÌÌÌÌÌÌÖÝÖ­Ø
read_digitÁÙDIGITÁÙ Øread_two_digitsÁØ Ý Ö¼Ìtime_from_ymdhms_utcÁàJANÁàMARÁàAPRÁàMAYÁàJUNÁàJULÁàAUGÁàSEPÁàOCTÁàNOVÁÌ!days_before_year_since_unix_epochÁÌUNIX_EPOCH_YEARÁÌdays_before_year_adÁÌ
days_in_monthÁÌ days_in_febÁÌDAYS_BEFORE_UNIX_EPOCH_ADÁ trust_anchorÁññññññññññ ñanchor_from_trusted_certÁüÝñ%extract_trust_anchor_from_v1_cert_derÁþ ÿ  ñÝ÷ ñskipÁ crlÁˆˆˆˆˆˆˆˆˆˆ ˆ
ˆ ˆtypesÁ 
  
 ·÷¹Ý¹÷¼ç ¼issuing_distribution_pointÁ¾ ¼ find_serialÁ¼
authoritativeÁ¼¼check_expirationÁÄ­ÄŠ@Æ ÈÝÈ­ÈŽ.Ë Ë Èremember_extensionÁÎ Ï Ð Ï ÈŠ@ÔÝÔ­Ö Ö Ø Ù Ô¼ÜÝÜÜIntoIterÁÜêIssuingDistributionPointÁáÝá½%áonly_contains_user_certsÁáonly_contains_ca_certsÁáonly_some_reasonsÁá indirect_crlÁáonly_contains_attribute_certsÁéÝé­ë¬&ëONLY_CONTAINS_USER_CERTS_TAGÁëONLY_CONTAINS_CA_CERTS_TAGÁëONLY_CONTAINS_SOME_REASONS_TAGÁëINDIRECT_CRL_TAGÁë!ONLY_CONTAINS_ATTRIBUTE_CERTS_TAGÁë decode_boolÁë ó ó ëéÑ ÷ éauthoritative_forÁúæ- üÝüŽ.ü“Aÿ   
ƒÝƒ­   ƒ¼ Šù ŽÝŽ­  ޼
±(ªˆ ˆ
ˆˆˆˆˆˆˆŸÝŸæ Ÿ
with_depthÁŸwith_status_policyÁŸwith_expiration_policyÁŸbuildÁˆ¦checkÁ§ §ˆªÏHˆcrl_signature_errÁˆCertNotRevokedÁ­
­ˆˆ° assertionÁ verify_certÁ²²²²²²²²²² ²
² ² ²
²²²²²² ChainOptionsÁÆÝÆã(ƧÆÂ!Æsupported_sig_algsÁÆ
trust_anchorsÁÆintermediate_certsÁÆ
revocationÁ²ÏÝÏã(Ï§Ï build_chainÁÏbuild_chain_innerÁÔ Ô Ö Ïcheck_signed_chainÁ² VerifiedPathÁÙã(Ù‰'Ù
intermediatesÁÙanchorÁ²Þã(Þæ Þintermediate_certificatesÁÞ‰'ÞðL²IntermediateIteratorÁäÝäÛL²çÝççó ²ë next_backÁ²
IntermediatesÁíÝíOwnedÁïcertsÁð ï©íBorrowedÁó
óˆ²öÝöɲ#check_signed_chain_name_constraintsÁù ù ²BudgetÁü
signaturesÁübuild_chain_callsÁüname_constraint_comparisonsÁ²consume_signatureÁconsume_build_chain_callÁ"consume_name_constraint_comparisonÁ²>²#check_issuer_independent_propertiesÁí(   ² check_ekuÁí(²check_validityÁ²check_basic_constraintsÁ²×² EkuListDebugÁ
݈²×²  server_authÁ client_authÁrequiredÁrequired_if_presentÁ
oid_valuesÁœSERVER_AUTH_REPRÁCLIENT_AUTH_REPRÁ²
 validateÁ² ¢§¢“T²ExtendedKeyUsageValidatorÁ¥“T² §idÁ²KeyPurposeIdIterÁ©Ý©'rÁ©inputÁ²
­Ý­U­­ó ± ²³ã²µÝµæ µto_decoded_oidÁ²¹×²»²²EKU_SERVER_AUTHÁ²EKU_CLIENT_AUTHÁ²
OidDecoderÁÀÝÀencodedÁÀleftÁÀfirstÁ²ÅÝÅæ ²ÈÈó ²loop_while_non_fatal_errorÁËÝ˧ËMimpl FnMut(V::Item) -> Result<&'a TrustAnchor<'a>, ControlFlow<Error, Error>>Á² PartialPathÁÏÝω'ÏÛLÒ Ï©²ÕÝÕæ ÕpushÁÕpopÁÕnodeÁÕheadÁÕgetÁ²MAX_SUB_CA_COUNTÁ²PathNodeÁÞÝÞõ
ÞÖÞ¤²ãÝãùãroleÁ²PathIterÁçÝçõ
çó ²ëÝëëó x509Áïïïïïïïïïï ï ExtensionÁúÝúcriticalÁúæTú»ïÿ unsupportedÁïÝ­¼ïset_extension_onceÁ¥impl Fn() -> Result<T, Error>Áï“Aˆ#impl FnMut(u8) -> Result<(), Error>ÁˆID_CEÁŠ ïDistributionPointNameÁŒÝŒNameRelativeToCrlIssuerÁŽ
ŒFullNameÁ
ˆïÝ­
FULL_NAME_TAGÁNAME_RELATIVE_TO_CRL_ISSUER_TAGÁ¼ 
  
 !" »»»»»»»»»» »
» » »
»»»ÄÍÍÍÍÍÍÍÍÍÍ Í
Í Í Í
ÍÍÍÍÍÍÍALL_VERIFICATION_ALGSÁpublic_values_eqÁ DerIteratorÁåÝå¥åreaderÁåÚêÝê¥ê×TagÁîBooleanÁï
ï îIntegerÁò
ò î BitStringÁõ
õ î OctetStringÁø
ø îOIDÁû
û î|þ
þ îSequenceÁ
 îUTCTimeÁ
 îGeneralizedTimeÁ
 îContextSpecificConstructed0ÁŠ
Š îContextSpecificConstructed1Á
 îContextSpecificConstructed3Á
  ƒ
 Ö 
š^AwsLcRsAlgorithmÁœÚœòœverification_algÁœin_fips_submissionÁ^¡×±(£BadDerÁ¤
£
BadDerTimeÁ¦
£CaUsedAsEndEntityÁ¨
£ CertExpiredÁªŸ8ª not_afterÁ£CertNotValidForNameÁ­
­ˆ£CertNotValidYetÁ°Ÿ8°
not_beforeÁ£ CertRevokedÁ³
£
CrlExpiredÁµŸ8µ next_updateÁ£EmptyEkuExtensionÁ¸
£EndEntityUsedAsCaÁº
£ExtensionValueInvalidÁ¼
£InvalidCertValidityÁ¾
£InvalidCrlNumberÁÀ
£InvalidNetworkMaskConstraintÁÂ
£InvalidSerialNumberÁÄ
£InvalidCrlSignatureForPublicKeyÁÆ
£InvalidSignatureForPublicKeyÁÈ
£IssuerNotCrlSignerÁÊ
£MalformedDnsIdentifierÁÌ
£MalformedExtensionsÁÎ
£MalformedNameConstraintÁÐ
£(MaximumNameConstraintComparisonsExceededÁÒ
£MaximumPathBuildCallsExceededÁÔ
£MaximumPathDepthExceededÁÖ
£MaximumSignatureChecksExceededÁØ
£NameConstraintViolationÁÚ
£PathLenConstraintViolatedÁÜ
£RequiredEkuNotFoundÁÞ
£RequiredEkuNotFoundContextÁà
àˆ£SignatureAlgorithmMismatchÁã
£ TrailingDataÁå
刣
UnknownIssuerÁè
£UnknownRevocationStatusÁê
£UnsupportedCertVersionÁì
£UnsupportedCriticalExtensionÁî
£&UnsupportedCrlIssuingDistributionPointÁð
£UnsupportedCrlVersionÁò
£UnsupportedDeltaCrlÁô
£UnsupportedIndirectCrlÁö
£UnsupportedNameTypeÁø
£UnsupportedRevocationReasonÁú
£(UnsupportedRevocationReasonsPartitioningÁü
£ UnsupportedCrlSignatureAlgorithmÁþ
£'UnsupportedCrlSignatureAlgorithmContextÁ
ˆ£UnsupportedSignatureAlgorithmÁƒ
£$UnsupportedSignatureAlgorithmContextÁ
ˆ£,UnsupportedCrlSignatureAlgorithmForPublicKeyÁˆ
£3UnsupportedCrlSignatureAlgorithmForPublicKeyContextÁŠ
Š ˆ£)UnsupportedSignatureAlgorithmForPublicKeyÁ
£0UnsupportedSignatureAlgorithmForPublicKeyContextÁ
 ˆƒ×ÖInvalidNameContextÁ   presentedÁ ž ƒ
  ×  £ 
¥ Öäu§ signature_algorithm_idÁ§ public_key_algorithm_idÁª ƒ¬ ׯ ± Öôs³ Öw³ supported_algorithmsÁƒ¸ ×» ½ Ö DerTypeIdÁ¿ cÀ
¿ XÂ
¿  CertificateÁÄ
¿ CertificateExtensionsÁÆ
¿ CertificateTbsCertificateÁÈ
¿ CertRevocationListÁÊ
¿ CertRevocationListExtensionÁÌ
¿ ™%Î
¿ CommonNameInnerÁÐ
¿ CommonNameOuterÁÒ
¿ µ]Ô
¿ »[Ö
¿  GeneralNameÁØ
¿ RevocationReasonÁÚ
¿  SignatureÁÜ
¿ SignatureAlgorithmÁÞ
¿ 
SignedDataÁà
¿ Ï.â
¿ TimeÁä
¿ 
TrustAnchorV1Áæ
¿ TrustAnchorV1TbsCertificateÁè
¿ U8Áê
¿ RevokedCertificateÁì
¿ RevokedCertificateExtensionÁî
¿ RevokedCertEntryÁð
¿ §Bò
õ ƒø ×ú Öý ˜
RingAlgorithmÁÿ Úÿ òÿ ›f˜ƒ
׳RawPublicKeyEntityÁ
Ý
—(³ˆ
݈
×ÄOwnedSignedDataÁ
dataÁ
 algorithmÁ
 signatureÁÄ
Ā
×ÄË|
Ý
•€
¡€
²€Ä˜
ݘ
×ðWildcardDnsNameRefÁ

Ý
ˆðŸ
Ýð¡
Ý¡
ƒð¤
Ýð¦
ݦ
Öð©
Ýð«
Ý«
ð®
Ý®
§°
ùð WildcardsÁ²
DenyÁ³
²
AllowÁµ
ð ð
¸
ƒð ð ð
¼
ðIdRoleÁ¾
Ê¿
¾
 PresentedÁÁ
¾
NameConstraintÁÃ
Ã
ˆððÇ
ƒðððË
äSubtreesÁÍ
 PermittedÁÎ
Í
ExcludedÁÐ
ääÓ
ƒäää ×
äá{Ù
ÝÙ
DnsNameÁÛ
Û
ˆÙ

DirectoryNameÁÞ
Ù
 IpAddressÁà
à
ˆÙ
UniformResourceIdentifierÁã
ã
ˆÙ
 UnsupportedÁæ
æ
ˆä
é
Ýä ë
Ýë
ƒä î
Ý»zð
Ýð
ÀNò
ò
ˆð
çNõ
õ
ˆø
Ýø
×OwnedCertRevocationListÁû

revoked_certsÁû
ç û
ã?û
Ô û
àh ׃ ƒBorrowedCertRevocationListÁ Ý Ô  ç  ã? ܇ àhŒ ÝŒ ×OwnedRevokedCertÁ 
serial_numberÁ revocation_dateÁ  reason_codeÁ invalidity_dateÁ ƒ ×BorrowedRevokedCertÁ˜ ݘ «‰˜ À‰˜ ׉˜ ꉞ Ýž ×ù{¡  UnspecifiedÁ¢
¢ ¡ 
KeyCompromiseÁ¥
¥ ¡  CaCompromiseÁ¨
¨ ¡ AffiliationChangedÁ«
« ¡ 
SupersededÁ®
® ¡ CessationOfOperationÁ±
± ¡ CertificateHoldÁ´
´ ¡ 
RemoveFromCrlÁ·
· ¡ PrivilegeWithdrawnÁº
º ¡  AaCompromiseÁ½
½ À ×à ƒÆ ÖÉ ˆRevocationOptionsBuilderÁË ÝË crlsÁË depthÁË 
status_policyÁË expiration_policyÁˆÑ ÝÑ ×ˆÔ ÝˆÖ ÝˆØ ÝØ ƒˆRevocationOptionsÁÛ ÝÛ ¬ŽÛ ¸ŽÛ ÅŽÛ ÚŽˆá Ýá ׈ ä ݈
æ ݈ è Ýè ƒˆ KeyUsageModeÁë CrlSignÁì
ì ˆ ˆ
𠃈ˆRevocationCheckDepthÁó  EndEntityÁô
ó ChainÁö
ˆø ׈ˆˆü ƒˆˆÿ ˆ ÖˆUnknownStatusPolicyÁƒ ñ‚
ƒ à‚
ˆˆ ׈ˆˆŒ ƒˆˆ ˆ ÖˆExpirationPolicyÁ EnforceÁ
 IgnoreÁ
ˆ˜ ׈ˆˆ œ ƒˆ!ˆ"Ÿ ˆ#¡ Öˆ CrlsRequiredÁ£
£ ˆˆ$¦ ׈%ˆ&ˆ'ª ƒ²Ën¬ œS¬ presentÁ²¯ ƒ²²² ²´ Ö²KeyUsageÁ —(²²¹ ƒ²²¼ ײ ¾ Ö²!²"Á ²ExtendedKeyUsageÁà RequiredÁÄ
Ä ˆÃ RequiredIfPresentÁÇ
Ç ˆ²#²$Ë ƒ²%²&Πײ'Ð Ö²(²)Ó ² KeyPurposeIdÁÕ ÝÕ  oid_valueÁ²*Ø Ý²+Ú ÝÚ ƒ²,Ý Ý²RoleÁß IssuerÁà
ß  â
²-².å ƒ²/²0²1é ïUnknownExtensionPolicyÁë IgnoreCriticalÁì
ïïï ƒïïò ×ïô >ë StrictÁö


"
$
$
(
(
,
.
0
2
@
@
E
L
M
N
S
U
Z
h
i
j
j
j
j
l

¹
¼
½
¾
¿
À
Â
Ã
Ã
Å
Ç
Ç
Ó
×
û
ü
ü
ü
ü
ü
ü
ü
ÿ
ÿ
ÿ










 
¡
¢
¢
¢
¢
Â
Ã
Ã
Ã
Ã
Ñ
Ô
Ö
×
×
×
×
×
×
Ú
Ú
Ú
Ú
â
ÿ
ÿ
ÿ
ÿ





ˆ
ˆ
Š



ž
ž
Ÿ
Ÿ
¢
¢
¢
¢
¢
£
¦
¦
¦
¦
§
²
µ
Ä
Å
Å
Å
Ê
Ë
Ë
Ë
Ø
Ù
Ù
Ü
Ü
þ


·
¼
½
¾
À
À
Á
Á
Á
Â
Â
Â
Â
Â
Ã
Å
Æ
Æ
Ë
Î
Î
Ó
Ó
Ö
ò
÷
ù
ù
û
þ
ÿ
ÿ


¦
§
§
§
§
§
§
§
§
§
«
Ó
Ó
Ó
Ó
Ô
Ô
Ô
Ô
Ô
Ô
Ø
Ø
Ø
Ø
Ø
Ø
â
ã
ê
ë
ì
ø
ù
ù
ù
ù
ù


ƒ








Ž
Ž







œ
¡
¡
¡
¢
¤
¤
¤
¦
¦
¦
¨
±
³
³
´
¸
¹
º
º
º
»
¼
¼
½
È
Ê
Ø
Ù
Ú
Û
Ü
å
æ
î
ÿ

ƒ

ˆ
ˆ

ä
ä
í
í
í

˜


¢
¢
¢




˜
˜
š
Ÿ
¡
¡
¡
¤
¤
¦
«
­
­
­
°
°
²
·
¹
¹
¹
¼
¼
¾
ö
ù
ù
ù
û
þ
þ



Š
Š
Š




š
š
š
£
¨
­
­
°
°
¹
½
½
È
Ì
Ì
Ô
Ø
Ø
í
ú
ú
ú




Ž
Ž
Ž




 
 
 
Á
Á
Á
Ä
Ç
Ê
Ê
Ó
Ó
Ó
Ú
ã
ã
ã
ê
ñ
ù
ù
ù
ý














 
 
¢
§
§
§
«
°
³
³
µ
º
½
½
½
¿
Â
Â
Ì
Ï
Ï
Ï
Ñ
Ô
Ô
Ü
æ
ê
ê
ð
ó
ó
ó
·ÝºÝÁÝ8¥¿cååúaèbéÚ;E#†2'Ž%Ý¥ùM««Ûî ïðÙbñòóòbôõö‹c÷øù¦cúûüÃcýþÿ|écƒƒdˆœdнdŒŽêd—eãQ¾x³!Ø¬Š ¬¬Ð쬵߬¬é¬é¬ÝÝ¿cœœóeÚ^žò^Ÿf^ ³f^äõFdlð±ƒî®ÌÌ™%ν%Ï×%Ðæ%”DÀ×`ÝÝðôôú'ö—(à)ÞÚ7TŽ%(Ý Ý¢¢£CertificateDerÁ¥ˆ Ëæ³£36˜ËÝé!¤°Ø£2¤¥áf¦§ôf¨©‹gª©g«Ÿ8¬Äg­®Õg¯ˆ°ýg±Ÿ8²œh³´®hµÆhŸ8·àh¸¹óhº»‘i ¼½¯i
¾¿Ñi ÀÁñi ÂÃŽj
ÄÅ·jÆÇ×jÈɃkÊˬkÌÍËkÎÏîkÐÑŽlÒÓ²lÔÕçlÖבmØÙ¶mÚÛámÜÝ…nÞß«nàáËnâˆãäúnåæ¡oçˆèéÂoêëÜo ìí€p!îï£p"ðñÌp#òóÿp$ôõ¡q%ö÷Áq&øùäq'úû„r(üý¬r)þÿár* Žs+ ˆƒ Ês,ôs-ˆˆ ­t.Š  æt/Œ ˆ Ž ®u0  äu1ˆÍŒÂ"nÝÙ¿c¶±Ðì¶±µß¶±¶±¶±é•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜¶±¶±¶±Äc¶±¾¶±Øâvœ  „wwûnSe,ú¿c„ºÐ섺µß„º„º„ºØ§ § äu¨ Öw© ôwB½²U$Éë¿cñºÐìñºµßñºñºñºØ³ ³ ôs´ Öwµ Üx)™æ«ZC¿cÞ»ÐìÞ»µßÞ»Þ»Þ»Û¿ À Á ‹c à XÄ Å ÛyÆ Ç óyÈ É •zÊ Ë »zÌ Í ÚzÎ Ï ™%Ð Ñ {Ò Ó «{ Ô Õ µ]
Ö × »[ Ø Ù á{ Ú Û ù{
Ü Ý –|Þ ß ¬|à á Ë|â ã Ï.ä å ï|æ ç €}è é š}ê ë Â}ì í Ñ}î ï ð}ð ñ ˜~ò ó §BTa°#×
Ø˼Š ˼¿c˼˼Ðì˼µß˼˼¿cÿ ÿ 
Ú˜
ò˜
f˜nb4ìÞi;ƒÏÀ¿c

¿
—(³ãaC–ð&õÞÝð§Á ݸ¸¹SubjectPublicKeyInfoDerÁ»ˆ 6urýÆM}ÝØ

þŒ
•€
¡€Ž
²€lÇ«æêÓ[â¿c¿c

Ë|
•€
¡€
²€-ŸÄ9–vC}ÝÜÜÏ.Þó.Äß/ÄÞm¹Ü£ÝÝÛ

œ
ž
ˆð d³SË}W¯ÝعĊ ¹Ä¹ÄÐì¹Äµß¹Ä¹Äše¹Ä¿c

œ
ž
ˆð d³SË}W¯8Û²
³
´
à‚µ

ñ‚5c¥¨÷£´Z؀Ɗ €ÆÐì€Æµß€Æ€ÆÛ¾
¿
À
ÊÁ
Â
ǃÃ
Ä
݃Å
ˆä=èbÁSÄÊ,ØñÆŠ ñÆÐìñƵßñÆñÆÛÍ
Î
Ï
¹„Ð
Ñ
Ï„mSÐê<ç4÷ØþÇŠ þÇÐìþǵßþÇþÇùM©©ô4«å!ägØL4ŸÍÝÛÙ
Û
Ü
Ý
ˆÞ
ß
¹…à
á
Ó…â
ˆã
ä
ñ…å
ˆæ
ç
Ÿ†è
ˆã7°E/UÝØªÉŠ ªÉªÉÝ¿cÙ
Û
Ü
Ý
ˆÞ
ß
¹…à
á
Ó…â
ˆã
ä
ñ…å
ˆæ
ç
Ÿ†è
ˆã7°E/U8¿cÆÆÇë7Éˆä ¥À¡¾·ÕKh8ééêUnixTimeÁëˆ :ßB¶ý¸SFÝéßß TrustAnchorÁáý âé#ãÍ!’À3 ·êòÝœœ² 
žÆ ŸÔ  ç ¡º¢ý £Œ!¤˜!¥±!¦Â!§Í!¨å!©ý!ª»F¹]éÝ¿cð
ò
ó
ÀNô
ˆõ
ö
çN÷
ˆ¢îøü|–WÝéð
ò
ó
ÀNô
ˆõ
ö
çN÷
ˆ¢îøü|–W8û
û
½‡ü
܇ý
ç þ
ã?ÿ
Ô  àhÄ¢Éd§)é§Ï  «ˆ Ô ˆ ç  ã?Š ܇ àh›þäàµã6dÝ¿cÉÐØÉпc´Ñ´ÑÝÇL Ý´ÑØ  “‰ «‰ À‰ ׉ ꉕ¥MŽBÑ¿cäÒ¿c˜ ˜ ›Šš «‰ À‰œ ׉ ê‰â`²õF¦hÝÁÓÝ¿c¡
¢ £ ÿФ ¥ ¦ œ‹§ ¨ © »‹ª « ¬ Ù‹­ ® ¯ ý‹° ± ² ™Œ³ ´ µ ¿Œ · ¸ àŒ¹ º » ÿŒ¼ ½ ¾ £¿ ‘Ò·b³öHjÛ©ÔØ©ÔŠ ©Ô©ÔÐì©Ôµß©Ô©Ô©ÔÝð©Ô¿cË Ë „ŽÍ ¬ŽˆÎ ¸ŽˆÏ ÅŽˆÐ ÚŽˆ¼•}ÝŠ êÖÛêÖØêÖ¿cÛ Û ·Ý ¬ŽÞ ¸Žß ÅŽà ÚŽ-sûö„¥ŽÝŠ ï×Ûïרï×Ûë ì í Ôî FM}æ˜|TØðØŠ ðØ¿có ô õ  ‘ö ÷ ¶‘«)9Þ:Š ¹ÙÛ¹ÙØ¹ÙÐì¹Ùµß¹Ù¹Ù¹Ù¿cƒ   ñ‚  à‚{
lËVŠ ÀÚÛÀÚØÀÚÐìÀÚµßÀÚÀÚÀÚ¿c     ±“ž·¨óÀ²DëŠ ÇÛÛÇÛØÇÛÐìÇÛµßÇÛÇÛÇÛ¿c£ £ ¤ ‡”¥ ˆ Ó!MìJÃ]OŠ ÎÜÛÎÜØÎÜùMääÄMæÛL²dV½çÝŒMääÄMæÛL²dV½ç8àíïÀNðÍN²ò©²óôçNõˆ²p2Õmÿa¯ÂÝ
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙèͳüüÎOýÜO²þîO²ÿ‡P²‚¥ELÏK^ج ¬ Ën­ œS® Ü”N¾žs"Ðì—àµß—à—à—à¿c—à¿c»Rˆ² ÎÞ&ËR±{ì8Û  —•· —(²h‹a*’oƒÆØÃአÃá¿cÃáÃáÐìÃáµßÃáÃá¥Ãᥠ8§Ûà Ä Å Š–Æ ˆ²Ç È §–É ˆ²IVû&ùuJKØß⊠ßâ¿cßâßâÐìßâµßßâßâùM©©ðT¬šU²* ÝUŒ"©©ðT¬šU²* 88ÛÕ Õ × ¬—²ô¿êa Þ#ºÝØþäŠ þä¿cÕ Õ × ¬—²ô¿êa Þ#º8µßÑåÑåÑåùMÀÀÖVÂðV²ÃÿV²Ä‹W²þêôÿºÂ8ùMçç¹Zéõ
²êó ²jµù´Èf$ÝÛß à á ø—â ã  ‘ÑŠ±éӕרÁçŠ ÁçÐìÁçµßÁçÁçúú»[üÔ[ýæTþ»¤ªoͬ„ÝÝÛë ö ÷ «™ì í à˜ k.‹uØ‡éŠ ‡é¿c‡é³‡éŒŽÚ]þ]ˆq²š³ø·/ÝÝÝê塜£  › ¬ § ¸ ³ ø ¿ ƒ
ÿ ˆ


˜


ÄÙ
ÊÆø
ð
û
Œ   ž ˜ À ¡ Ñ Ë á Û ø ó ˆ ƒ ˜  ¦ £ ¬ ¼  Î à ¹Õ ò ë 審çä­©ÈÀëçîô ¿ Ÿ

·
²
Æ
¾
Ò
Í
é
Ù
 ¡ Ö Ë æ Û ï ë û ó ƒ  © £ ¸  Ê Ã Ø Õ ä ß î ë  › ª § ¶ ³ õ ¿

¡

¸
²
Ç
¾
Ó
Í
ë
Ù
ƒ û
 à ¡ Ø Ë è Û ð ë ü ó Œ ƒ œ  ª £ ¯ ¬ ¹  Ë Ã Ú Õ å ß ï ë î÷ ¿ ¤

º
²
É
¾
Õ
Í
î
Ù
Å ¡ Ô Ë ä Û ò ë ú ó Š ƒ š  ¨ £ »  Í Ã Ý Õ ç ß ñ ë  › ± § ½ ³ ú ¿ ¦

Æ ¡ ó ƒ ¡  ´ ¬ ¾  Ð Ã ½Õ  › ® § º ³ ü ¿ ©

»
²
Ê
¾
Ö
Í
È ¡ þ ó Ž ƒ ž  ± ¬ À  Ò Ã è ß šî££ › ¯ § » ³ ý ¿ «

¼
²
Ë
¾
×
Í
É ¡ ÿ ó ƒ Ÿ  ² ¬ Á  Ó Ã »Õ é ß  •¢ß·ð
¹ð
QXÕÌàܳÙ
ÖéÔ ƒ˜ Ž¡ úŒgœŸÿ ÷ô½
¡ ô££®

Ü
ëäöíüô ë   ¢
³©¿c ®
ùMàÛ)ØŒŠ ÄŒÐìiµß~é %ƒFð
é!Äc¾šeÇLŒMà³¥Œ" 0x01Á0x02Á0x03Á0x04Á0x06Á
0x0AÁ”Þ
'ƒ5@G@{ _ }Á0x17Á0x18Áôï
„ï\üï"
 
$Œ2=oKif{ _ }Áôµ
„µüµ"
 Ö
$2=oKif{ _ }Áôû
„ûüû"
 œ
$2=oKif{ _ }Á 0x20Á0x80ÁÿÿLONG_FORM_LEN_TWO_BYTES_MAXÁÿÿÿÿLONG_FORM_LEN_FOUR_BYTES_MAXÁ31Á128Á0x81Áÿ0xffÁ0x82Áÿÿ0xff_ffÁƒ0x83Áÿÿÿ
0xff_ff_ffÁ0x84Áÿÿÿÿ
0xff_ff_ff_ffÁlÿz ¿ üäz)T˼Lóz%
DerTypeId::U8Á|æ‡ ¿ üˇ+\˼LÚ‡'DerTypeId::BoolÁtrueÁô¢y
„¢y\µyüÿxBÙy%EB¤êy
„êy ýyüÒy-Úåy%Eô«z
„«z\¾zü«z"
 Ìz
üz>Û¦zt,nküσ ¿ ü´ƒ;ß˼LÃ(DerTypeId::CrlDistributionPointÁü·U ¿ üœU;ã˼L«U&DerTypeId::SubjectPublicKeyInfoÁ?63ÁôâX
„âX\õXüâX"
 ƒY
üÇX>ºÝXt,nk¤ªY
„ªY ½YüŽY1»¥Y%E¤áY
„áY ôYüÈY.¼ÜY%EôœZ
„œZ\¯ZüœZ"
 ½Z
üÿY@½—Zt,nkôçZ
„çZ\úZüçZ"
 ˆ[
üÈZB¾âZt,nkô²[
„²[\Å[ü²["
 Ó[
ü“[B¿­[t,nk¤Š\
„Š\ \üÞ[AÀ…\%E¤Ã\
„Ã\ Ö\ü¨\0Á¾\%E¤ÿ\
„ÿ\ ’]üá\3Âú\%E´Ùa ¿ ü¾a2Ã˼LÍa&DerTypeId::GeneralNameÁë
 
#
0 
9 Bü¾
9 Ú½£½£¾¿£¹À£þÁ£ exhaustedÁ1¥œMu7·PìË
v ¿ üˆ+ ß˼L— &DerTypeId::TimeÁ31Á31Á30Á31Á30Á31Á31Á30Á31Á30Á²1970ÁTÉ1 $É1 ±Ð1 m; 8±6mp„É1 Ö1 Ý$ 'ÝJ Ø1 ü¢18 ðÃ1 ß”œ@ì‘— ¿ üö–9 Û˼L…— (DerTypeId::CertRevocationListÁôÌ 
„Ì  ü©B ìÇ 'IE¤ž 
ž  °ž üô> 혞 'I¤âž 
„âž  õž ü»ž< îÝž 'I¤«Ÿ 
„«Ÿ  ¾Ÿ ü€Ÿ@ 烈 'I¤æŸ 
„æŸ  ùŸ üÉŸ2 ð០'I¤²  
„²   Å  ü„ C ñ­  'I쫚 ¿ üš9 ˼LŸš (DerTypeId::RevokedCertificateÁ 
10Áܯ§ ¿
ü”§7 ˼L£§ (DerTypeId::RevocationReasonÁMAX_SUB_CA_COUNTÁüÓ*
 ÌÓ


¾ 
9ƒŽ
˜ü¦]
Ãá
O¾™Ÿüù*
 Ìù
†Ÿ|“
¿™Ÿ4©
üÌ]
Ãá
L¿™Ÿüà‘2
´û‘

 
&Œû‘

·6G 
^ Ã  ‘’
üÆ‘W
  œ’
£’
šüŠ‘
Ãá$·‘
™Ÿ 
ßâÖÕ Õ × ¬—²ô¿êa Þ#º™ŸU{ü‚”;
´¦”
¸”
 
&Œ¦”
­¡2C »”
Z Ã  ¼”
üè“`
  Ç”
Δ
ü¡“­
Ãá$Ù“
™Ÿ“
ßâÒɢЙŸÏ%KäÒ˜
 ž  5BO 
 í˜
 ü«˜D
ž…¦Dǘ
ʥʥ¥Ì¥ÜÓ˜
Ê¥¸K&   Ô˜
 ט
 Ú˜
 ݘ
 à˜
 ã˜
 æ˜
 é˜
 ì˜
œ«žGÊ¥ÈÌ¥$Ùäã™
 ŸÊ¥%2?…¦ þ™
 ü¼™D
Ÿ…¦DØ™
Ê¥ŠÊ¥Ì¥Üä™
Ê¥¥K&   å™
 è™
 ë™
 î™
 ñ™
 ô™
 ÷™
 ú™
 ý™
˜ŸGÊ¥µÌ¥$ÆÜé³
€´
 
&´é³

 5F ƒ´
ü˳D
Õ  Ž´
•´
·ü™³|
É¢$¼³
™Ÿª³
GGI»œ·æ‘"ÌüØ™Ÿ×Ejü˜¼

Ôˆ ÇÕˆ( ž¼
4 .()[¸ÇÔˆ ¡¼
! !ÇêˆÅ; ëø™Ÿ ·¼
 üù»@
¾ ™Ÿ,¼
º°Qº°Z¼°øÇÓˆ'ögrß±º°t (Âhd¨  ¤¼
 §¼
 ª¼
 ­¼
 °¼
 ³¼
 ¶¼
|¾sº°¨¼°N?ß±Hºß±ÃÛü’½

Ôˆ ÈÕˆ( ˜½
4 .()[¸ÈÔˆ ›½
! !ÈêˆÅÍ¿º°Ûèõ™Ÿ ±½
 üó¼@
¿ ™Ÿ,н
º°@º°I¼°øÈÓˆ'åVß±_ß±þº°qŒ(~®TPm¥  ž½
 ¡½
 ¤½
 §½
 ª½
 ­½
 °½
hw¿pº°¼°K+ß±4¦ß±¯ÇMAX_SUB_CA_COUNTÁ¤û
 ¿ üà
0˼
&DerTypeId::ExtensionÁô¼
„¼ü¢9·%EBô 
 ü "
 ± 
üäOt,nkü#  ¿
ü‚#<˜˼L#& DerTypeId::DistributionPointNameÁœ¬ £®%¶±1„º9@Ô§* £á%¶±1—à9@dò, £æ%¶±1˼9@ü¦;' £+ &¶±2Þ»:Aüú>$ £-&¶±2Þ»:Aü‚I3 £/ &¶±2ñº:Aü£S0 £1 &¶±2ñº:Aüý( 
œ
(

œ
ž
ˆð d³SË}W¯e™Ÿmt ¾
Ä
%ñÆ1þÇ9@<÷S Ù
Ü
'Ù
Û
Ü
Ý
ˆÞ
ß
¹…à
á
Ó…â
ˆã
ä
ñ…å
ˆæ
ç
Ÿ†è
ˆã7°E/UÈŽ®Ð×L­T Ù
á
'÷Ä3Ž®;BÌÒT Ù
ä
'÷Ä3Ž®;B\¾V Ù
ç
'÷Ä3:A´òh ÆÇ'ÆÆÇë7Éˆä ¥À¡¾·ÕKhc™Ÿkr ð
ó
'ð
ò
ó
ÀNô
ˆõ
ö
çN÷
ˆ¢îøü|–WyÉЈ ð
ö
'ËÉ3  «ˆ Ô ˆ ç  ã?Š ܇ àh›þäàµã6d üÖQ ­®&­­®ŒI¯ˆˆ LGØzPWö·`gn¼ŒT £ ¤ %ÎÜ18?D´H
íô'íïÀNðÍN²ò©²óôçNõˆ²p2Õmÿa¯Â 
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙœœ² 
žÆ ŸÔ  ç ¡º¢ý £Œ!¤˜!¥±!¦Â!§Í!¨å!©ý!ª»F¹]鈼ç
(»Rˆ² ÎÞ&ËR±{ìd 
ªBªBö­BbufÁ÷<®B÷<9)
-ÜnLçEçEèEGlobalÁ ¿±‡§í#ØßD«©
à Å &ßâ2É¢:AŒ¬ª
à È &ßâ2É¢:AD  Œ'ŒŽÚ]þ]ˆq²š³ø·/ÝrååúaèbéÚ;E#†2'Ž%÷Ä´»^à˜³ÄäÌñˆ²ï»ÍãäíÀ¢¤² $Çœš«ˆÔà œ˜›Šœü˜ »z”‘ð
žš‡”£ Ÿ‡”¤ Ÿ…“„»  „‘¤Íó ¡·ŒãÛ ¢„ŽÄöË £ù{„˜¡ ¤‹’œªƒ ¥úa\Ïå¦ú'lìô§±yL¿ ©±(,›£ªâv”¢«ôsü¶$³ ¬äuüä0§ ­¿”­
®­<ÄÓ ü¯¸T̈¥±ÄM¤£ä²Õ ³ðT„Ç©´—• µËnÔë¬ ·Ld‡Ù·½‡¼Èû
¹“‰„á ºžüý„;üý1. webpki: Web PKI X.509 Certificate Validation.Á¯úü³LI See `EndEntityCert`'s documentation for a description of the certificateÁü€41 processing steps necessary for a TLS connection.Áµú # FeaturesÁÈúìÌ | Feature | Description |Áìê | ------- | ----------- |Áüˆ|y | `alloc` | Enable features that require use of the heap. Currently all RSA signature algorithms require this feature. |Áü… EB | `std` | Enable features that require libstd. Implies `alloc`. |ÁüË A> | `ring` | Enable use of the *ring* crate for cryptography. |Áü
xu | `aws-lc-rs` | Enable use of the aws-lc-rs crate for cryptography. Previously this feature was named `aws_lc_rs`. |Á^à˜³ÄäÌñˆ²ï»ÍãäížÀŸ¤ž² œš«ˆœ œ˜›Š˜ »zšð
žš‡”£ Ÿ‡”«¤ Ÿ…“  „‘˜ó ¡·Û ¢„ŽË £ù{¡ ¤‹’ƒ ¥úaå¦ú'ô§±y¿ ©±(£ªâv«ôs޳ ¬äuŒ§ ­¿Š
®­< ü¯¸Tˆ¥±ÄMä²Õ ³ðT©´—• µËnƒ¬ ·LÙ·½‡û
¹“‰ ºžõøû„•ò”êç"$(,.02456789:;<=>?@EINUWåîö§ªB PhantomDataÁ\¾Œå±(,Ø£ ª±yLæ¿ 
|p̰X,Ð79„ß(ôªÝ ¥

 Íìé« ³««¯ü¬ 6º GGI»œ·æ‘"ÌüÝ«« 
Ý髚U,¾ üÛ
8Ý¥¨ç ä
é«Ý
««úMûMà
24 Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
é«¶±ü½ ( ø  ø ««Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ««úM Å 
Ýé«  <closure_kind>Á<closure_signature>Á<upvars>Áé«Éé ((ReaderÁ*šU$+´$Ö‹Cº¤uü¸ ( ÝÍì ÄíÝÞ ¼í&Îí¼í2Îí)Ñ ü®
G
ù  ù ((Ûë*šU$+´$Ö‹Cº¤uÝÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Äí¶± Â

ÄíÝb4º
Äû
<˼ü˜[óçÉéÝ¥¨ç ³úè
Ý髚U,ï(*ü¢ üË%„ÜÄúë̾¬
tagÁƬ÷!ë!̸¬ 
!•ñÀü¡¨ü¯ #ú  ú ((Ûë*šU$+´$Ö‹Cº¤u#¬Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü#¶±Ð
"šU,Ù•ñ
size_limitÁTŽ-âtû  û ((Ûë*šU$+´$Ö‹Cº¤uݬ¶±÷Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£¶±Ý%£&÷'&'% ½Íìòö ®Íìöü†;ü –"ö ü Üõü‹6ü öã÷˜"¤ö„±
$ÝòööšU,¶•ñÝß),ëdecoderÁ<ý–ôª¡£ŸüèÃý  ý Üõ¬¶±ö¤öÝ)£*÷+*)+ °÷ Á÷üÙ;þ –"ö þ ÜõüÞ6þ öú˜"¤ö„„
(ÝòööšU,‰•ñ°ß),¾Á÷ýŽüó{T -ÿ  ÿ ((Ûë*šU$+´$Ö‹Cº¤u-¬Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü-¶±Œ
,šU,• •ñ¼ üÌ"´Ú"/
 
((Ûë*šU$+´$Ö‹Cº¤u/Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü/¶±ñ"
.šU,ú"ü $žô®$1
 
((Ûë*šU$+´$Ö‹Cº¤u1Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü1¶±Í$
0šU,Ö$–ôTý$üÓ>:»¤Œž>̘>Lá>
¬ 
›ŸªBªBö­BÆÐ÷<®B÷<9)
-ÜnLóÑ ü>
2•ñë>bytesÁ,õ><èG2åê3ýê3šë3323 üÒP)ŒãPüƒS$d”Sô•U¤›UäôV”úVüæW ´ìWüÓX'ÔÙXüÚY!¼àYüÈZ(ÜÎZüÕ[#ÌÛ[üÇ\*ìÍ\üØ]"ÄÞ]üÌ^)äÒ^üÝ_ýlë_ƒ
 ƒ
Üõ¬¬¶±ÏÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¶±ÝAÏBAB ‰`Í첆ü‡a;
“"²† 
ÜõüŒa6
²†Õ‡˜"·†Œ±a
@ݲ†šU,` outer_tagÁL©` inner_tagÁL½`ß),Ñ` allow_emptyÁ\ã`Á÷<þ`ù_©«<‰b@åêCýêCšëCC@C²† Óì·†  ¬ ¶± ²†<¦c@åêDýêDšëDD@D²†ʉô‰ü¨dô¶dF
 
((Ûë*šU$+´$Ö‹Cº¤uFÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"ÌüF¶±Õd
EšU,Þd<šfEåêGýêGšëGGEGωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ž®¶±ãfEåêHýêHšëHHEH[[\
EndOfInputÁ éÞ½ª…q¶±ü˜h$tªhÝJJIIÍKé(Ë_ã¨D$Ý(Ë_ã¨D$K¹h”ÃhDÃhII Ý›Ÿ¼Úh8

IIÍKé(Ë_ã¨D$8Müøh0<†i
 
ËL ŽiL
M8$ibitÁ•iüõn`„ƒoˆ
GGI»œ·æ‘"Ìüˆ
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
IIÍKé(Ë_ã¨D$ˆ
¶±¬o
NšU,”odúoNåêOýêOšëOONOωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
IIÍKé(Ë_ã¨D$¶±ÚrNåêPýêPšëPPNPëŽÜâxÝRRSTSçxü„yFD‡y
 
ÜõÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¶±Q ˜yQ
SÝb4yÄäz<êzQQ˼ü‘{vœŸ{VŠ
 Š
((Ûë*šU$+´$Ö‹Cº¤uVÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"ÌüV¶±³{
UšU,¼{üâA„ððŽ¶±
W ìЃÝYYZ\ZÕƒüôƒFD÷ƒ
 
ÜõÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¶±X ˆ„X
ZÝb4€„<Zåê[ýê[šë[[Z[ω®›ġ<чXX˼„ú‡‡ˆ ‹ˆ  ‘ˆ Àˆ, “ˆ8‹W,”ˆ& ™ˆ8$šˆ$ žˆ,  ˆ8secondÁ4¡ˆ& §ˆ8$¨ˆ$ ¬ˆ, ®ˆ ¯ˆ ¼ˆ, ±ˆ8tailÁ$²ˆ& ¶ˆ8$·ˆ$ ½ˆ
¾ˆ*ˆ Ɉ ÿˆ Óˆ ùˆ  Ôˆ àˆ740ÁÕˆ
؈, Úˆ8‹W,Ûˆ âˆ, äˆ8ˆ4åˆ$ ëˆ, íˆ îˆ öˆ, ðˆ8Õ$ñˆ$ ÷ˆ
øˆ”´» aws-lc-rsÁ¬œì–t¸mnopqrstuvwxyz{|}~œ²€Lv® ^`
try_fips_modeÁl ^aAlgorithmIdentifierÁœ¡«^cInvalidSignatureÁ„¶á^dà â^dSignatureVerificationAlgorithmÁôȃ^ealg_idÁ4è
^fLjØÚ½¿L•Ÿ¡?A*8î®hijlˆijhlüÎ2ŒÑŒ
 Œ
«¬º ­ˆ
 “£Nܳ÷g ãg
hü­1„°
 
î®æ£g Ág
iüŠŽ



 Ž
î® 
›Ÿ 
›Ÿ 
›ŸÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ááâà  ·¨çìYß´g §g
j
public_keyÁT¶ú²€ˆjåêkýêkšëkkjkÿŠ 4[¯GxÇ5À¦´©
 
î®g ±g
lüœAüä74 ECDSA signatures using the P-256 curve and SHA-256.ÁŒ§ ƒƒÿÿüëAü§C@ ECDSA signatures using the P-256 curve and SHA-384. Deprecated.ÁŒöß©ƒÿÿüº!Aüö C@ ECDSA signatures using the P-256 curve and SHA-512. Deprecated.ÁŒÅ!ß©ƒÿÿü‰$AüÅ#C@ ECDSA signatures using the P-384 curve and SHA-256. Deprecated.ÁŒ”$ß©ƒÿÿüÌ&Aü”&74 ECDSA signatures using the P-384 curve and SHA-384.ÁŒ×&ß©ƒÿÿü›)Aü×(C@ ECDSA signatures using the P-384 curve and SHA-512. Deprecated.ÁŒ¦)ß©ƒÿÿüÞ+Aü¦+74 ECDSA signatures using the P-521 curve and SHA-256.ÁŒé+ß©ƒÿÿü¡.Aüé-74 ECDSA signatures using the P-521 curve and SHA-384.ÁŒ¬.ß©ƒÿÿüä0Aü¬074 ECDSA signatures using the P-521 curve and SHA-512.ÁŒï0ß©ƒ ÿÿü·3Jüï2GD RSA PKCS#1 1.5 signatures using SHA-256 for keys of 2048-8192 bits.ÁÔÂ3ß©ƒ
ÿÿüŸ6Jü×5GD RSA PKCS#1 1.5 signatures using SHA-384 for keys of 2048-8192 bits.ÁÔª6ß©ƒ ÿÿü‡9Jü¿8GD RSA PKCS#1 1.5 signatures using SHA-512 for keys of 2048-8192 bits.ÁÔ’9ß©ƒ ÿÿü¨?Xü§;GD RSA PKCS#1 1.5 signatures using SHA-256 for keys of 2048-8192 bits,Áüï;96 with illegally absent AlgorithmIdentifier parameters.Á©<úü­<85 RFC4055 says on sha256WithRSAEncryption and company:Áæ<úüê<C@ > When any of these four object identifiers appears within anÁü®=JG > AlgorithmIdentifier, the parameters MUST be NULL. ImplementationsÁüù=C@ > MUST accept the parameters being absent as well as present.Á½>úüÁ>PM This algorithm covers the absent case, [`RSA_PKCS1_2048_8192_SHA256`] coversÁ¬’? the present case.Áü³?(ß©ƒ
ÿÿüÓFXüÒBGD RSA PKCS#1 1.5 signatures using SHA-384 for keys of 2048-8192 bits,ÁüšC9·µÔCúüØC8†¶‘Dúü•DCÔ¶üÙDJ¡·ü¤ECõ·èEúüìEPM This algorithm covers the absent case, [`RSA_PKCS1_2048_8192_SHA384`] coversÁ¬½F§¹üÞF(ß©ƒÿÿüþMXüýIGD RSA PKCS#1 1.5 signatures using SHA-512 for keys of 2048-8192 bits,ÁüÅJ9·µÿJúüƒK8†¶¼KúüÀKCÔ¶ü„LJ¡·üÏLCõ·“Múü—MPM This algorithm covers the absent case, [`RSA_PKCS1_2048_8192_SHA512`] coversÁ¬èM§¹ü‰N(ß©ƒÿÿüðQJü¨QGD RSA PKCS#1 1.5 signatures using SHA-384 for keys of 3072-8192 bits.ÁÔûQß©ƒÿÿüÛUSüTFC RSA PSS signatures using SHA-256 for keys of 2048-8192 bits and ofÁü×T30 type rsaEncryption; see [RFC 4055 Section 1.2].ÁUúüUKH [RFC 4055 Section 1.2]: https://tools.ietf.org/html/rfc4055#section-1.2ÁüæU#ß©ƒÿÿüãYSü˜XFC RSA PSS signatures using SHA-384 for keys of 2048-8192 bits and ofÁüßX3¦Á“Yúü—YKïÁüîY#ß©ƒÿÿüë]Sü \FC RSA PSS signatures using SHA-512 for keys of 2048-8192 bits and ofÁüç\3¦Á›]úüŸ]KïÁüö]#ß©ƒÿÿüÕ`7ü¨`,) ED25519 signatures according to RFC 8410Á<à`ß©ƒÿÿœÃÅÇÌúÀ¼¦¸ì¯¢ë»ç\ ˆù„Ž úa\ åŠ˜ÎbyLÏ¿ ޱ(,Ú£ãa„í äË|T—
á{\½Ù
ô4dÊ©”Ø
޵]¬„ Œ»[L› ú˜˜´¦ ë “A”¾  ˆš©\”Ö  ü›"Á²µ¢¥õŠ{~lo]`ORDG58¼æ*ôƒœ§ÿîð\ñÝßÌκ¼©«˜šœ
ôî  A parsed X509 certificate.Á$˜
ÝèÍF¹]鞟 ¡¢£¤¥¦§¨©ª
ü§
'
œœóçüÔ
&
œœšÃü€ '4‹ œœóçü­ ) œœóçüÜ ( œœóçüŠ %$• œœóçü¶ :ŒÁ œœÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙóçü·2œœöÎüï,úœœöÎü¡9„¬œœöÎüà9„뜜öÎüŸ@¼ªœœöÎ¼ææœœÞ°Œ‚ݬ¬èÍ­®¯¹¼½¾¿ÀÂüšU„¨óçÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
èͶ±««
­Ýcert_derÁD¹üÈMóçÐÑ««
®ÝÃÑüéóç‡éÐÑ««
¯ÝÃÑD€
ext_policyÁT¨Tׯåê°ýê°šë°°¯°ωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ž®

Ë|
•€
¡€
²€-ŸÄ9–vC}¶±,›¯åê±ý걚뱱¯±×Ô¯åê²ý겚벲¯²ωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
üζ±²Õ Ž® ‡é¼®,\´,DÖ.¯åê´ýê´šë´´¯´ʉ üÎ¥Ø\¹1¯åêµý굚뵵¯µʉ›Ùüí8>üŸ5YV Returns a list of valid DNS names provided in the subject alternative names extensionÁý5úü…6MJ This function must not be used to implement custom DNS name verification.Áü×6\Y Checking that a certificate is valid for a given subject name should always be done withÁü¸763 [EndEntityCert::verify_is_valid_for_subject_name].Áó7úüû7mj [EndEntityCert::verify_is_valid_for_subject_name]: crate::EndEntityCert::verify_is_valid_for_subject_nameÁ|ô8
 
èÍÝÝ·« „9«
Ý$…9襎9ݦ¦Ýݤ9Ýݬ­¬­ FilterMapÁ¯­ùÍ:°­±Í:žYl¼[qR¨©©ô4«å!ägØL4ŸÍݸÝÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ù
Û
Ü
Ý
ˆÞ
ß
¹…à
á
Ó…â
ˆã
ä
ñ…å
ˆæ
ç
Ÿ†è
ˆã7°E/Uݶ±Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ÝÍìÝÝ·/ùMûâÄ“9ûâúMäâtœ9óâY’ã"¢ãDê9åê¸ý긚븸¸Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
÷Ķ±Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ üáA>üü?YV Returns a list of valid URI names provided in the subject alternative names extensionÁÚ@úüâ@\Y This function returns URIs as strings without performing validation beyond checking thatÁÌÃA they are valid UTF-8.Á|èA
 
èÍÝݺ« øA«
¹Ý$ùA訂B¹Ý§§¹ƒß˜B”߬­¬­®Þ¯­ùÍ:°­±Í:žYl¼[qR¨é߻ݬàÍìÝݺ¥ùMÁéćBÁéúMäâtB¹éÎ×é!çé¹DÞB¹åê»ý껚뻻¹»¤äìéGüóE" Raw certificate serial number.ÁšFúü¢FB? This is in big-endian byte order, in twos-complement encoding.ÁéFúüñFHE If the caller were to add an `INTEGER` tag and suitable length, thisÁü¾G&# would become a valid DER encoding.Á4ðG
 
èÍ 
›Ÿ« ÷G«
¼Ý$øGì³Iü½H'$ Raw DER-encoded certificate issuer.ÁéHúüñH=: This does not include the outer `SEQUENCE` tag or length.Á4ºI
 
èÍ 
›Ÿ« ÁI«
½Ý$ÂIôþJü‡J(% Raw DER encoded certificate subject.Á´Júü¼J=±í<…K
 
èÍ 
›Ÿ« K«
¾Ý$ŽKü•MIüÔKSP Get the RFC 5280-compliant [`SubjectPublicKeyInfoDer`] (SPKI) of this [`Cert`].Á¬Lúü´L>; This **does** include the outer `SEQUENCE` tag and length.Á»¤ŒýLÌ÷L¼œM˜
 ˜
è͸¸¹úÀ»ˆ 6urýÆM}« ´M«
¿Ý$µMüQ„¼Q
 
èÍÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÝÝÁ« °Q«
ÀÝ$±Qø©ÇQ=Àݨ¨ÀƒßøQ”ßååúaèbéÚ;E#†2'Ž%ÝÌÌ™%ν%Ï×%Ðæ%”DÀ×`ÝÍìÝÝÁÕùMÃöüÌQ8ÃöúMÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ñõ¶±üÕQ.»öRÙövêöÀü‰S'üÎR63 Raw DER-encoded representation of the certificate.ÁSš
 š
èÍÞ°« ”S«
ÂÝ$•Sü“UCDU
œ
 
((Ûë*šU$+´$Ö‹Cº¤uœ
·† ¦U
ÚU,ŸU<×VÃåêÄýêÄšëÄÄÃÄʉüµX„üÃX!Æ
 
((Ûë*šU$+´$Ö‹Cº¤uÆÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìüƶ±åX
ÅšU,îXüÿ^–¼‚_Èž
Ÿ
 ž
œœ² 
žÆ ŸÔ  ç ¡º¢ý £Œ!¤˜!¥±!¦Â!§Í!¨å!©ý!ª»F¹]éÈ Ÿ
úú»[üÔ[ýæTþ»¤ªoͬ„ȇ鷆š_
Ǥ$£_ extensionÁL¼_ïÒTÛ_-/$ƒbÇåêÉýêÉšëÉÉÇÉ·† Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙŽ®÷€÷€÷€÷€÷€ úú»[üÔ[ýæTþ
ServerNameÁT¾Ôàä—¡ôʃàå¤ÌßàæâËéàç·Œ•Û àè±(,º£àéÛ0„Û ÿàëþ2¼í àì¡ÄI$ ²àî¸Ț¥àï·LdÁÙàð¤àòÔ \âÄàó„†SLDG+. ûýì‰휬ÞœÅÏѺ¼”‹©\’šœ‹,Ô|~kmäÓôñ An end-entity certificate.Á úü” IF Server certificate processing in a TLS connection consists of severalÁüÞ ,) steps. All of these steps are necessary:Á
úü
OL * [`EndEntityCert::verify_for_usage()`]: Verify that the peer's certificateÁüß
MJ is valid for the current usage scenario. For server authentication, useÁü­ )& [`crate::KeyUsage::server_auth()`].Áü× UR * [`EndEntityCert::verify_is_valid_for_subject_name()`]: Verify that the server'sÁü­ QN certificate is valid for the host or IP address that is being connected to.Áüÿ RO * [`EndEntityCert::verify_signature()`]: Verify that the signature of server'sÁüÒ
HE `ServerKeyExchange` message is valid for the server's certificate.ÁúüŸKH Client certificate processing in a TLS connection consists of analogousÁüë,Ö“˜úüœO˜”üìMJ is valid for the current usage scenario. For client authentication, useÁüº)& [`crate::KeyUsage::client_auth()`].ÁüäRO * [`EndEntityCert::verify_signature()`]: Verify that the signature of client'sÁü·HE `CertificateVerify` message is valid using the public key from theÁÜ€ client's certificate.Áœúü KH Although it would be less error-prone to combine all these steps into aÁüìLI single function call, some significant optimizations are possible if theÁü¹OL three steps are processed separately (in parallel). It does not matter muchÁü‰NK which order the steps are done in, but **all of these steps must completedÁüØKH before application data is sent and before received application data isÁü¤LI processed**. The [`TryFrom`] conversion from `&CertificateDer<'_>` is anÁüñMJ inexpensive operation and is deterministic, so if these tasks are done inÁü¿SP multiple threads, it is probably best to just create multiple [`EndEntityCert`]Áü“?< instances for the same DER-encoded ASN.1 certificate bytes.ÁÝõõ¤°)ÞÚ7TŽ%(öì¬öàôôèÍü>Ýøø¤°ùúòóú÷÷¶±üÈFüîA> Parse the ASN.1 DER-encoded X.509 encoding of the certificateÁ|´ `cert_der`.ÁDËذÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¤°¤°ذò÷÷
úݤ´ˆ8¢
¢
ôôú'ö—(à)ÞÚ7TŽ%(ÿü¨)Çü¥IF Verifies that the end-entity certificate is valid for use against theÁüó'$ specified Extended Key Usage (EKU).ÁŸúü§GD * `supported_sig_algs` is the list of signature algorithms that areÁüóMJ trusted for use in certificate signatures; the end-entity certificate'sÁüÅ41 public key is not validated against this list.ÁüþIF * `trust_anchors` is the list of root CAs to trust in the built path.ÁüÌLI * `intermediate_certs` is the sequence of intermediate certificates thatÁü30 a peer sent for the purpose of path building.ÁüÕKH * `time` is the time for which the validation is effective (usually theÁ¤¥  current time).Áü¾ LI * `usage` is the intended usage of the certificate, indicating what kindÁü!]Z of usage we're verifying the certificate for. The default [`ExtendedKeyUsageValidator`]Áüñ!63 implementation is [`KeyUsage`](crate::KeyUsage).Áü¬"A> * `crls` is the list of certificate revocation lists to checkÁôò" the certificate against.Áü•#MJ * `verify_path` is an optional verification function for path candidates.Áç#úüï#\Y If successful, yields a `VerifiedPath` type that can be used to inspect a verified chainÁüÐ$XU of certificates that leads from the `end_entity` to one of the `self.trust_anchors`.Á­%úüµ%YV `verify_path` will only be called for potentially verified paths, that is, paths thatÁü“&YV have been verified up to the trust anchor. As such, `verify_path()` cannot be used toÁüñ&[X verify a path that doesn't satisfy the constraints listed above; it can only be used toÁüÑ'\Y reject a path that does satisfy the aforementioned constraints. If `verify_path` returnsÁü²(H
¤
ƒ¤
ý
ßߤÌáý âé#ãÍ!’À3 ·êò¥
ý
¢¢£ì¯¥ˆ Ëæ³£36˜ËýÔÌí(Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÛ Û ·Ý ¬ŽÞ ¸Žß ÅŽà ÚŽ-sûö„¥Ž¦
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ §
¨
©
" ¨
ÙÙ·LÛ‰'²ÜÛL²ÝðL²ø4Fû²)#$©
¨
©
˜"Àº·†§
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÙÙ·LÛ‰'²ÜÛL²ÝðL²ø4Fû²)#$ý¶±ûí(þþÀ)ûÍ캸ô¦+¥º¸Ì«+
ü8º¸$Ñ)êJ”ß)„Kl£*™K”Ñ*Ÿ8$‡+usageÁ,Ÿ+³KTÎ+ verify_pathÁ\,uwü¯/xüä.FC Verifies that the certificate is valid for the given Subject Name.Áü¶/ ª
«
¬
 ª
œ§ «
ÔÖרˆÙÚÓ…Ûˆö-~Ô±g¬
·†û à/û
ÿ8$á/ server_nameÁ\ï/ü™<¬üÅ3A> Verifies the signature `signature` of message `msg` using theÁì‹4 certificate's public key.Á­4úüµ4.+ `signature_alg` is the algorithm to use toÁüè4HE verify the signature; the certificate's public key is verified to beÁüµ5# compatible with this algorithm.ÁÝ5úüå51. For TLS 1.2, `signature` corresponds to TLS'sÁü›6HE `DigitallySigned.signature` and `signature_alg` corresponds to TLS'sÁüè6KH `DigitallySigned.algorithm` of TLS type `SignatureAndHashAlgorithm`. InÁü¸7DA TLS 1.2 a single `SignatureAndHashAlgorithm` may map to multipleÁü8=: `SignatureVerificationAlgorithm`s. For example, a TLS 1.2ÁüÃ8IF `SignatureAndHashAlgorithm` of (ECDSA, SHA-256) may map to any or allÁü‘9KH of {`ECDSA_P256_SHA256`, `ECDSA_P384_SHA256`}, depending on how the TLSÁüá9! implementation is configured.Á‡:úü:DA For current TLS 1.3 drafts, `signature_alg` corresponds to TLS'sÁüØ:HE `algorithm` fields of type `SignatureScheme`. There is (currently) aÁü¥;EB one-to-one correspondence between TLS 1.3's `SignatureScheme` andÁüï;%" `SignatureVerificationAlgorithm`.Á„ <­
®
¯
°
 ­
œ§ ®
Ĩ
¯
›Ÿ °
›Ÿ·†û º<û
8$»<
signature_algÁlÉ<msgÁ…=²€L™=ü’?$ݤ°ƒê!ë!—?\½?4Â?èÍüà? ,ã?±
 ±
¤° ±
¤°ê! é?
Ý$ê?¿ £³ § › ßúHöܪB×ë `ˆm\ÿ•¢âË銺 œÐ«Œ¾ÔËnÔ‹¬ ެ›¬|ÐŽ´ô€œ‘oLÄ_aMOü÷.AT™T¶±ü§U4lµU¶±¶±¶±
$ÃUæ ÉUüÏY $ÝY²
 ²
¶± âY
$ãYüàr%Dîr³
 ³
¶± ÷r
$ørüçt.޹ëìœu$Ÿu¶±޹
»,¤uÜx¶±Åcü£x8¦x´
µ

 ´
¶± µ
 c cˆ¢cµ
 `£cÆÐ `àB¤GS

Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ŸÈŸÈ È±( éBL ªx
$«x± ±xüy"»À|y¼…y¶±l†»’ „óÄí¤¥¦§¨©ª«¬­®¯°±²ÿ º œ«˜šà „¢á˜à â˜—¡ô´ƒ˜œÈ¡
˜²€˜žLƒqsIK79|á*üû5ÏÀ ¡¢ ¡¢ü· 2Œº ·
 ·
ÏÀ棟 Ì Ÿ
 ü–
1„™
¸
 ¸
ÏÀ棟 ª
Ÿ
¡
üó
„ö
¹
º
»
¼
 ¹
ÏÀ º
›Ÿ »
›Ÿ ¼
›Ÿï¥Ÿ Ÿ
¢$‘ †¦ ú ²€ 
¢åê£ý꣚룣¢£ç%ç%è%ÿŠ Dö™0Cƒ CÀ¦üí
Aüµ
7‰¨Œø
ß©ƒÿÿü›Aü×C‘©Œ¦ß©ƒÿÿüÉAü…C§«ŒÔß©ƒÿÿüëAü³7²¬Œöß©ƒÿÿü·JüÕG¹±»¤Œ£ÌÔÂß©ƒÿÿü˜Jü¶GȲ»¤Œ„ÌþԣߩƒÿÿüùJü—G׳»¤ŒåÌßÔ„ß©ƒÿÿü“#XüøGæ´üÀ9·µúúüþ8†¶· úü» CÔ¶üÿ J¡·üÊ!Cõ·Ž"úü’"Pθ¬ã"§¹»¤Œÿ"Ìù"üž#(ß©ƒÿÿü³*Xü˜&G…ºüà&9·µš'úüž'8†¶×'úüÛ'CÔ¶üŸ(J¡·üê(Cõ·®)úü²)PÀ»¬ƒ*§¹»¤ŒŸ*Ì™*ü¾*(ß©ƒÿÿüÓ1Xü¸-Gæ¼ü€.9·µº.úü¾.8†¶÷.úüû.CÔ¶ü¿/J¡·üŠ0Cõ·Î0úüÒ0P¡¾¬£1§¹»¤Œ¿1̹1üÞ1(ß©ƒÿÿüº5JüØ4GÇ¿»¤Œ¦5Ì 5ÔÅ5ß©ƒ ÿÿüž9Sü¹7FÖÀü€83¦Á´8úü¸8KïÁ»¤ŒŠ9Ì„9ü©9#ß©ƒ!ÿÿü›=Sü¶;FƒÃüý;3¦Á±<úüµ<KïÁ»¤Œ‡=Ì=ü¦=#ß©ƒ"ÿÿü˜ASü³?FºÄüú?3¦Á®@úü²@KïÁ»¤Œ„AÌþ@ü£A#ß©ƒ#ÿÿüÝC7ü°C,ñÅ<èCß©ƒ$ÿÿt•T™
±(,£³´Ï.¤1ܳµ±yLS¿ ³·©»^³¸Ô \cij¹—¡ôƒ³»úÀ¼¡¸³¼œ“ü(…,KvxbdSULuEG35üžLݾ¾§Á¿ÀòóÀ£½½¶±ü°OüŠKH Parse the ASN.1 DER-encoded SPKI encoding of the raw public key `spki`.ÁüÚQN Since we are parsing a raw public key, we first strip the outer sequence tag.ÁD³æÁÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
§Á§ÁæÁò½½
ÀÝŒ!$¼ÀåêÁýêÁšëÁÁÀÁ¹ܽ 8½
½


¿
—(³ãaC–ð&õÞüê ¬üß OL Verifies the signature `signature` of message `msg` using a raw public key,Áij
 supporting RFC 7250.ÁÐ
úüØ
Š For more information on `signature_alg` and `signature` see the documentation for [`crate::end_entity::EndEntityCert::verify_signature`].Á„ñ ¾
¿
À
Á
 ¾
Ïî ¿
ƒ¿
À
›Ÿ Á
›Ÿ·†Â Â
Ã8 ˆÊ ÊÖ ²€ ×ÚÜ
»ÄƘ<”ÄDZyL¶¿ Äɱ(,Á£ÄÊôsüÈ$³ ÄËäuüò0§ ÄÌÎO4¿üÄÍ—¡ô׃ÄÎö¢ªBÄÏT¿ˆ±³d¢¥§ƒqsÔ«cüÌ)T|–E¤Ø»¤ŒÄ̾ÂÂÑü»-Â
 Â
ÂÂ

Ë|
•€
¡€
²€-ŸÄ9vC}Â
Ð ÐÐ
ѼÎÝÓÓšÃÔÖÓü–'D¤'Ã
 Ã
ÜõÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
óçšÃ¶±Ò »'Ò
ÔÝ»¶'–ôTß'<Ô(ÔåêÕýêÕšëÕÕÔÕ¹ üÕ,0»¤Œ½,Ì·,Dã,Ä
 Ä
šÃÂÂÒ ì,Ò
ÖÝ$í,üé2Û”÷2Å
Æ
Ç
È
É
Ê
 Å
Æ
Į
GGI»œ·æ‘"ÌüÇ
È


Ë|
•€
¡€
²€-ŸÄ9vC}É
Ê
Êß·† ¥3
×Üx¤3
spki_valueÁTÑ3Ô \÷3budgetÁ4™4,©>×åêØýêØšëØØ×Ø   ƒ ²Õ4üE×åêÙýêÙšëÙÙ×Ù”ýæ£üÌFØ„ÚFË
Ì
Í
Î
 Ë
ƒË
GGI»œ·æ‘"ÌüÌ
GGI»œ·æ‘"ÌüÍ
GGI»œ·æ‘"ÌüÎ
·† ÿF
ÚˆÊlðF‹ûT¨GÊÎG²€LíGÚNÚåêÛýêÛšëÛÛÚÛÀ¦¶±ü†O*¤˜OÝÝÝìÃÞm¹Ü£Þß­Oü·O(”·OÄÜÜóçüåOLåOÄÜÜóçü‰P1ÝááìÃâãâŽPüÏRFDÒRÏ
 Ï
ÜõÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ìö±à ãRà
âÝb4ÛRÄœU<¢Uàà˼„¶ð¢¦©ÆÇÙ
Í
ßúHäå×ã `äæ»äè˜<€äé±yL¿ äë±(,¨£äìÎO4ÉüäîèYDÑÞäffi¾
䌔›
ŽÛ0„¯ ÿþ2¼î ¡¬¨úLÝëTíÜôÎÐdŽÂı³”´¤¦•dÝäÿˆŠ¾
œ
²
formatÁ4§ðñWriteÁ,¾êbðò¾Ôðó<‹ëðõInvalidDnsNameErrorÁœ”ðöç†ðöá{\·Ù
ðøô4dÄ©ðù² $äœðú±(,ý£ðüâv”„ðý©„Í
ðþ„³¬ä÷LÿçéÃÅ,¯ ¢‘Œ×‚dîsubTü½]„ËÐ
Ñ
Ò
Ó
 Ð
ëëìîˆE ÇûPa¤ZÖ“Ñ
Ò
œœ² 
žÆ ŸÔ  ç ¡º¢ý £Œ!¤˜!¥±!¦Â!§Í!¨å!©ý!ª»F¹]éÓ
·† ç
ÿï ¤
ÿåêýêšëÿ§äÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ·†Žÿåêýêšëÿ§äÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙúHúHßûHÁ‘4Ý­f‰úM÷ü²Ýƒƒ¹Ä·üÏU§Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¹Äç† ±Â³é&ý
Ý…0DìüÑ&Ô
 Ô
¹Ä Ý æ
Ýü¶ 08Õ
Õ
ÁÅÀcüí Oð Ö
×
Ø
 Ö
ÁÅ ×
 c cˆ¢cµ
 `£cÆÐ `àB¤GS
Ø
÷Ò ô 
8± û ü§UÄüµU!äÙ
Ú
GGI»œ·æ‘"ÌüÙ
ñÆGGI»œ·æ‘"ÌüÚ
®›ÿU
ˆpresented_dns_idÁ„ÜUreference_dns_id_roleÁ¬ˆVreference_dns_idÁ„«VÜ®}\±}ð
­ ½}üâƒv|åƒðÛ
GGI»œ·æ‘"ÌüÛ
ñƀƕ„
ŠhostnameÁDúƒid_roleÁ<ž„allow_wildcardsÁ|³„ìö‹„ü‹ð„ï D  õøäžŸ††IpAddrÁ4¿¾Ôá{\‰Ù
ô4d–©² $¶œ±(,Ï£âv”Öš°Œ´›¬å‹,|~kmŒ©^dÀOQ>@üì_¼úÜ
Ý
Þ
 Ü
V4Áˆ˜V6Áˆµyˇ-b² Ý
œœ² 
žÆ ŸÔ  ç ¡º¢ý £Œ!¤˜!¥±!¦Â!§Í!¨å!©ý!ª»F¹]éÞ
·† 
ï L’¤
åêœýꜚ뜜œ ŽåêýêšëËŽüÍüÐ!ß
à
GGI»œ·æ‘"Ìüß
GGI»œ·æ‘"Ìüà

ž presented_idÁd÷ reference_idÁdŸüî üü äá
â
GGI»œ·æ‘"Ìüá
GGI»œ·æ‘"Ìüâ
®›¸!
ŸÐ $¡!
constraintÁTÁ!<Ä&Ÿåê ýê šë  Ÿ ωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ޮޮ¶±Žüâ#UüÀ £´Î ã
ä
å
æ
ç
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ã
((Ûë*šU$+´$Ö‹Cº¤uä
 å
ÞÞèYàõ
²áÖ²â¤C³oÁ¨¢†^æ
ç
Êß·† þ 
¢ constraintsÁ\ê õ
¥û4¸
üÙ  ä¤è
 è
((Ûë*šU$+´$Ö‹Cº¤u¤¬Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìü¤¶±ë 
£—(,ø  subtrees_tagÁd£ ')D³¢åê¥ý꥚륥¢¥  ù€±© Êßüìü’*äé
ê
ë
ì
Ù
Û
Ü
Ý
ˆÞ
ß
¹…à
á
Ó…â
ˆã
ä
ñ…å
ˆæ
ç
Ÿ†è
ˆã7°E/Ué
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìüê
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìüë
ì
ÊߦÔ
¦Ð $Âpermitted_subtreesÁ”Ýexcluded_subtreesÁŒ“¥ûüƒ[|†ä¨í
 í
((Ûë*šU$+´$Ö‹Cº¤u¨Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ù
Û
Ü
Ý
ˆÞ
ß
¹…à
á
Ó…â
ˆã
ä
ñ…å
ˆæ
ç
Ÿ†è
ˆã7°E/U¨¶±
§šU,šüËF"dÝFݪªïÈgØL4ŸÍ«êFüôF/„ôFä©©Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÜǫ̃GÝ­­ïÈ®­GüÈGIÖGöÎïȬ¬
®Ýå!„ÚGü‚I&ݰ°ïȱ²úMûM²‡IL¯I$´I¯¯Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ªÉ¶±üàI($ãIî
 î
ïÈÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙïÈúM¯ èI¯
²Ý$íIüÒV(Ý´´ªÉµÃµ×VüWFD„Wï
 ï
ÜõÖ³³ •W³
µÝb4W\ÖWòW\øW„…XÄÇXtÍXäÌŽY|”Yä´ÈYdÎYäÔÿY„…ZääÈZ”ÎZää“[”™[äüÞ[)üä[äĨ\t®\äÜá\Œç\äľa<Äa³³˼üŽb#»¤ŒúaÌôa8ð
ð
ôÊÅÀcÅü¸b8»bñ
ò
ó
 ñ
ôÊ ò
 c cˆ¢cµ
 `£cÆÐ `àB¤GS
ó
÷ÒÄ ¿bÄ
Å8$Àb± Æbœ£»¤ŒÞhÌØh\ùhäÝÈÈÆÆÇë7Éˆä ¥À¡¾·ÕKhÝ¥À¡¾·ÕKhÇɧ»œ£|ä§»ÆÆ
ÇÝ…iD‰i䯯§ü¯i#»¤Œ›iÌ•i8ô
ô
—ÌËÀcËüÙi8Üiõ
ö
÷
 õ
—Ì ö
 c cˆ¢cµ
 `£cÆÐ `àB¤GS
÷
÷ÒÊ àiÊ
Ë8$ái± çiàëìíîïðDurationÁDÁ ­ÖÌÍâË éÌλ ÌИ ÌÑÎb îÌÒ±yLŸ ¿ ÌÔ±(,ª £ÌÕ¤µ ”œÐ ƒTê tñ fhVXd IK8:ü³! Ý××ÔÌØßØ¸ üÛE DÞ ø
 ø
ÜõÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Ô̶±Ö î Ö
ØÝšU,ç üé F Tì Ìù
ú
 ù
((Ûë*šU$+´$Ö‹Cº¤uú
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
¶± þ
Ù—(,÷ ü¾
* ,Ä
Ìœ¦ ÙåêÛýêÛšëÛÛÙÛëŽüà Ž Ìû
ü
 û
((Ûë*šU$+´$Ö‹Cº¤uü
íÂ
Ü—(,€
minÁ¯
maxÁÅ
 ØåêÝýêÝšëÝÝØÝωþÀä‰ ØåêÞýêÞšëÞÞØÞëŽĈ ÖÖ˼ü·ª ¤Å þÀ
àyearÁ$ß monthÁ,î  day_of_monthÁdþ hoursÁ,• minutesÁ<¥ secondsÁ<· t¿ Å Ì ÿ Ìt’ ˜ Ì ± Ì Ê Ì ã Ì ü Ìt  Ì ® Ì Ç ÌüÎ&E üÑ&! ÌíÂ
ë£Ç$ó& Ôä* |ê* Ìüˆ+( œ‹+ Ì
í£Ç$Ÿ+ ü‹-9 l™- 
î£Ç$§- ¯Ç,²- ü˜/ \/ Ì
ï£Ç$§/ ü¢1$ ̨1 Ì„Òüþì¯t
¢ñó¤Ì\
ßñô² $A
œñö²$üG!
Åñ÷»v
ñø±yLŽ
¿ ñú±(,™
£ñûL
~€\3
qsacTo
Sd
EG46ü± j
ü¢R
O Interprets the given pre-validated DER-encoded certificate as a `TrustAnchor`.Áõ
úüùW
T This function extracts the components of a trust anchor (see [RFC 5280 6.1.1]) from矄W
T an X.509 certificate obtained from a source trusted to have appropriately validatedÁü©[
X the subject name, public key, and name constraints in the certificate, for example yourÁü…#
operating system's trust store.Á©
úü­`
] No additional checks on the content of the certificate, including whether it is self-signed,ÁüŽ`
] or has a basic constraints extension indicating the `cA` boolean is true, will be performed.ÁÌï
 [RFC 5280 6.2] notes:Áü‰H
E > Implementations that use self-signed certificates to specify trustÁüÒH
E > anchor information are free to process or ignore such information.Á
úüŸ_
\ This function is intended for users constructing `TrustAnchor`'s from existing trust storesÁüÿ[
X that express trust anchors as X.509 certificates. It should **not** be used to treat anÁüÛZ
W end-entity certificate as a `TrustAnchor` in an effort to validate the same end-entityÁü¶ Y
V certificate during path building. Webpki has no support for self-signed certificates.Á
úü”
S
P [RFC 5280 6.1.1]: <https://datatracker.ietf.org/doc/html/rfc5280#section-6.1.1>Áüè
H
E [RFC 5280 6.2]: <https://www.rfc-editor.org/rfc/rfc5280#section-6.2>Áĸ
ý ý¢¢£ì¯¥ˆ Ëæ³£36˜ËýÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ßߤÌáý âé#ãÍ!’À3 ·êòý¶±Ñ
ü¤
üq
ü“%
ñý
GGI»œ·æ‘"Ìüý
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ßߤÌáý âé#ãÍ!’À3 ·êòý
¶±Ù
þÃÑ

þåêÿýêÿšëÿÿþÿωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ßߤÌáý âé#ãÍ!’À3 ·êò¶±T“
þåêýêšëþ„ß
þåêýêšëþ„ßü²+
݃ƒšÍë·
üä

èÍšÍ
ݤ
$ú!
åêýêšë»ˆþþÿDerÁˆ »"ª|ÉqÒ/ü³"N
$¶"
ñþ
ÿ
 þ
((Ûë*šU$+´$Ö‹Cº¤uÿ
¬·† Â"
šU,»"
•ñÞ"
¨#
åêýêšë»ˆé¬­®Û ƒ £ ¤ ó Ë ë —¡ô‘ ƒˆŠâË éˆ±(,Ï £ˆŒÎO4ï üˆŽèYD÷ Þˆì—$ ß ˆ» ˆãa„™ äˆp,¼ ¿cˆpÂcˆ«ˆÔä  ˜›Šœ€ ˜ »z”• ð
šù{„© ¡ ½‡¼è û
“‰  žL… AD14œÁ &”Ú   ùû,Œ ìîÜÞ„± ÐLÄ  ˆá¡ ˜ ð
û
WD2 ð
öf ªBp,z ¿c˜pÂc˜—¡ô’ ƒšâË é²$üÏ! ÅœóHŒ‚ ¬» Ÿç  ù„¹ ¡úa\Ë å¢˜ £Îbá yLú ¿ ¦±(,… £§ãa„˜ ä¨Ô $à ĪË|TÉ 
«á{\ï Ù
¬ÎO4• ü®èYD Þ¯ì— ß °µ]¬Å Œ²»[LÜ ú³˜´ç ë ´“A”ÿ ˆµ©\”— ä I|Z ;„o .L† 
ýüÂ. óìö äT™ Ö  É̺½«®œŸŽ ƒtw¼‘ i”® [ MPüÚ C”€ 58&)  üþêìÙÛÈÊü‚ = »¤Œî Ìè 8üϸë¸üÆ - ÉÐüÏ··
¸8»=Î ü˜
H ݺº§Ï»ë»
üç
4
´Ñ§Ï¹¹
»Ý»=ï
Üà 8üϽ¾ÀÁÂÃì— üå - * Return the DER encoded issuer of the CRL.Á4ž  üÏ ›Ÿ¼ ¥ ¼
½8 üê9 üœI F Return the DER encoded issuing distribution point of the CRL, if any.ÁÔñ ƒ ƒüÏÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ƒ›Ÿ¼ Œ ¼
¾8$  ¾åê¿ý꿚뿿¾¿»ˆ™ŸüˆZ üæS P Try to find a revoked certificate in the CRL by DER encoded serial number. ThisÁü¾E B may yield an error if the CRL has malformed revoked certificates.Á\  üÏ ›ŸÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ˜ ˜ ›Šš «‰ À‰œ ׉ ê‰â`²õF¦h¶±¼  ¼
À8 Æ 4¢ üµ?  ˆ üÏ ÞÞèYàõ
²áÖ²â¤C³oÁ¨¢†^ˆ¼ Ñ ¼
Á8 õ
 ü‚*Õ * ŠŒ üÏ Š
ƒGGI»œ·æ‘"ÌüŒ Êß·†¼ ª* ¼
Â8$«* êJ”¹*  issuer_spkiÁ\ý* ¥û4¨+ üö0J „„1 Ž ŽüÏÔÌ·†¼ •1 ¼
Ã8$1 Ÿ8$œ1 ä9 »¤Œí8 Ìç8 ÉÐÅÆü²=6 ü¤9] Z Try to parse the given bytes as a RFC 5280[^1] profile Certificate Revocation List (CRL).Á†: úäŽ:  Webpki does not support:Áü¯:* ' * CRL versions other than version 2.ÁüÞ:+ ( * CRLs missing the next update field.ÁüŽ;< 9 * CRLs missing certificate revocation list extensions.ÁœÏ;  * Delta CRLs.Áüç;0 - * CRLs larger than (2^32)-1 bytes in size.Áœ< úü¤<@ = See [BorrowedCertRevocationList::from_der] for more details.Áé< úüñ<< 9 [^1]: <https://www.rfc-editor.org/rfc/rfc5280#section-5>ÁD¹=  ›ŸÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Éж±Ä Ë= Ä
Åcrl_derÁ<Â= ü¸>V \»>  ÉÐ ›ŸÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ˜ ˜ ›Šš «‰ À‰œ ׉ ê‰â`²õF¦h¶±Ä Ç> Ä
Æ$È> Æ 4Î> ¤ÖA ÆåêÇýêÇšëÇÇÆÇ äÒ˜ ˜ ›Šš «‰ À‰œ ׉ ê‰â`²õF¦hüñG' ÝÉÉ´ÑÊËÎÓöG üàK9 üŸH] ÅýI úä‰I ·þüªI* ÝþüÙI+ ‘ÿü‰J< ÆÿœÊJ ‹€üâJ0 ¨€—K úüŸK< ÄDçK §Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
´Ñ¶±ÈÈ
ÊÝœƒ<ðK ü«N@ üÞL[ X Convert the CRL to an [`OwnedCertRevocationList`]. This may error if any of the revokedÁü¾MJ G certificates in the CRL are malformed or contain unsupported features.Á»¤Œ“N ÌN D²N  ´Ñ«ƒÈ »N È
ËÝ$¼N t¾Q ËåêÌýêÌšëÌÌËÌ â‡¯‚äÒ,ÀT ËåêÍýêÍšëÍÍËÍ»ˆ¯‚üÆUP ”ÉU  ´Ñ ±è·†È ÜU È
ÎÝ$áU õþLçU $âV ÎåêÏýêÏšëÏÏÎÏç€Ñ÷€,½Z ÎåêÐýêКëÐÐÎÐωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
™Ÿ¶±±[ ÎåêÑýêÑšëÑÑÎѶ±¶±¹b ÎåêÒýêÒšëÒÒÎÒñ‚ÑüÉeV \Ìe  ´Ñ ›ŸÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ˜ ˜ ›Šš «‰ À‰œ ׉ ê‰â`²õF¦h¶±È Øe È
ÓÝ$Ùe Æ 4ße ü”i7 ÝÕÕ´ÑÖÛÖ™i ü“mF D–m  ÜõŠÔ §m Ô
ÖÝb4Ÿm d‡o Öåê×ýêךë××Ö××Ô|­p ÖåêØýêØšëØØÖØωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
éʶ±²ÕD› ÖåêÙýêÙšëÙÙÖÙʉ éÊ ÖåêÚýêÚšëÚÚÖÚʉךÄö– <ü– ÔÔ˼ü³—< ÝÝÝÒÒ
²áÖ²â¤C³oÁ¨¢†^Ýé ¥Æ é
ùÝ$¦Æ ­Y$¬Æ ¬…å »¤Œñä Ìëä äÒûüöå/ ü¡åP M Convert the owned representation of this revoked cert to a borrowed version.Á4ýå œ œäÒ˜ ˜ ›Šš «‰ À‰œ ׉ ê‰â`²õF¦hœú „æ ú
û$…æ ü„ñ ÝýýÁÓþÿ‰ñ üò* ü«ñA > Construct an owned representation of the revoked certificate.Á»¤Œ÷ñ Ìññ D–ò  ÁÓäÒü Ÿò ü
þÝ$ ò üµôP ”¸ô žŸ žÁÓ Ÿ±è·†ü Ëô ü
ÿÝ$Ðô õþLÖô $Ñõ ÿåêýêšëÿç€ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ©Ô Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙÔÌÑñö ÿåêýêšëÿÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
©Ô¶±æ“ ø ÿåêýêšëÿþÀæ“ü‰ÿ0 ÝÁÓŽÿ üÀÿF DÃÿ    Üõ¶œƒ Ôÿ ƒ
Ýb4Ìÿ ,— åêýêšëωÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
⇶±À‡ åêýêšëù’LŒ” åêˆýꈚ눈ˆʉ â‡Äš <–š ƒƒ˼¬¶  ©Ôüœ¡+ üÒ E B Return an iterator over all possible [RevocationReason] variants.Á$£¡ ŒŠŠ
Ѐ­¡ ”¤”¤B—¤—(ù'46SH¡£m¢©Ô
Íìë¹dùM빬²¡ ë¹úM©Ô\»¡ ߺîº#ÿº„Ö¡ ü·¤) ݩԼ¤ ü€¥F Dƒ¥ ¡ ¡Üõ鲎 ”¥ Ž
Ýb4Œ¥ D·¦ åêýêšëωç–é¦ åêýêšëëŽÄ”§ <š§ ŽŽ˼üϧ% ©ÔòóTû§ ,€¨ ¶±ü”¨3 D—¨ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
©Ô©Ôò
», ¨ ,× ,,/,,",,,,
,,à þ+,ñ+ô+üÚ % Ý  êÖ¡¢£¤¥ß üÇP ü† Y V Create a builder that will perform revocation checking using the provided certificateÁüä ? < revocation lists (CRLs). At least one CRL must be provided.Á¨
úü°
S P Use [RevocationOptionsBuilder::build] to create a [RevocationOptions] instance.Áˆ úü^ [ By default revocation checking will be performed on both the end-entity (leaf) certificateÁüóC @ and intermediate certificates. This can be customized using theÁü»2 / [RevocationOptionsBuilder::with_depth] method.Áò úüú] Z By default revocation checking will fail if the revocation status of a certificate cannotÁüÜ3 0 be determined. This can be customized using theÁü”: 7 [RevocationOptionsBuilder::with_status_policy] method.ÁÓ úüÛ^ [ By default revocation checking will *not* fail if the verification time is beyond the timeÁü¾A > in the CRL nextUpdate field. This can be customized using theÁü„> ; [RevocationOptionsBuilder::with_expiration_policy] method.ÁÎ  Ý
ݧÏÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
êÖÎÜŸŸ
¡Ý¬Ž üÛ@ üÅS P Customize the depth at which revocation checking will be performed, controllingÁüV S whether only the end-entity (leaf) certificate in the chain to a trust anchor willÁüø^ [ have its revocation status checked, or whether the intermediate certificates will as well.ÁTâ êÖ¹ÙêÖŸŸ
¢Ý ¸Ž ü¡H üÒJ G Customize whether unknown revocation status is an error, or permitted.Á”¨ êÖÀÚêÖŸŸ
£Ý$¿ policyÁ4Å üûI ü©M J Customize whether the CRL nextUpdate field (i.e. expiration) is enforced.Á´‚ êÖÇÛêÖŸŸ
¤Ý$ ÇÍ üß+ üˆR O Construct a [RevocationOptions] instance based on the builder's configuration.Á,æ êÖïןŸ
¥Ý Ôî" 8¢¢Û Û ·Ý ¬ŽÞ ¸Žß ÅŽà ÚŽ-sûö„¥Žü¸#ò ,Æ#  £¤¥¦§¨©ª« £¾Ñ ¤ÞÞèYàõ
²áÖ²â¤C³oÁ¨¢†^¥GGI»œ·æ‘"Ìü¦GGI»œ·æ‘"Ìü§Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìü¨ ©
ªƒª «ÊßÔÌÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡z̶َ±¦ Õ# ¦
§8$Ö# õ
$ä# issuer_subjectÁt$ ‰ü\¯$  issuer_kuÁLÚ$ êJ”‹% ¥û4Ï% Ÿ8$ì% |* §åê¨ýꨚ먨§¨   ËÉ ÞÞèYàõ
²áÖ²â¤C³oÁ¨¢†^œÐ* Œ¾8 ðØ«ü”9H ,—9 ˆ¬ðØÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìü¬·†ªÂ9 ª
«$9 šU,£9 üÊA) ŒÍA ˆ¶±¶±
¬errÁßA tèQ ŽÌLGØzPWö·®¯ŽÌ7ˆŽÌ­­
®÷Q ˆ­­œýQ ŽÌ±´ÁR LÄR ˆŽÌ°°
±ÆÙäíùüŽ¥©¾¿ÀËÏÝÞç¬ ß Õ Ã ö§
ªB²³×
 `²´m\Ê
•¢²µì¯
¢²·—¡ôø
ƒ²¸¤Ì
ß²¹âË
鲺² $Â
œ²»·ŒØ
Û ²¼»
²¾˜<
²¿ú'l£
ô²À±(,Ä
£²Áãa„×
ä²ÃÔ \é
IJĺ/dö
ä²Å|
T
F´¿
9
),  ùûŒµ
ììÌ
ÜTï
Íö
¿Áü
´œ¶
¥,Ï
˜tvüú )
ÝÇã(ȧÉÉÇÈÍì§ ¡
ÝÝüÁ
K
ã(ã(ü’ /
ÆÆ¶JÊÂ!ËêJÌ„KÍ™KγKP‡s'p—9Ýã(òáP‡s'p—9ÊËÌÍÎ

»½Œª
µ
ÆÆòáÒ”Ì
ÆÆ Ý
݃Ýòl
ÆÆ ã(
ßߤÌáý âé#ãÍ!’À3 ·êòã(üÇ 7
”Ò
ÆÆ ã(
¢¢£ì¯¥ˆ Ëæ³£36˜Ëã(ü„ 4
T
ÆÆÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙï×ü½ F
ÝÐã(ѧÒÒÐÑêá Î
ã(ÝÊ
¥òáÌÑ
 âÓÔØÂ
Æ
>@üŠ
ã
\˜
­® ­ â ã(ôôú'ö—(à)ÞÚ7TŽ%(ã(ÔÌÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ®¯°" ¯ÙÙ·LÛ‰'²ÜÛL²ÝðL²ø4Fû²)#$°¯°˜"‡é·†®Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ÙÙ·LÛ‰'²ÜÛL²ÝðL²ø4Fû²)#$ã(¶±Ï ­
Ï
ÓÝã(òá
‰'T¼
Ÿ8$ç
ì¼\ÿ
ü½¨
ŒÀ
²±²³´ ± â ²ÏÏÉXщ'²ÒÛL²Ô©²²9AÒ†y ã(ÔÌÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ³µ" µÙÙ·LÛ‰'²ÜÛL²ÝðL²ø4Fû²)#$µ˜"èí·†³ ´ÊßÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
 ã(ªä޹Ï Û
Ï