a úÎòfŽã@s8ddlZddlmZdd„Zdd„Zdd„Zd d „ZdS) éN)ÚsixcCsf|s tdƒ‚|jD]F}|j}| d¡r:|tdƒd…S| d¡r|tdƒd…Sqtdƒ‚dS)NzA certificate must be providedz opc-tenant:z opc-identity:z/The certificate does not contain a tenancy OCID)Ú RuntimeErrorZsubjectÚvalueÚ startswithÚlen)ZcertZname_attributeÚval©rú7/usr/lib/python3.9/site-packages/oci/auth/auth_utils.pyÚget_tenancy_id_from_certificate s   r cCsBtjr| d¡}n|}| dd¡ dd¡ dd¡ dd¡ dd¡S)NÚasciiz-----BEGIN CERTIFICATE-----Úz-----END CERTIFICATE-----z-----BEGIN PUBLIC KEY-----z-----END PUBLIC KEY-----Ú )rZPY3ÚdecodeÚreplace)Z cert_stringZstring_to_replacerrr Úsanitize_certificate_strings ÿþýüûrcCs$tƒ}tƒ}tƒ}d |||¡}|S)Nz{}/{}/{})Úgenerate_unique_idÚformat)Z client_idZstack_idZ individual_idZopc_request_idrrr Úgenerate_opc_request_id%s rcCs*dd„tdƒDƒ}d dd„|Dƒ¡}|S)NcSsg|]}t d¡‘qS)é)ÚrandomZ randrange)Ú.0Úirrr Ú /óz&generate_unique_id..ér css|]}t|dƒVqdS)Z02xN)r)rÚxrrr Ú 0rz%generate_unique_id..)ÚrangeÚjoin)ÚbZ hex_stringrrr r.sr)rZ oci._vendorrr rrrrrrr Ús