Files
boc/aamos-ledger-rust/target/debug/deps/libwebpki-17a33910c55f672c.rmeta
T

1925 lines
471 KiB
Plaintext
Raw Normal View History

rust
cY#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Árustls_pki_typesÁµÛðóœuÌëîÓ0ä-147af539bd630859ÁzeroizeÁ6ƒÛú jåðpÄ"Ô„Ç|-b0245ee0360ecfa9ÁringÁ_]O}Œ¤D+Á/û³-a077151e2077f377Á®f©¾/ô)c§{õa“â‘-a3906971a93fd1b8Áæ\‹±ÔcdùÀTƒ-f86f80b348d33b13Á untrustedÁI /ý+OÆ]‡ôd‰ð.-d6cd86ad6d3ca912Á getrandomÁ³žKYÆB |R¬*9"ÌÝ-50ddae19eb09a1dfÁtestsÁ,•‰$Љaws_lc_rs_algsÁt¸» aws-lc-rsÁ¬œ^
,„„$ùƒ½
,Ë@$À@õ
,ÅE$¬E
,‰Í
,À¡$µ¡í
,5$‡5í alloc_testsÁ\¿®$¢®Á
,Ûx$¼x©
,í1 $â1 Î
,Ä#
$¹#
ò
,ë­ $à­ å
,ÆT $»T 
,½ç
$ðæ

test_utilsÁT¦$ aws_lc_rsÁ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ÁcertÁ^^^^^^^^^^ ^
^ ^ ^
^^^^^^^^^^^^^CertÁyì
yserialÁy signed_dataÁyissuerÁyºysubjectÁyspkiÁybasic_constraintsÁy key_usageÁyekuÁyname_constraintsÁysubject_alt_nameÁycrl_distribution_pointsÁyÊ
^ˆì
ˆ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ÁØverify_signatureÁ½Þì
ÞåÞ´errorÁââââââââââì
most_specificÁìrankÁìis_fatalÁâð÷âò×â ring_algsÁõõõõõõõüpublic_key_alg_idÁüsignature_alg_idÁü—!ÿ õECDSA_P256_SHA256ÁõECDSA_P256_SHA384ÁõECDSA_P384_SHA256ÁõECDSA_P384_SHA384Áõ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Á
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Áø ø íÜ,ípresented_id_matches_constraintÁü ÁÁcheck_name_constraintsÁÿparse_subtreesÁ'bÁÿ Á*check_presented_id_conforms_to_constraintsÁƒgeneral_subtreeÁµ/Á 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Áòׇ)ò Ùì
Ù¯)Ù´<Ü Ý Ý ò
àì
à¼â ã ã àËò çùèèò ëì
ë¼í î ëËò
ñ ñªå å
åååååååüì
üæ ü
with_depthÁüwith_status_policyÁüwith_expiration_policyÁübuildÁåƒcheckÁ åðCå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Á»å»HIntermediateIteratorÁÁì
ÁüGÄì
ÄÄó È 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Á ÿ§ÿ´OExtendedKeyUsageValidatorÁ´O idÁKeyPurposeIdIterÁì
'rÁinputÁ
Šì
бPŠŠó Ž ãì
æ 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Á¬ì
¬å¬üG¯ ¬©²ì
²æ ²pushÁ²popÁ²nodeÁ²headÁ²getÁMAX_SUB_CA_COUNTÁPathNodeÁ»ì
»õ
»Ö»°Àì
ÀùÀroleÁPathIterÁÄì
Äõ
Äó Èì
ÈÈó x509ÁÌÌÌÌÌÌÌÌÌÌ Ì ExtensionÁ×ì
×criticalÁׇP×»ÌÜ unsupportedÁÌÞì
Þ¼ÞËÌset_extension_onceÁâ¥âimpl Fn() -> Result<T, Error>ÁÌ´<å#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Á×
×  Ûƒ
 ÞÖ 
áâ ãBadDerÁä
ã
BadDerTimeÁæ
ãCaUsedAsEndEntityÁè
ã CertExpiredÁêÀ3ê not_afterÁãCertNotValidForNameÁí
íˆãCertNotValidYetÁðÀ3ð
not_beforeÁã CertRevokedÁó
ã
CrlExpiredÁõÀ3õ 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Áâ Þƒâ
à×â â ãâ
åÖâ°oçsignature_algorithm_idÁçpublic_key_algorithm_idÁâêƒâì×ââïâñÖâÀmó¢qósupported_algorithmsÁâöƒâø×ââûâýÖâ DerTypeIdÁÿ¼]
ÿX
ÿ CertificateÁ
ÿCertificateExtensionsÁ
ÿCertificateTbsCertificateÁˆ
ÿCertRevocationListÁŠ
ÿCertRevocationListExtensionÁŒ
ÿ÷Ž
ÿCommonNameInnerÁ
ÿCommonNameOuterÁ
ÿÖX
ÿÜV
ÿ GeneralNameÁ˜
ÿRevocationReasonÁš
ÿ SignatureÁœ
ÿSignatureAlgorithmÁž
ÿ
SignedDataÁ 
ÿð)¢
ÿTimeÁ¤
ÿ
TrustAnchorV1Á¦
ÿTrustAnchorV1TbsCertificateÁ¨
ÿU8Áª
ÿRevokedCertificateÁ¬
ÿRevokedCertificateExtensionÁ®
ÿRevokedCertEntryÁ°
ÿÈ=²
ââµ ƒâ⸠×⺠Öââ½ õ
RingAlgorithmÁ¿ #¿ ¦#¿ verification_algÁõà ×RawPublicKeyEntityÁÅ ì
Å óÈ ì
È ×¡OwnedSignedDataÁË dataÁË  algorithmÁË  signatureÁ¡Ï ƒ¡Ñ ס—vÓ ì
Ó ñyÓ ýyÓ Žz¡Ø ì
Ø ×ÍWildcardDnsNameRefÁÛ
Û ì
Û ˆÍß ì
Íá ì
á ƒÍä ì
Íæ ì
æ ÖÍé ì
Íë ì
ë Íî ì
î §ð ùÍ WildcardsÁò DenyÁó
ò AllowÁõ
Í Í
ø ƒÍ Í Í
ü ÍIdRoleÁþ Êÿ
þ  PresentedÁ
þ NameConstraintÁƒ
ƒ
ˆÍÍ
ƒÍÍÍ
ÁSubtreesÁ
 PermittedÁŽ

ExcludedÁ
ÁÁ
ƒÁÁÁ 
Á­u
ì

DnsNameÁ

ˆ

DirectoryNameÁž

 IpAddressÁ 
 
ˆ
UniformResourceIdentifierÁ£
£
ˆ
 UnsupportedÁ¦
¦
ˆÁ
©
ì
Á «
ì
«
ƒÁ ®
ì
ò‡t°
ì
°
áI²
²
ˆ°
ˆJµ
µ
ˆò¸
ì
¸
×òOwnedCertRevocationListÁ»

revoked_certsÁ»
Ô»
„;»
»
¬bòÁ
×òÃ
ƒòBorrowedCertRevocationListÁÅ
ì
Å
ÂÅ
ÔÅ
„;Å
µÅ
¬bòÌ
ì
Ì
×òOwnedRevokedCertÁÏ

serial_numberÁÏ
revocation_dateÁÏ
 reason_codeÁÏ
invalidity_dateÁòÔ
ƒòÖ
×òBorrowedRevokedCertÁØ
ì
Ø
„ƒØ
™ƒØ
°ƒØ
ÃòÞ
ì
Þ
×òÅuá
 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Áã
ã ˆå$æ ×å%å&å'ê ƒ—hì ½Nì presentÁï ƒò ô ÖKeyUsageÁö óù ƒü × þ Ö!" ExtendedKeyUsageÁƒ RequiredÁ
 ˆƒ RequiredIfPresentÁ
 ˆ#$ ƒ%&Ž ×' Ö()  KeyPurposeIdÁ ì
  oid_valueÁ*˜ ì
+š ì
š ƒ, ì
RoleÁŸ IssuerÁ 
Ÿ ùŠ¢
-.¥ ƒ/01© ÌUnknownExtensionPolicyÁ« IgnoreCriticalÁ¬
Ì̯ ƒÌ̲ ×Ì´ >« StrictÁ


"
$
$
(
(
,
.
0
2
@
@
E
L
M
N
S
U
Z



š

œ

Ÿ
 
 
¢
¤
¤
°
´
Ø
Ù
Ù
Ù
Ù
Ù
Ù
Ù
Ü
Ü
Ü
Ý
Ý
Ý
Ý
á
î
ï
ó
ó
ó
ý
þ
ÿ
ÿ
ÿ
ÿ
Ÿ
 
 
 
 
®
±
³
´
´
´
´
´
´
·
·
·
·
¿
Ü
Ü
Ü
Ü
â
ã
ä
ä
ä
å
å
ç
ø
ø
ø
û
û
ü
ü
ÿ
ÿ
ÿ
ÿ
ÿ

ƒ
ƒ
ƒ
ƒ



¡
¢
¢
¢
§
¨
¨
¨
µ


¹
¹
Û
ã
ã


š



ž
ž
ž
Ÿ
Ÿ
Ÿ
Ÿ
Ÿ
 
¢
£
£
¨
«
«
°
°
³
Ï
Ô
Ö
Ö
Ø
Û
Ü
Ü
â
í
ƒ









ˆ
°
°
°
°
±
±
±
±
±
±
µ
µ
µ
µ
µ
µ
¿
À
Ç
È
É
Õ
Ö
Ö
Ö
Ö
Ö
Þ
ß
à
ã
ã
ã
è
è
è
ê
ê
ë
ë
í
í
í
ò
ó
ó
ó
ù
þ
þ
þ
ÿ



ƒ
ƒ
ƒ

Ž








˜


š
¥
§
µ

·
¸
¹
Â
Ã
Ë
Ü
Ý
à
â
å
å
ò
«
«
´
´
´
Ü
ß
â
â
Ó
Õ
Õ
Õ
Ø
Ø
Ú
ß
á
á
á
ä
ä
æ
ë
í
í
í
ð
ð
ò
÷
ù
ù
ù
ü
ü
þ

¹
¹
¹
»
¾
¾
Ä
Ä
Ä
Ê
Ê
Ê
Ð
Ò
Ò
Ò
Ú
Ú
Ú
ã
è
í
í
ð
ð
ù
ý
ý
ˆ
Œ
Œ

˜
˜
­
º
º
º
Â
Â
Â
Ä
Î
Î
Î
Õ
×
×
×
à
à
à





Š
Š



š
£
£
£
ª
±
¹
¹
¹
½
À
À
Â
É
É
É
Í
Ð
Ð
Ò
Ù
Ù
Ù
Ý
à
à
â
ç
ç
ç
ë
ð
ó
ó
õ
ú
ý
ý
ý
ÿ


Œ






œ
¦
ª
ª
°
³
³
³
ì
ì
žì
ú8¿c¬¬«\¯Î\°ÚÛÞ }ýÓR@ì
¥ùMפÛµ ·Š]¸¹º£]»¼½¼]¾¿À×]ÁÂÃô]ÄÅÆ|ÇÈÉš^ÊËÌ´^ÍÎÏÍ^ÐÑÒî^ÓÔÕ›_ÖרÈ_Ù:üju×{¦Ø­¥Š ­¥­¥Ðì­¥µß­¥­¥é­¥é­¥ì
ì
©©÷«^¬µ­ÄÀL:éé#ì
ì
ðÑÑÖÓó½ƹŒ{/Oì
 ì
¢¢£CertificateDerÁ¥ˆ Ëæ³£36˜Ëì
é!ï¨Øã2äå­`æçÀ`èé×`êõ`ëÀ3ìaíî¡aïˆðÉañÀ3òèaóôúaõ’böÀ3÷¬bøù¿búûÝb üýûb
þÿc ½c ƒÚc
ƒd£dˆÏdŠødŒ—eŽºeÚeþe³fÝf˜‚gš­gœÑgžŸ÷g ¡—h¢ˆ£¤Æh¥¦íh§ˆ¨©Žiª«¨i ¬­Ìi!®¯ïi"°±˜j#²³Ëj$´µíj%·k&¸¹°k'º»Ðk(¼½øk)¾¿­l*ÀÁÚl+ˆÃÄ–m,ÅÆÀm-LjÈÉùm.Ê˲n/̈ÍÎún0Ïаo1шŒLÎ ¿cªÐ쪵ߪªªé•¢˜¢™¢lš¢ˆ›¢œ¢[¢ˆe0<#˜ªªªÄcª¾ªØÛÛ®pÜÝÐpçgèØµ©Ñ¿cϲÐìϲµßϲϲϲØçç°oè¢qéÀqc·Þ{(沿c¼³Ðì¼³µß¼³¼³¼³ØóóÀmô¢qõ¨r%öµ'ª¼ð¿c©´Ðì©´µß©´©´©´Ûÿ ¼] ƒ X§s¿sˆ ásŠ  ‡tŒ  ¦tŽ  ÷  Ût ÷t ÖX
ÜV ˜ ­u š  Åu
œ  âuž Ÿ øu  ¡ —v¢ £ ð)¤ ¥ »v¦ § Ìv¨ © ævª « Žw¬ ­ w® ¯ ¼w° ± äw² ³ È=HªÄ]%õúcØ–µŠ –µ¿c–µ–µÐì–µµß–µ–µ¿c¿ ¿ ÑxÀ #õÁ ¦#õ öxõ”´öWùhÓƒš¹¿cÅ Å ›yÇ ó¾øuzÎïDì
ðò¹ ì
¸¸¹SubjectPublicKeyInfoDerÁ»ˆ 6urýÆM}ì
ØË Ë ÚyÌ ñyÍ ýyÎ ŽzCäÔMùl/¿c»¿cÓ Ó —vÕ ñyÖ ýy× ŽzhÊ¡gÑ”ˆì
¹¹ð)»”*¡¼®*¡äÛ–&¹eùì
ì
ÛÛ Û Ü özÞ ˆÍ ˜`l ´Vðì
Øþ¼Š þ¼þ¼Ðìþ¼µßþ¼þ¼šeþ¼¿cÛ Û Ü özÞ ˆÍ ˜`l ´Vð8Ûò ó ô ¹|õ ö Ê|ŒíVØþŠ þÐìþµßþþÛþ ÿ 
Ê

 }ƒ

¶}
ˆÁnÿ±Š2“úز¿Š ²¿Ð첿µß²¿²¿Û
Ž

~

¨~¤¬wÀ·®Ø½ÀŠ ½ÀÐì½Àµß½À½ÀùM•0ˆÊÁCû¢w8ÏÌsì
Û

œ
ö~
ˆž
Ÿ
 
¡
¢
ˆ£
¤
Ê¥
ˆ¦
§
ø¨
ˆwo U¨c.Aì
ØçÁŠ çÁçÁì
¿c

œ
ö~
ˆž
Ÿ
 
¡
¢
ˆ£
¤
Ê¥
ˆ¦
§
ø¨
ˆwo U¨c.A8¿c££¤Œ3¦ˆÁ TfÆçF(8ééêUnixTimeÁëˆ :ßB¶ý¸SFì
éßß TrustAnchorÁáèâËã³’À3 ·êòì
yy£
{µ|Â}Ô~ºèöƒ©³ÊáÊ
^ë
ƒW’Ⱦì
¿c°
²
³
áI´
ˆµ

ˆJ·
ˆZ˜l±µk›ì
é°
²
³
áI´
ˆµ

ˆJ·
ˆZ˜l±µk›8»
»
¼
µò½
Ôò¾
„;ò¿
ÂòÀ
¬bò±€ò$€=Ò½éÒÇÅ
Å
„‚Ç
ÂòÈ
ÔòÉ
„;òÊ
µòË
¬bò~äzvº¤ÂÀì
¿côÈØôÈ¿cßÉßÉì
ÇL ì
ßÉØÏ
Ï
ì‚Ð
„ƒÑ
™ƒÒ
°ƒÓ
áŠ?ã¾EVô¿cË¿cØ
Ø
ôƒÚ
„ƒÛ
™ƒÜ
°ƒÝ
Û‚þǰì
ìËì
¿cá
â
ã
Ø„ä
å
æ
õ„ç
è
é
”…ê
ë
ì
²…í
î
ï
Ö…ð
ñ
ò
ò…ó
ô
õ
˜†ö
÷
ø
¹†ù
ú
û
؆ü
ý
þ
ü†ÿ

¥0õÅ ÛÔÌØÔÌŠ ÔÌÔÌÐìÔ̵ßÔÌÔÌÔÌì
ðÔÌ¿c  ݇ …ˆåŽ ‘ˆå žˆå ³ˆåï%cúZ¸ì
Š •ÏÛ•ÏØ•Ï¿c   …ˆž ‘ˆŸ žˆ  ³ˆjöODïôì
Š šÐÛšÐØšÐÛ« ¬ ­ ­Š® Æ0S_‰Ë:؛ъ ›Ñ¿c³ ´ µ ùŠ · Šâ„½
}YôŠ äÑÛäÑØäÑÐìäѵßäÑäÑäÑ¿cà Ä Å Ê|Æ Ç ¹|£"
Æ4‚”Š ëÒÛëÒØëÒÐìëÒµßëÒëÒëÒ¿cÓ Ô Õ ôŒÖ × ˆu•÷LÑgŠ ðÓÛðÓØðÓÐìðÓµßðÓðÓðÓ¿cã ã ä Þå ˆ <ÿÅpø«fŠ ÷ÔÛ÷ÔØ÷ÔùMÁÁåHÃüGˆªxÓì
ŒMÁÁåHÃüGˆªxÓ8àÊÌáIÍîIÏ©ÐшJÒˆ/D3.èj~ì

Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zٛƳÙÙïJÚýJÛKܨKªb¤%©‚Øì ì —hí ½Nî ³Ž¹©Yš>ÖöCÐìÀصßÀØÀØÀØ¿cÀØ¿cîîïÜMñˆ åà t68Ûö ö îŽ÷ ó>ð4àêUØìÙŠ ìÙ¿cìÙìÙÐììÙµßìÙìÙìÙ 8§Ûƒ   á ˆ ˆ þ ˆmí³Ýc½ý·ØˆÛŠ ˆÛ¿cˆÛˆÛÐìˆÛµßˆÛˆÛùM‘P»P¥pÕ§%šeDì
±PŒ"P»P¥pÕ§%šeD88Û  ç ƒ‘ @¿@öì
ا݊ §Ý¿c  ç ƒ‘ @¿@ö8µßúÝúÝúÝùM÷QŸ‘R  R¡¬R’ÿĉ¾/„T8ùMÄÄÚUÆõ
Çó K>œ°û³¥Çì
ÛŸ   ¡ Ï‘¢ £ ùŠEÁp}ºØêߊ êßÐìêßµßêßêß××ÜVÙõVÚ‡PÛ»Å. »sñb—ì
ì
Û«  · ‚“¬ ­ ·’¾o<R`+ÒØ°áŠ °á¿c°á³°áéëìûXíîŸYïˆT+?
n8ì
ì
±¬ÔãàÛìçøó¸ ÿà ¿ È Å Ñ Ë Ø Ó ãÛ ¡
§£¸
°
Á
»
Ì
Å
Ö
Ï
Þ
Ø
á
 ¡  ¸ ³ È Ã Ø Ó æ ã ìì òîü ö Ž ƒ  ² « ¬ŒÄÁŠ¥ÈÄÚµ´ ÿß Û ÷ ò †
þ

©

á
 ¦  ¯ « » ³ Ë Ã Û Ó é ã ø ö Š ƒ ˜  ¤ Ÿ ® « ÛµÒãÞÛêçöóµ ÿÏ Ë á Û ø ò ‡
þ “

«

Ã
»
Ô
Ï
ƒ á
˜  ¨  ° « ¼ ³ Ì Ã Ü Ó ê ã ï ì ù ö ƒ š  ¥ Ÿ ¯ « ݵ· ÿä Û ú ò ‰
þ •

®

á
 ¤  ² « º ³ Ê Ã Ú Ó è ã û ö ƒ  § Ÿ ± « ÞµÙãåÛñçýóº ÿæ Û † á
Á ³ Ñ Ã á Ó ô ì þ ö ƒ š àµÖãâÛîçúó¼ ÿé Û û ò Š
þ

ˆ á
¾ ³ Î Ã Þ Ó ñ ì ö ƒ ¨ Ÿ áµ×ããÛïçûó½ ÿë Û ü ò ‹
þ —

á
¿ ³ Ï Ã ß Ó ò ì ö ƒ ˜ © Ÿ  ð•¢ßß°
°
QX²©½¹
³é±Å
àØ
ëá
Þ×ðéÔњŠñá
ÞÑòãôãü¿ î Û ¹
ÈÁÓÊáÙ´ « ýö ÿ
¿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üÿxBy%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
ö  œ’
£’
÷üŠ‘
ìÙ$·‘
µ— 
ˆÛÖ  ç ƒ‘ @¿@öµ—¦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ô 
 ü "
 ± 
üäOôt,nkü#  ÿ
ü‚#<õ–µL#& DerTypeId::DistributionPointNameÁœ¬ ãî%ª1ϲ9@Ô§* ã¡%ª1ÀØ9@dò, ã¦%ª1–µ9@ü¦;' ã+Á&ª2©´:Aüú>$ ã-Æ&ª2©´:Aü‚I3 ã/Ë&ª2¼³:Aü£S0 ã1Ð&ª2¼³:Aüý( Û Ü (Û Û Ü özÞ ˆÍ ˜`l ´Vðdµ—ls þ 
%²¿1½À9@<÷S 
œ
'

œ
ö~
ˆž
Ÿ
 
¡
¢
ˆ£
¤
Ê¥
ˆ¦
§
ø¨
ˆwo U¨c.Aê¦ËÒL­T 
¡
'’½3ª¦;BÌÒT 
¤
'’½3ª¦;B\¾V 
§
'’½3:A´òh £¤'££¤Œ3¦ˆÁ TfÆçF(cµ—kr °
³
'°
²
³
áI´
ˆµ

ˆJ·
ˆZ˜l±µk›yôȈ °

'áÁ3Å
Å
„‚Ç
ÂòÈ
ÔòÉ
„;òÊ
µòË
¬bò~äzvº¤ÂÀ üÖQ Š&ŠŠ­DŒˆå ÝÖŒÅG& «`gn¼ŒT ã ä %÷Ô18?D´H
ÊÑ'ÊÌáIÍîIÏ©ÐшJÒˆ/D3.èj~ 
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙyy£
{µ|Â}Ô~ºèöƒ©³ÊáÊ
^ë
ƒW’Ⱦˆ¼ç
îï(îîïÜMñˆ åà t6d 
ªBªBö­BbufÁ÷<®B÷<9)
-ÜnLçEçEèEGlobalÁ ¿±‡§í#ØßD«©
ƒ  &ˆÛ2åš:AŒ¬ª
ƒ ˆ &ˆÛ2åš:AD  éî'éëìûXíîŸYïˆT+?
n8r¬¬«\¯Î\°ÚÛÞ }ýÓR@’½´»âõ¡Á©Îå̘ª«íÀ¢¤£y÷„‚ÔàÅ
ùõôƒœüØ
úö‡t”‘°
û÷Þã üÞä üÜŒ„»Ó ýÝŠ¤Í³ þŒã ÿ݇Äö Åu„˜á
øä‹œªà «\\ϬƒÖÑýrLÿ ,›ã®p”¢ÛˆÀmü¶$ó°oüä0犛y”­Å Î7ÄÓ ÙŒÙÖŽåH¤£Áç ‘P„ÇîŽö —hÔëì ØGd‡¼È»
úì‚„áÏ
ûüý„;üý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`. |Áâõ¡Á©Îå̘ª«íÀš¤£˜y÷„‚Å
ùõôƒØ
úö‡t°
û÷Þã üÞ¦ä üÜŒÓ ýÝŠ³ þ ÿ݇ Åuá
øä‹à «\ެƒÖÑýrŒÿ ã®pŠÛˆÀmó°o犛yÅ Î7 ÙŒÙOƒŽåHÁç ‘PîŽö —h~ì ØG}|»
úì‚{Ï
ûïòõ„•ì”êá"$(,.02456789:;<=>?@EINUW¬µö§ªB PhantomDataÁ\¾Ýã ýrLæÿ
|p̰X,Ð79„ß(ôªì
¥

 Íì•¥ ³פ¯ü¬ 6º GGI»œ·æ‘"Ìüì
פ 
ì
•¥»P,¾ üÛ
8ì
¥¬ß ä
•¥ì
פúMûMà
24 Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
•¥ªü½ ( ¸  ¸ פÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙפúM Å 
ì
•¥  <closure_kind>Á<closure_signature>Á<upvars>Á•¥Íá ((ReaderÁ*»P$+´$Ö‹Cº¤uü¸ ( ì
Íì Èåì
Þ Àå&ÒåÀå2Òå)Ñ ü®
G
¹  ¹ ((ßã*»P$+´$Ö‹Cº¤uì
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Èåª Â

Èåì
Î\4º
Äû
<–µü˜[÷ßÍáì
¥¬ß ³þà
ì
•¥»P,ï(*ü¢ üË%„ÜÄúë̾­¥
tagÁƬ÷!ë!̸­¥ 
!™éÀü¡¨ü¯ #º  º ((ßã*»P$+´$Ö‹Cº¤u#­¥Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü#ªÐ
"»P,Ù™é
size_limitÁTŽ-ât»  » ((ßã*»P$+´$Ö‹Cº¤uì
­¥ªÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
£ªì
%£&'&'% ½Íìöî ®Íì¡îü†;¼ –"¡î ¼ àíü‹6¼ ¡îçï˜"¨î„±
$ì
öî¡î»P,¶™éÝË!,ëdecoderÁ<ýšìª¡£Ÿüèý  ½ àí­¥ª¡î¨îì
)£*+*)+ ´ï ÅïüÙ;¾ –"¡î ¾ àíüÞ6¾ ¡î“ò˜"¨î„„
(ì
öî¡î»P,‰™é°Ë!,¾ÅïýŽüó{T -¿  ¿ ((ßã*»P$+´$Ö‹Cº¤u-­¥Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü-ªŒ
,»P,• ™é¼ üÌ"´Ú"/À  À ((ßã*»P$+´$Ö‹Cº¤u/Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü/ªñ"
.»P,ú"ü $žô®$1Á  Á ((ßã*»P$+´$Ö‹Cº¤u1Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü1ªÍ$
0»P,Ö$šì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
@ì
¶þ»P,` outer_tagÁL©` inner_tagÁL½`Ë!,Ñ` allow_emptyÁ\ã`Åï<þ`ù_©«<‰b@éâCãCžãCC@C¶þ ×ä»þ  ­¥ ª ¶þ<¦c@éâDãDžãDD@D¶þÎøü¨dô¶dFÅ  Å ((ßã*»P$+´$Ö‹Cº¤uFÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"ÌüFªÕd
E»P,Þd<šfEéâGãGžãGGEGÓÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ª¦ªãfEéâHãHžãHHEH[[\
EndOfInputÁ éÞ½ª…qªü˜h$tªhì
JJIIÜKøºë»Èÿ
1ӓ
ºë»Èÿ
1”K¹h”ÃhDÃhII ì
·—¼Úh8Æ Æ IIÜKøºë»Èÿ
1”8Müøh0<†iÇ  Ç ÏˆL ŽiL
M8$ibitÁ•iüõn`„ƒoÈ GGI»œ·æ‘"ÌüÈ Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
IIÜKøºë»Èÿ
1”È ª¬o
N»P,”odúoNéâOãOžãOONOÓÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
IIÜKøºë»Èÿ
1”ªÚrNéâPãPžãPPNPï†Üâxì
RRSTSçxü„yFD‡yÉ  É àíÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ªQ ˜yQ
Sì
Î\4yÄäz<êzQQ–µü‘{vœŸ{VÊ  Ê ((ßã*»P$+´$Ö‹Cº¤uVÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"ÌüVª³{
U»P,¼{üâA„ðô†ª
W ìЃì
YYZ\ZÕƒüôƒFD÷ƒË  Ë àíÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ªX ˆ„X
Zì
Î\4€„<Zéâ[ã[žã[[Z[Ó²“ġ<чXX–µ„ú‡‡ˆ ‹ˆ  ‘ˆ Àˆ, “ˆ8¬R,”ˆ& ™ˆ8$šˆ$ žˆ,  ˆ8secondÁ4¡ˆ& §ˆ8$¨ˆ$ ¬ˆ, ®ˆ ¯ˆ ¼ˆ, ±ˆ8tailÁ$²ˆ& ¶ˆ8$·ˆ$ ½ˆ
¾ˆ*ˆ Ɉ ÿˆ Óˆ ùˆ  Ôˆ àˆ740ÁÕˆ
؈, Úˆ8¬R,Ûˆ âˆ, äˆ8Œ•4åˆ$ ëˆ, íˆ îˆ öˆ, ðˆ8Ù•$ñˆ$ ÷ˆ
øˆ¢¤©Ź¼¦¸^_·¨¢^aö~<ßë^bÊ
^dö\ ^eˆ„Ž ^f«\\ ¬^g§<­^hÿ\µ^iýrLÏÿ^kã^l”\„í «^m—vT—Ó ^n­u\½
^p•0dÊ^qöz”ØÛ ^rëÖX¬„ é^tÜVL› ×^u™’´¦ « ^v´<”¾  å^wÊW”Ö  â^xü›"ˆ{~rõgjZ]MP@C47+.!¼æôƒ œ§ýÿîðßá\ñÐÒÁñ³¢¤•œ
ôî  A parsed X509 certificate.Á$˜
ì
zz›Æë
ƒW’Ⱦ{|}~ƒ
ü§
'
yy÷ßüÔ
&
yyâ»ü€ '4 yy÷ßü­ ) yy÷ßüÜ ( yy÷ßüŠ %$• yy÷ßü¶ :ŒÁ yyÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ÷ßü·2yy§Ÿüï,úyy§Ÿü¡9„¬yy§Ÿüà9„ëyy§ŸüŸ@¼ªyy§Ÿ¼ææ^yy©©Œ‚ì
›ÆŠŒšœŸüšU„¨÷ßÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
›Æªˆˆ
Šì
cert_derÁD¹üÈM÷ßô¡ˆˆ
ì
ç¡üé^÷ß°áô¡ˆˆ
Γ
ç¡D€
ext_policyÁT¨T׌éâãžãŒÓÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ª¦Ó Ó —vÕ ñyÖ ýy× ŽzhÊ¡gÑ”ˆª,›ŒéâŽãŽžãŽŽŒŽú¤ŒéâãžãŒÓÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†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¨•0ˆÊÁCû¢w8ÏÌsì
ì
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â


œ
ö~
ˆž
Ÿ
 
¡
¢
ˆ£
¤
Ê¥
ˆ¦
§
ø¨
ˆwo U¨c.Aì
ªÛ¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ ì
Íìì
ì
*ùM•³Ä“9•³úMþ²tœ9³T¬³"¼³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³¯¬¬«\¯Î\°ÚÛÞ }ýÓR@ì
©©÷«^¬µ­ÄÀL:éé#ì
Íìì
ì
žÔùMÜÆüÌQ8ÜÆúMÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
‹ÆªüÕQ.ÔÆQòÆvƒÇü‰S'üÎR63 Raw DER-encoded representation of the certificate.ÁSÓ  Ó ›Æ©©ˆ ”Sˆ
Ÿì
$•Sü“UCDU^Ô Õ  Ô ((ßã*»P$+´$Ö‹Cº¤uÕ »þ ¦U
 »P,ŸU<×V éâ¡ã¡žã¡¡ ¡ÎüµX„üÃX!£Ö  Ö ((ßã*»P$+´$Ö‹Cº¤u£Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
GGI»œ·æ‘"Ìü£ªåX
¢»P,îXüÿ^–¼‚_^¥× Ø  × yy£
{µ|Â}Ô~ºèöƒ©³ÊáÊ
^ë
ƒW’Ⱦ¥ Ø ××ÜVÙõVÚ‡PÛ»Å. »sñb—¥°á»þš_
¤°$£_ extensionÁL¼_’£TÛ_-/$ƒb¤éâ¦ã¦žã¦¦¤¦»þ Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙª¦†Ñ†Ñ†Ñ†Ñ†Ñ ××ÜVÙõVÚ‡PÛ»Å. »sñb—Ũ×g¤éâ§ã§žã§§¤§Å…àÑñû<h¤éâ¨ã¨žã¨¨¤¨½…ïûü¼m*¤Îmì
ªª™¨ÀL:éé#«¬­ãmü²n0”²n^©©§Ÿüäo3<ïo©©Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙʇüŽq3T™q©©§ŸüÆq!ì
¯¯™¨°Ëqü¤rN,²rÙ  Ù ™¨Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zٚ⪮ ¸r®
°ì
$¹r<¦s°éâ±ã±žã±±°±ª¦Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
̪ü•t1ì
³³™¨´¼´štüÍtFDÐtÚ  Ú àíÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
™¨ª² át²
´ì
Î\4Ùt,çx´éâµãµžãµµ´µÓÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
©©÷«^¬µ­ÄÀL:éé#ª½Üüÿx ´…y^¬Òy\Øy^Äztz^ã|´éâ¹ã¹žã¹¹´¹€Ó¿¨Û}´éâºãºžãºº´º±Œ§Þ´éâ»ã»žã»»´»€Ó§ÞÄ´ƒ<ºƒ²²–µÑr,‘é!½¾·¨¢½À
ServerNameÁT¾Ô½ÁSignatureVerificationAlgorithmÁôʃ½Â×Ä߽ÕÄé½ÄŒ• ½Åã½Æü+„Û Ü½ÈìŸ.¼í ø½ÉþåD$ ½ËÙO̦½ÌØGdÁ½Í°^½Ï¡½Ð„†oL`cGJ

úüì‰윬ÝœÅÎй»”‹¨\’ˆŠ,Ô{}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.Áì
ÒÒï¨ƹŒ{/OÓì¬ö½ÑÑ›Æü>ì
ÕÕï¨Ö×òó×ÔÔªüÈFüîA> Parse the ASN.1 DER-encoded X.509 encoding of the certificateÁ|´ `cert_der`.ÁDË£©Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ï¨ï¨£©òÔÔ
×ì
°´ˆ8Û Û ÑÑÖÓó½ƹŒ{/OÜÝü¨)Çü¥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Ù   …ˆž ‘ˆŸ žˆ  ³ˆjöODïôß Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ à á â " á ØG¸å¹üGº‘H¥ü}'~Å÷¾â á â ˜"抻þà Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ØG¸å¹üGº‘H¥ü}'~Å÷¾ÚªØÉ ÛÛÀ)ØÍìàˆô¦+àˆÌ«+
Ù8àˆ$Ñ)‹F”ß)¥Fl£*ºF”Ñ*À3$‡+usageÁ,Ÿ+ÔFTÎ+ 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Á…=ŽzL™=ü’?$ì
ßßï¨àáê!ë!á—?\½?4Â?ÞÞ›Æüà? ,ã?ê  ê ï¨ ê ï¨ê!Þ é?Þ
áì
$ê?ÿãóçÛßúHâãöܪBâä×ë `âåm\ÿ•¢âæ•ÄéâçAlgorithmIdentifierÁœÐ«âéÈßÔâê—hÔ‹ì â묛¾|ЯLå ´ô’œ‘_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†»­„óÄíƒˆŠŒŽ¿ œ«õ÷InvalidSignatureÁ„¢áõøʤâõøçßô´ƒõùalg_idÁ4Ô
õúŽzLçÿõûL˜uwMO68|á*üû5š¹ýþÿýþÿü· 2Œº ð  ð š¹««¬­ˆ
 “£Nܳ÷ü Ì ü
ýü–
1„™
ñ  ñ š¹ȧü ª
ü
þ
üó
„ö
ò ó ô õ  ò š¹ ó ·— ô ·— õ ·—Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ááâʤ ·¨çìYß´ü ü
ÿ$ 
public_keyÁTŸ ú ŽzLÒ 
ÿéâãžãÿß%ß%à%Ø„ º N€å—Û¨ªüí
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-384 curve and SHA-256. Deprecated.ÁŒÔ­ƒÿÿüëAü³74 ECDSA signatures using the P-384 curve and SHA-384.ÁŒö­ƒÿÿü·JüÕGD RSA PKCS#1 1.5 signatures using SHA-256 for keys of 2048-8192 bits.Á»¤Œ£ÌÔ­ƒÿÿü˜Jü¶GD RSA PKCS#1 1.5 signatures using SHA-384 for keys of 2048-8192 bits.Á»¤Œ„ÌþÔ£­ƒÿÿüùJü—GD RSA PKCS#1 1.5 signatures using SHA-512 for keys of 2048-8192 bits.Á»¤ŒåÌßÔ„­ƒÿÿü“#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.Á»¤Œÿ"Ìù"üž#(­ƒÿÿü³*Xü˜&GD RSA PKCS#1 1.5 signatures using SHA-384 for keys of 2048-8192 bits,Áüà&9ÿ³š'úüž'8δ×'úüÛ'CœµüŸ(Jéµüê(C½¶®)úü²)PM This algorithm covers the absent case, [`RSA_PKCS1_2048_8192_SHA384`] coversÁ¬ƒ*ï·»¤ŒŸ*Ì™*ü¾*(­ƒ ÿÿüÓ1Xü¸-GD RSA PKCS#1 1.5 signatures using SHA-512 for keys of 2048-8192 bits,Áü€.9ÿ³º.úü¾.8δ÷.úüû.Cœµü¿/JéµüŠ0C½¶Î0úüÒ0PM This algorithm covers the absent case, [`RSA_PKCS1_2048_8192_SHA512`] coversÁ¬£1ï·»¤Œ¿1̹1üÞ1(­ƒ
ÿÿüº5JüØ4GD RSA PKCS#1 1.5 signatures using SHA-384 for keys of 3072-8192 bits.Á»¤Œ¦5Ì 5ÔÅ5­ƒ ÿÿüž9Sü¹7FC RSA PSS signatures using SHA-256 for keys of 2048-8192 bits and ofÁü€830 type rsaEncryption; see [RFC 4055 Section 1.2].Á´8úü¸8KH [RFC 4055 Section 1.2]: https://tools.ietf.org/html/rfc4055#section-1.2Á»¤ŒŠ9Ì„9ü©9#­ƒ ÿÿü›=Sü¶;FC RSA PSS signatures using SHA-384 for keys of 2048-8192 bits and ofÁüý;3ºÀ±<úüµ<KƒÁ»¤Œ‡=Ì=ü¦=#­ƒ
ÿÿü˜ASü³?FC RSA PSS signatures using SHA-512 for keys of 2048-8192 bits and ofÁüú?3ºÀ®@úü²@KƒÁ»¤Œ„AÌþ@ü£A#­ƒÿÿüÝC7ü°C,) ED25519 signatures according to RFC 8410Á<èC­ƒÿÿt•T™Å  ,ãð)¤1¹ýrLSÿÊ
^Â\c¡çßôƒ˜Ź¼¡¸œ“ü(…,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ö ö Å Å ›yÇ ó¾øuzÎïDüê ¬üß 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 ¬š ÁšÖ ŽzLê ´·¹Ó Ë Ê
¡£§<”¡¤ýrL¶ÿ¡¦ã¡§ÀmüÈ$󡨰oüò0ç¡©ïJ4¿Ù¡ªçßô׃¡«ö¢ªB¡¬T¿ˆ±³d¢¥§ƒqsÔ«cüÌ)T|–E¤Ø»¤ŒÄ̾»®ü»-û  û »Ó Ó —vÕ ñyÖ ýy× ŽzhÊ¡gÑ”ˆû ­ Э
®¼Îì
°°â»±³Óü–'D¤'ü  ü àíÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
÷ß⻪¯ »'¯
±ì
Ê
¶'šìTß'<Ô(±éâ²ã²žã²²±²½… üÕ,0»¤Œ½,Ì·,Dã,ý  ý â»»¯ ì,¯
³ì
$í,üé2Û”÷2þ ÿ 


ƒ
 þ
ÿ ƒÿ GGI»œ·æ‘"Ìü

Ó Ó —vÕ ñyÖ ýy× ŽzhÊ¡gÑ”ˆ
ƒ
ó×»þ ¥3
´¨r¤3
spki_valueÁTÑ3Â\÷3budgetÁ4™4,©>´éâµãµžãµµ´µ   ƒ Õ¥4üE´éâãžã´ÇÛȧüÌFØ„ÚF



 
ƒ
GGI»œ·æ‘"Ìü
GGI»œ·æ‘"Ìü
GGI»œ·æ‘"Ìü
»þ ÿF
·¬šlðF¾ÙT¨GÁšÎGŽzLíGÚN·éâ¸ã¸žã¸¸·¸¨ªªü†O*¤˜Oì
ºº±¼äÛ–&¹eù»¼­Oü·O(”·O¡¹¹÷ßüåOLåO¡¹¹÷ßü‰P1ì
¾¾±¼¿À¿ŽPüÏRFDÒRˆ
 ˆ
àíÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
±¼ª½ ãR½
¿ì
Î\4ÛRÄœU<¢U½½–µ„¶Ííÿƒ£¤
ßúHÁÂ×ã `ÁÃÊ
Áŧ<€ÁÆýrLÿÁÈãÁÉïJ4ÉÙÁˉUDÑ»ÁÌ…}4ùþ Áéöz”›Û ëü+„¯ ÜìŸ.¼î øþ¬¨øLÝéTíÚôÌÎdŽÀ¯±”´¢¤“dÝÁÜåæçþ Û Ü ò formatÁ4§ÍÎWriteÁ,¾êbÍÏÈßÔÍÐö~<‹ëÍÒInvalidDnsNameErrorÁœ”ÍÓ–åÍÓ­u\·
ÍÕ•0dÄÍÖ£yÍ×ãÍÙ®p”„ÛÍÚ‚~D²
ÍÛ„³¬äôLÿåçÁÃ,¯ž Œ×€dîrtaTü½]„Ë
Š

Œ
 
ëëìö~îˆE ÇûPa¤ZÖ“Š

yy£
{µ|Â}Ô~ºèöƒ©³ÊáÊ
^ë
ƒW’ȾŒ
»þ ç
Üï °
ÜéâÝãÝžãÝÝÜÝÁ´Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ»þ§ÞÜéâÞãÞžãÞÞÜÞÁ´Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙúHúHßûHÁ‘4Ý­f‰úM÷ü²ì
ààþ¼áâ·üÏU«ˆÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
þ¼–å ±Â³é&ýßß
áì
¦+DìüÑ&
 
þ¼ ì
ß æß
âì
ü¶ 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¿íïÈßÔíð­u\‰
íò•0d–íó£yíôãíö®p”ÖÛí÷¯Œ´š¬åŠ,{}jlŒ©]dÀOQ>@üì_¼ú


 
V4Áˆ˜V6Áˆµyˇ-b² 
yy£
{µ|Â}Ô~ºèöƒ©³ÊáÊ
^ë
ƒW’Ⱦ
»þ 
øï L’°
øéâùãùžãùùøùÄë§ÞøéâúãúžãúúøúïìüÍüÐ!í˜

GGI»œ·æ‘"Ìü˜
GGI»œ·æ‘"Ìü

û presented_idÁd÷ reference_idÁdŸüî üü Áš

GGI»œ·æ‘"Ìüš
GGI»œ·æ‘"Ìü
²“¸!
üÐ $¡!
constraintÁTÁ!<Ä&üéâýãýžãýýüýÓÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ª¦ª¦ª§Þüâ#@üÀ £´Î œ

ž
Ÿ
 
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙ œ
((ßã*»P$+´$Ö‹Cº¤u
 ž
»»‰U½õ
¾Ö¿°¯þôŸ
 
ó×»þ þ 
ÿ constraintsÁ\ê õ
ØÙ4¸
üÙ  Á¡
 ¡
((ßã*»P$+´$Ö‹Cº¤u­¥Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìüªë 
ó  subtrees_tagÁd£ ')D³ÿéâãžãÿÄë ˆÑ̇ ó×üìü’*Á¢
£
¤
¥


œ
ö~
ˆž
Ÿ
 
¡
¢
ˆ£
¤
Ê¥
ˆ¦
§
ø¨
ˆwo U¨c.A¢
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìü£
Û¼ݼÞ¼©ß¼à¼ÛἈcSñŸ«‡zÙGGI»œ·æ‘"Ìü¤
¥
ó×ÊëÔ
ƒÐ $Âpermitted_subtreesÁ”Ýexcluded_subtreesÁŒ“ØÙüƒ[|†Á¦
 ¦
((ßã*»P$+´$Ö‹Cº¤uÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â


œ
ö~
ˆž
Ÿ
 
¡
¢
ˆ£
¤
Ê¥
ˆ¦
§
ø¨
ˆwo U¨c.Aª
»P,šüËF"dÝFì
¬ÁCû¢w8ÏÌsˆê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
ì
Î\4W\Ö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Áì
¥¥££¤Œ3¦ˆÁ TfÆçF(ì
TfÆçF(¤¦«ˆ’™²Ÿ|Á«ˆ’™££
¤ì
…iD‰iÁ££«ˆü¯i#»¤Œ›iÌ•i8­
­
ÊĨÀc¨üÙi8Üi®
¯
°
 ®
ÊÄ ¯
 c cˆ¢cµ
 `£cÔÈ `àB¤GS
°
¬£§ ài§
¨8$ái± çi½ÈÉÊËÌÍDurationÁDÁ ­Ö©ª•Ä é©«Ê
 ©­§ ©®ÿ\ µ©¯ýrLŸ ÿ©± 㩲¤µ ”œÐ ƒTê tñ fhVXd IK8:ü³! ì
´´‡Åµ¼µ¸ üÛE DÞ ±
 ±
àíÖ¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
‡Åª³ î ³
µì
»P,ç üé F Tì ©²
³
 ²
((ßã*»P$+´$Ö‹Cº¤u³
Ö¿Ù¿Ú¿«Û¿ˆÜ¿Ý¿Þ¿ˆ‚†f|Â
ª þ
ó,÷ ü¾
* ,Ä
©¸‡¦ éâ¸ã¸žã¸¸¸ï†üà Ž ©´
µ
 ´
((ßã*»P$+´$Ö‹Cº¤uµ
þ 
¹ó,€
minÁ¯
maxÁÅ
 µéâºãºžãººµºÓŸè µéâ»ã»žã»»µ»ï†Ĉ ³³–µü·ª ¤Å Ÿ
½yearÁ$ß monthÁ,î  day_of_monthÁdþ hoursÁ,• minutesÁ<¥ secondsÁ<· t¿ Å © ÿ ©t’ ˜ © ± © Ê © ã © ü ©t  © ® © Ç ©üÎ&E üÑ&! ©þ 
È´¥$ó& Ôä* |ê* ©üˆ+( œ‹+ ©
Ê´¥$Ÿ+ ü‹-9 l™- 
Ë´¥$§- À¥,²- ü˜/ \/ ©
Ì´¥$§/ ü¢1$ ̨1 ©„ÒÙÛã·¨t
¢ÎÐ×Ä\
ßÎÑ£$A
yÎÓüG!
¢ÎÔÊ
v
ÎÕýrLŽ
ÿÎ× ,™
ãÎØL
Ž}\3
pracTo
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
$¶"
η
¸
 ·
((ßã*»P$+´$Ö‹Cº¤u¸
­¥»þ Â"
ã»P,»"
™éÞ"
¨#
ãéâäãäžãääãäÉØéòŠ à ã ä Ó ³ « çßô‘ ƒåç•Ä éåè ãåéïJ4ï Ùåë‰UD÷ »åìÑ$ Ÿ åíÊ
 åï”\„™ «åðp,¼ ¿cåñpÂcåñ„‚Ôä Å
õôƒœ€ Ø
ö‡t”• °
÷Åu„© á
ø¼è »
úì‚ Ï
ûL… AD14œÁ &”Ú   ùû,Œ ìîÜÞ„± ÐLÄ  å¾á
Å
Ø
°
»
Ï
WD2 ð
òóöf ªBòôp,z ¿còõpÂcòõçßô’ ƒò÷•Ä éòøüÏ! ¢òù”DŒ‚ òúÊ
 òüö òýˆ„¹ òþ«\\Ë ¬òÿ§ òÿ\á µòýrLú ÿòƒ ,… ãò”\„˜ «ò ¡ò—vTÉ Ó òˆ­u\ï 
òïJ4• Ùò‰UD »òŒÑ Ÿ òÖX¬Å éòÜVLÜ ×ò™’´ç « ò´<”ÿ åòÊW”— âòä I|Z ;„o .L† 
ýüÂ. óìö äT™ Ö  É̺½«®œŸŽ ƒtw¼‘ i”® [ MPüÚ C”€ 58&)  üþêìÙÛÈÊü‚ = »¤Œî Ìè 8¹
¹
§ÈëüÆ - ôȧÈ
8Ü8Î ü˜
H ì
Òǘë˜
üç
4
ßÉÒÇ
˜ì
Ü8ï
ÜÃ 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.ÁÔñ ¼